1行が256文字以上あるテキストファイルを
1行ごと読み込んで文字列変数longstr(AnsiString)に格納したいのですが、
Var
F :TextFile;
longstr: AnsiString;
begin
AssignFile(F,'C:\TEST.txt') ;
//既存のファイルを開く
Reset(F);
//ファイルの最後まで一行づつ読み込む
While not Eof(F) do
begin
Readln(F,longstr);
end;
CloseFile(F);
end;
すみません。入力ミスです。タイトルは
1行が256文字以上あるテキストファイルを1行ごと変数に格納するには?
です。
ポインタを使う方法は難しそうなので
上記のようにTextFileのReadlnを使う方法でも
Tstringlistを使う方法でも何でもいいのですが、
できるだけ簡単にできる方法が知りたいのです。
よろしくお願いします。
256文字以下でできてるなら、それと同じ方法でできますが。
StringListを使うなら、こんな感じですか?
procedure TForm1.Button5Click(Sender: TObject);
var
FileName: String;
StringList1: TStringList;
begin
FileName := ExtractFilePath(Application.ExeName) + 'test.txt';
StringList1 := TStringList.Create;
try
if FileExists(FileName) then
begin
StringList1.LoadFromFile(FileName);
end;
finally
StringList1.Free;
end;
end;
さらに追加させてもらうと
こんな感じですかね。
ポインタを使わずにもっとも簡単に実現できる方法ですよ。
procedure TForm1.Button5Click(Sender: TObject);
var
FileName: String;
StringList1: TStringList;
i: Integer;
LineText: String;
begin
FileName := ExtractFilePath(Application.ExeName) + 'test.txt';
StringList1 := TStringList.Create;
try
if FileExists(FileName) then
begin
StringList1.LoadFromFile(FileName);
for i := 0 to StringList.Count-1 do
begin
LineText := StringList.Strings[i];
end;
end;
finally
StringList1.Free;
end;
end;
皆様ありがとうございました。
256文字以上でもTStringListでもReadlnでもOKだったのですね。
テキストを読み込んで-文字置換して-別名テキストで保存という
プログラムだったのですが、置換後のテキストに一部欠落がみられ、
それが256文字以上のデータであった為、読み込めないものと勘違いして
しまいました。指摘されて見直したら読み込み以外の過程でのミスでした。
申し訳ありませんでした。
ツイート | ![]() |