hinekure.net が http://hspdev-wiki.net/ から自動クローリングした結果を表示しています。画像やリソースなどのリンクが切れています。予めご了承ください。
Module/文字列比較 - HSP開発wiki
トップ    編集凍結 差分バックアップ添付複製名前変更リロード   新規一覧単語検索最終更新   最終更新のRSS

モジュール

文字列比較

モジュール

  • strcmp.as
Everything is expanded.Everything is shortened.
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
    #ifndef KZ3MOD_STRCMP_AS
    #define KZ3MOD_STRCMP_AS
    #module "kz3mod_strcmp_as"
        #deffunc strcmp val , val
            mref s1  , 24
            mref s2  , 25
            mref ret , 64
 
            repeat
                await 0
                peek c1 , s1 , cnt
                peek c2 , s2 , cnt
 
                if (c1 = $00) | (c2 = $00) | (c1 ! c2) : ret = c1 - c2 : break
            loop
 
            return
    #global
    #endif

サンプル

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
    #include "kz3mod/strcmp.as"
 
    s1 = "A" : s2 = "Z"
    strcmp s1 , s2
    mes stat
 
    s1 = "あ" : s2 = "あ"
    strcmp s1 , s2
    mes stat
 
    s1 = "A" : s2 = "B"
    strcmp s1 , s2
    mes stat
 
    s1 = "赤" : s2 = "青"
    strcmp s1 , s2
    mes stat
    stop

コメント

  • とりあえず今ある単純線形比較によるモジュール。 -- kz3 2005-10-05 12:27:05 (水)
  • "A">"B"となるのはstrcmp、lstrcmpを使っても同様です。単純に文字コードだけの比較なので・・・。 -- kz3 2005-10-05 14:39:01 (水)

URL B I U SIZE Black Maroon Green Olive Navy Purple Teal Gray Silver Red Lime Yellow Blue Fuchsia Aqua White

テストコード

  1
 

調べもの

  • ExcelもExplorerも"a.as","a.as","b.as"(真ん中は全角のaです。)をソートしたときは"a.as","a.as","b.as"の順で並びます。
    単純線形比較だとこうはなりません。
    内部で全角か半角か調べる必要があります。
    しかしこの結果はあくまでこれらアプリケーションの仕様。これが全ての状況で正しいソート結果とは限らない。 -- kz3 2005-10-05 12:46:50 (水)
  • 2バイト文字とメモリモデルは関係ありませんでした。漢字第一バイトの次に漢字第二バイトが置かれる。メモリモデルによって逆順にはならない、なるのは数値だけである。 -- kz3 2005-10-05 13:01:54 (水)


トップ    編集凍結 差分バックアップ添付複製名前変更リロード   新規一覧単語検索最終更新   最終更新のRSS
Last-modified: 2007-04-08 (日) 02:31:32 (2436d)