以下のようなデータを含む ListBox があります。
C44 EXCLUDES 237.910 193.469 0 0603_5
C45 EXCLUDES 244.102 193.387 0 0603
R47 EXCLUDES 226.935 179.519 90 0402_1
C18 CAP-00129G 230.960 190.619 0 0402
C17 CAP-00129G 250.085 198.569 180 0402_3
Q7 IC-00268G 258.460 205.594 0 SOT236
C25 CAP-00130G 255.635 189.669 90 0402_3
C56 EXCLUDES 229.430 189.374 0 0402
R42 EXCLUDES 241.010 192.194 90 TANT3216
R21 CAP-00129G -123.370 -112.114 270 0402_3
R10 EXCLUDES 246.560 203.894 0 0402_9
... .......... ....... ....... ... ........
文字列の末尾で ListBox をソートしたいので、6列目の値 (0603_5、0603_5、0402_2、0402_4、0402_3、TANT3216、0402_9....) です。
これらのすべてが上記のファイルの例に示されているわけではありませんが、表示される順序は次のとおりです (上から下)。
RES, 0402, 0201, 0603, 0805, 1206, 1306, 1608, 3216, 2551, 1913, 1313, 2513, 5125, 2525, 5619, 3813, 1508, 6431, 2512, 1505, 2208, 1005, 1010, 2010, 0505, 0705, 1020, 1812, 2225, 5764, 4532, 1210, 0816, 0363, SOT.
また、似た語尾が複数ある場合 (上記 *0402_3* 参照)、リスト項目は2列目でソートされます。したがって、 で始まる行が で始まるR21
行の後にC25
あり、両方とも *0402_3* で終わる 場合でも、6 列目の後に 2 列目がチェックされるため (これは最小から最大にソートされます)、R21
上に配置されます。C25
SO、新しいファイルは次のようになります。
C18 CAP-00129G 230.960 190.619 0 0402
C56 EXCLUDES 229.430 189.374 0 0402
R47 EXCLUDES 226.935 179.519 90 0402_1
C17 CAP-00129G 250.085 198.569 180 0402_3
R21 CAP-00129G -123.370 -112.114 270 0402_3
C25 CAP-00130G 255.635 189.669 90 0402_3
R10 EXCLUDES 246.560 203.894 0 0402_9
C45 EXCLUDES 244.102 193.387 0 0603
C44 EXCLUDES 237.910 193.469 0 0603_5
R42 EXCLUDES 241.010 192.194 90 TANT3216
Q7 IC-00268G 258.460 205.594 0 SOT236
... .......... ....... ....... ... ........
TANT3216
が前に来ることに注意してください。これは、上記の順序リストのTANTではなくSOT236
、番号3216から外れているためです。
質問:
- 6列目 (必要に応じて2列目)を使用して、最初のファイルを 2 番目のファイルのように正しく並べ替えるにはどうすればよいですか?
- 正規表現を使用できますか、それとももっと簡単な方法がありますか?
- 3 つの ListBox があります。この 1 つは上記のルール (エンディング) を使用して並べ替える必要があり、2 番目の ListBox は別のルールを使用し、3 番目の ListBox は 1 番目または 2 番目の ListBox に入らなかったものを並べ替えます。1 番目と 2 番目の ListBox は似ていますが、3 番目の ListBox の末尾をアルファベット順に並べ替えるにはどうすればよいでしょうか。