テキストファイルの読み込み

解決


テキオ  2003-02-26 21:41:56  No: 3034

初めまして、テキストファイルからデータを読み出そうとしているのですが
上手くいきません。

321  333  333  567 778
123  566  578  865 234

例えば上記のようなファイルを読み込むときに
    begin  if OpenDialog1.execute then  
           begin AssignFile(F, OpenDialog1.FileName);
          Reset(F);
          Read(F, a);
          Read(F, b);
          Read(F, c);
          Read(F, d);
          Readln(F, e);
          Read(F, f);
          Read(F, g);
          Read(F, h);
          Read(F, i);
          Read(F, j);
    end;

とやると「321  333  333  567 778」を一つの変数として読み込まれてしまいます。
一つ一つを区別するにはどのようにすればよいのでしょうか?
よろしくお願いします。


にしの  2003-02-26 23:21:29  No: 3035

本当にこのコードを実行しましたか?
変数 F が重複して使われていますが・・・。
また、読み込みに使っているa〜jの変数の型は何ですか?
文字列型だと、改行までを読み込みますよ。
数字のみならば、整数型を用意するとよいです。


テキオ  2003-02-27 10:30:41  No: 3036

にしのさん、どうもありがとうございます。
変数fが重複していますが、質問用に書いたので
Read(...)を使っていますが実際のコードとは違います。
勘違いをさせてしまい申し訳ありません。
a〜jはString型でやっていました。Integer型に直したところ上手くいきました。

この内容に関連してもう一つよろしいでしょうか?
もしこの読み込むデータが数字型でなく文字型のデータである場合はどのように
対処すればよいのでしょうか?
空白を読み込んだら次のデータ型に割り当てることをすればいいような
イメージはあるのですが・・・


にしの  2003-02-27 18:20:26  No: 3037

その場合は、1行読み込んで、空白文字で分割です。
Readでは無理っぽいです。

汎用的で場合によっては使いづらいかもしれませんが、正規表現が使えるクラスを使用すると、分割が比較的簡単にできます。


テキオ  2003-02-28 10:14:11  No: 3038

なるほど、どうもありがとうございました。
やってみます。


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

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






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