Yahoo! eグループ : Runtime_Revolution_Users_Japan メッセージ :2411件中 2件目を表示

UDIです。

ふと思いついて文字種テーブルを得る関数を作ってみました。

function getParseTable tgText, lawChars
put ( the number of chars of tgText ) into charMax
put 1 into tgPos
repeat
put ( char tgPos of tgText ) into tgChar
if ( lawChars contains tgChar ) then
put tgChar after parseTable
else
put charToNum( tgChar ) into tgCharNum
if ( tgCharNum < 128 ) or ( tgCharNum >= 224 ) then — Roman
put “R” after parseTable
else
if ( tgCharNum >= 160 ) and ( tgCharNum < 224 ) then — 1B Kana
put “k” after parseTable
else
put “12” after parseTable ; add 1 to tgPos — Kanji
end if
end if
end if
add 1 to tgPos
if ( tgPos > charMax ) then exit repeat
end repeat
return parseTable
end getParseTable

文字列を渡すと、各バイトの文字種を記号に変えたものを返します。

例えばこんな感じです。(スキは半角カナのつもりですが、多分メーラーが全角
カナに変換してしまうでしょう)

UDIはHyperCardがスキです
12121212RRRRRRRRR12kk1212

R ローマン
k 半角カナ
1 2バイト文字の1文字目
2 2バイト文字の2文字目

第2引数にキャラクタを渡すと、そのキャラクタをそのまま返値の中に含めるよ
うになります。 line や item などで文字列を切り分けて扱いたい時に便利。

UDI,RunRev,123
121212,RRRRRR,RRR

第2引数にはいくつでもキャラクタを指定できるので、改行とカンマと半角スペ
ースを指定したい場合は「 return & “, ” 」を渡すことが出来ます。

余談:
RunRev のフィールド上では改行コードは LF( numToChar(10) ) です。
return 定数、CR 定数、LF 定数は全て numToChar(10) で定義されてます。
CRLF 定数は numToChar(13) + numToChar(10) で定義されてます。

コメント