文字列半角数値順比較

文字列の半角数字部分を数値として比較する

ダウンロード

ソースコード


!変数宣言は必要

テスト配列とは配列
テスト配列は「abc
abc01
abc02
abc1
abc2
abc001
abcd
abc1a
abc01a
abc 01
abc 02
A0010A
A010AA
A002B
A02AA
A03
A04
A04a」

テスト配列を配列ソートしていう
テスト配列を配列数値ソートしていう
テスト配列を「文字列比較(A,B)」で配列カスタムソートしていう
テスト配列を「文字列辞書順比較(A,B)」で配列カスタムソートしていう
テスト配列を「文字列半角数値順比較(A,B)」で配列カスタムソートしていう

/***************************************
 *	文字列半角数値順比較
 */
●文字列半角数値順比較(AとBで|Bを)
  AIとは整数=0
  BIとは整数=0
  ALとは整数=Aの文字数
  BLとは整数=Bの文字数
  a=文字列分解(A)
  b=文字列分解(B)
  ACとは整数
  BCとは整数
  ANとは整数
  BNとは整数
  ASC0とは整数=ASC(`0`)
  AI<AL&&BI<BLの間
    ac=A[AI]
    bc=B[BI]
    もし、`0`≦AC&&AC≦`9`&&`0`≦BC&&BC≦`9`なら
      an=ASC(AC)-ASC0
      ai=AI+1
      ac=A[AI]
      `0`≦AC&&AC≦`9`の間
        an=AN*10+ASC(AC)-ASC0
        ai=AI+1
        ac=A[AI]
      bn=ASC(BC)-ASC0
      bi=BI+1
      bc=B[BI]
      `0`≦BC&&BC≦`9`の間
        bn=BN*10+ASC(BC)-ASC0
        bi=BI+1
        bc=B[BI]
      もし、AN>BNなら、1で戻る
      もし、AN<BNなら、-1で戻る
      続ける
    もし、AC>BCなら、1で戻る
    もし、AC<BCなら、-1で戻る
    ai=AI+1
    bi=BI+1
  al=AL-AI
  bl=BL-BI
  もし、AL>BLなら、1で戻る
  もし、AL<BLなら、-1で戻る
  もし、AI>BIなら、1で戻る
  もし、AI<BIなら、-1で戻る
  0で戻る