質問: mid(strrecord,10,20) とした場合、strec1には項目aが入る予定 data1なら5、data2なら4と返ってきてほしいのです。 ちなみにmidbでもそれぞれ10,8で返ってきてもいいです。 言い換えると、桁n~桁mまでの項目に何桁の漢字があるかを調べたいです。 よろしくお願いします。
回答: >テキストファイルを1行ずつ読み、ある桁からある項目a(20桁)...項目aは漢字が入ります。後ろ空白(1バイト空白)詰めです。 項目aが発生するまでは、半角文字列だけですか? であるなら、項目aは strrec1 =mid(strrecord,10,20) で正しいです。 漢字桁数は空白(全角や半角)を含まない桁数であれば、 strrec1 =mid(strrecord,10,20) lenb(trim(replace(strrec1,"□",""))) 'バイト数 len(trim(replace(strrec1,"□",""))) '文字数 です。 さらに、項目aまでの間に半角と全角が混在するなら strrec1 = strconv(midb(strconv(strrecord, vbfromunicode), 10, 20), vbunicode) lenb(trim(replace(strrec1,"□",""))) 'バイト数 len(trim(replace(strrec1,"□",""))) '文字数 です。 項目aに半角と全角が混在したバイト数を取得するなら strrec1 = strconv(midb(strconv(strrecord, vbfromunicode), 10, 20), vbunicode) strrec1 = trim(replace(strrec1,"□","")) lenb(strconv(strrecord, vbfromunicode)) 'バイト数 こんな感じで如何ですか? ※ 上記の"□"は全角の空白を示します。