投稿時間:2002/10/04(Fri) 03:52 投稿者名:どら
URL :
タイトル:空白文字の削除について
初めて投稿させていただきます。 いきなり長くなってしまいすみません。。
現在テキストファイルから300バイトごとに200バイト読み込み、それぞれのデータの 右端の余分な空白を削除して出力したいのですが、RTrim関数をつかっても空白が削除されません。 具体的には
Const BaseFile as string = "c:\ABC.txt" Const OutputFile as strng = "d:\DEF.txt" dim i as long dim readdate as Variant dim filebyte as long dim readbyte as long
While filebyte > readbyte filebyte =LenB(BaseFile) i=0 OPEN BaseFile for Binary as fileno seek #fileno ,300 * i + 1 readdata = readdata & vbCrLf & RTrim(StrConv(InputB(fileno,200),vbUnicode)) ・・・@ i = i + 1 readbyte = 300 * i close #fileno loop
Open OutputFile for Output as fileno print #fileno ,readdata close #fileno
としています。
しかし、このやり方でやってしまうとDEFファイルには空白文字を右端に含めた 文字列(恐らく200バイト)が一行ずつ出力されてしまい、RTrimが有効である ようには見えません。 そこで上の@のあとに FileLen = Len(readdata)と入れてみて、この変数の結果を調べながら実行してみ たら、空白文字を含んだ長さが格納されていました。 またj = Asc(Mid(readdata,180,1)) の結果がJ = 0となっていました。(ヘルプではWindows外の文 字とありましたが、ABC.txtもDEF.txtにもその部分は空白がはいっています) さらに、ABC.txtの文字列と空白部分をカットアンドペーストして Readdata = RTrim("***************** ") のように実行してみたら空白部分はきれいに削除されていました。
このような状態なのですが、どのようにしたら余分な空白を削除することができるのでしょうか? バイナリモードやRTrim関数の使い方に問題があるのでしょうか? すみませんがよろしくおねがいします。
|