初めまして、テキストファイルからデータを読み出そうとしているのですが
上手くいきません。
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」を一つの変数として読み込まれてしまいます。
一つ一つを区別するにはどのようにすればよいのでしょうか?
よろしくお願いします。
本当にこのコードを実行しましたか?
変数 F が重複して使われていますが・・・。
また、読み込みに使っているa〜jの変数の型は何ですか?
文字列型だと、改行までを読み込みますよ。
数字のみならば、整数型を用意するとよいです。
にしのさん、どうもありがとうございます。
変数fが重複していますが、質問用に書いたので
Read(...)を使っていますが実際のコードとは違います。
勘違いをさせてしまい申し訳ありません。
a〜jはString型でやっていました。Integer型に直したところ上手くいきました。
この内容に関連してもう一つよろしいでしょうか?
もしこの読み込むデータが数字型でなく文字型のデータである場合はどのように
対処すればよいのでしょうか?
空白を読み込んだら次のデータ型に割り当てることをすればいいような
イメージはあるのですが・・・
その場合は、1行読み込んで、空白文字で分割です。
Readでは無理っぽいです。
汎用的で場合によっては使いづらいかもしれませんが、正規表現が使えるクラスを使用すると、分割が比較的簡単にできます。
なるほど、どうもありがとうございました。
やってみます。
ツイート | ![]() |