Skip to Main Content
コグネックスサポートハブ
LogoLogo

複数コード読み取りの結果を内容に応じて順序を並べ替える方法。

複数コード読み取りの結果を内容に応じて順序を並べ替える方法。

2025/05/12

Question

複数コード読み取り結果の出力順序を並べ替えることができます。設定GUIに用意されている「ソート順序」が便利です。シンボルの種類、画像の順序、位置による並べ替えに対応しています。ただし、内容による並べ替えはサポートしていません。複数コードの読み取り結果をその内容に応じて並べ替えたい場合は、以下のスクリプトを使用してください。

デバイスの設定をリセットし、スクリプトベースのフォーマットを有効にします。以下のコードをコピーしてデータフォーマットスクリプトに貼り付け、既存のコードを上書きします。

Placeholder
placeholder

 

function onResult (decodeResults, readerProperties, output)
{
    if (decodeResults[0].decoded)
    {
        output.content ="";
        
        var resultArray = [];
        for(var i=0; i<decodeResults.length; i++)
            resultArray.push(decodeResults[i].content + "\r\n");
 
        //以下にソートロジックを記述します。
        //このサンプルでは、Arrayオブジェクトのsort()メソッドを使用しています。
        //このメソッドは、文字列の配列をその内容に応じて昇順でソートします。
        //例1:  配列が["Da", "ta", "Ma", "n"]の場合、ソート結果は["Da", "Ma", "n", "ta"]になります。
        //例2:  配列が["110", "300", "100", "20"]の場合、ソート結果は["100", "110", "20", "300"]になります。
        //より厳密なソートロジックが必要な場合は、この行を独自のプログラムに置き換えてください。
        resultArray.sort();
 
        for(var j=0; j<resultArray.length; j++)
            output.content += resultArray[j];
    }
}

Loading component...

関連リソース

Loading component...