VB6.0用掲示板の過去のログ(No.1)−VBレスキュー(花ちゃん)
[記事リスト] [新規投稿] [新着記事] [ワード検索] [過去ログ] [管理用]

投稿日: 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関数の使い方に問題があるのでしょうか?
すみませんがよろしくおねがいします。


- 関連一覧ツリー (★ をクリックするとツリー全体を一括表示します)

- 返信フォーム (この記事に返信する場合は下記フォームから投稿して下さい)

- Web Forum -