Line Inputについて


VB6  2003-10-22 23:46:21  No: 79925

どうもはじめまして。
VBのLine Inputについて質問があります。

改行コードがCR/LFじゃない場合は、改行ごと取得できない
のでしょうか?

123,45,↓
67,89,0↓
A,BCD,E

というのが

123,45,67,89,0A,BCD,Eとなってしまうのです。

各行は固定長ではありません。

このようなテキストを行ごと取得する場合には
どのような方法があるでしょうか?

わかりにくい説明だとは思いますがご教授ください。

どうぞ宜しくお願い致します。


モミジ  2003-10-23 00:39:31  No: 79926

Line Input で読み込んだ1行のデータを tmp とすると
下記のようにすれば大抵はOKと思います。

tmp = RePlace(tmp,vbCr,vbCrLf)
tmp = RePlace(tmp,vbLf,vbCrLf)


uchi  2003-10-23 00:59:54  No: 79927

UNIXのテキストファイルだと、改行コードが (LF) なので困
りますよね。

Line Input #ステートメントの仕様上、改行コードとして扱
われるものは (CR) または、(CR + LF)の場合に限ります。
今回のように、特別なコードを改行コードとしたい場合はとり
あえず、 Line Inputで読込んでおき(バッファ)、そのバッ
ファからInStr関数で改行コードを検索し、1行ずつ切出して
いく関数を自作すると良いと思います。


VB6  2003-10-23 02:32:07  No: 79928

お世話になります。

モミジさん、uchiさんご返答ありがとうございます。

やはりLine Inputで読込んでおき、改行コードを検索し、
1行ずつ取得しようと思います。

その場合、変数等に一度に全部に取り込んで保持していく
しかないのでしょうか?
1回のファイル取り込み時にどのくらいのデータが来るわか
らないのです。

一度に10MB分ぐらいのデータでも可能でしょうか?

以上よろしくお願い致します。


モミジ  2003-10-23 02:53:01  No: 79929

私の提示した案も試されたのですか?
どう言う方法でやろうと構いませんが、せっかくの好意を
無駄にするような事の無いように。
(これを貴方へのフォローは最後とさせて頂きます)

何時も思うのですが

> 一度に10MB分ぐらいのデータでも可能でしょうか?

...と他人に聞くのでは無くて、自分でテスト出来る環境が
あるのですから実際にやってみたらどうなのですか?


uchi  2003-10-23 02:56:20  No: 79930

VBのHELPで調べるとString型の最大サイズが記述されています。
可変長文字列の場合は、約2GByteまでの文字を格納できるよう
です。10MByteくらいなら問題なさそうですね。
ただ、使用メモリが気になるというのであれば、BinaryでOpenし
て、Byte配列に読込む方法にすればできそうです。


ねろ  2003-10-24 07:40:00  No: 79931

この質問の↓には何が入っているのだろうか?
そしてなぜ " モミジ " さんの方法でやらないのか?
不思議だ?


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加