シンプルな時刻表 (urnik.txt) を文字列グリッドにロードしようとしています。まず、ファイルが存在するかどうかを確認し、存在しない場合は作成し、そうでない場合はロードします。
procedure TForm1.FormCreate(Sender: TObject);
var
i, j, k: Integer;
Seznam: TStrings;
ApplicationPath: string;
const
dan = ' PoToSrČePe';
begin
ApplicationPath := ExtractFileDir(Application.ExeName);
if not FileExists(ApplicationPath + '\Urnik.txt') then
begin
Seznam := TStringList.Create;
try
for i := 0 to AdvStringGrid1.ColCount - 1 do
AdvStringGrid1.Cells[i, 0] := Copy(dan, 2 * i + 1, 2);
for i := 1 to AdvStringGrid1.RowCount - 1 do
AdvStringGrid1.Cells[0, i] := IntToStr(i) + '.ura';
for i := 0 to AdvStringGrid1.ColCount - 1 do
Seznam.AddStrings(advStringGrid1.Cols[i]);
for i := 0 to AdvStringGrid1.RowCount - 1 do
Seznam.AddStrings(advStringGrid1.rows[j]);
Seznam.SaveToFile(ApplicationPath + '\Urnik.txt');
finally
Seznam.free;
end;
end
else
Seznam := TStringList.Create;
try
Seznam.LoadFromFile(ApplicationPath + '\Urnik.txt');
k := 0;
for i := 0 to AdvStringGrid1.ColCount - 1 do
for j := 0 to AdvStringGrid1.RowCount - 1 do
begin
AdvStringGrid1.Cells[i, j] := Seznam.Strings[k];
Inc(k);
end;
finally
Seznam.free;
end;
end;
私が使用する文字列グリッドの内容を保存するには:
procedure TForm1.SpeedButton1Click(Sender: TObject);
var
i, j: Integer;
Seznam: TStrings;
ApplicationPath: string;
begin
ApplicationPath := ExtractFileDir(Application.ExeName);
Seznam := TStringList.Create;
try
for i := 0 to AdvStringGrid1.ColCount - 1 do
Seznam.AddStrings(AdvStringGrid1.Cols[i]);
Seznam.SaveToFile(ApplicationPath + '\Urnik.txt');
finally
Seznam.free;
end;
end;
ただし、ファイルが存在しない場合は、エラーが発生します。
私は何を間違っていますか??
procedure TForm1.FormCreate(Sender: TObject);
Var
I,j,k:Integer;
ApplicationPath: string;
Seznam:TStrings;
Const dan = ' PoToSrČePe';
begin
ApplicationPath := ExtractFileDir(Application.ExeName);
if not FileExists(ApplicationPath + '\Urnik.txt') then
begin
Seznam := TStringList.Create;
try
for i := 0 to AdvStringGrid1.ColCount - 1 do
AdvStringGrid1.Cells[i, 0] := Copy(dan, 2 * i + 1, 2);
for i := 1 to AdvStringGrid1.RowCount - 1 do
AdvStringGrid1.Cells[0, i] := IntToStr(i) + '.ura';
for i := 0 to AdvStringGrid1.ColCount - 1 do
Seznam.AddStrings(advStringGrid1.Cols[i]);
for i := 0 to AdvStringGrid1.RowCount - 1 do
Seznam.AddStrings(advStringGrid1.rows[j]);
Seznam.SaveToFile(ApplicationPath + '\Urnik.txt');
finally
Seznam.free;
end;
end
else
begin
Seznam := TStringList.Create;
try
Seznam.LoadFromFile(ApplicationPath + '\Urnik.txt');
k := 0;
for i := 0 to AdvStringGrid1.ColCount - 1 do
for j := 0 to AdvStringGrid1.RowCount - 1 do
begin
AdvStringGrid1.Cells[i, j] := Seznam.Strings[k];
Inc(k);
end;
finally
Seznam.free;
end;
end;
end;
このような作品....私はそれが大丈夫だといいのですが....