StringGrid diske kaydetme ve diskten geri okuma ile ilgili ek component kullanmadan kod ile inşaallah işinize yarar
Gridkaydet ve oku adlı procedure ler birden fazla gridi okuyup yazabilirsiniz
Kullanımı
Kaydetme için
procedure Tsevkfrm.Sevk_kaydetClick(Sender: TObject);
begin
if fileexists('sevkbelge.txt') then DeleteFile(pansichar('sevkbelge.txt'));
if fileexists('sevktoplam.txt') then DeleteFile(pansichar('sevktoplam.txt'));
sevkkaydet(sevk_belge, 'sevkbelge.txt');
sevkkaydet(toplam_grid, 'sevktoplam.txt');
end;
Okumak için
procedure Tsevkfrm.Sevk_okuClick(Sender: TObject);
begin
sevkoku(sevk_belge, 'sevkbelge.txt');
sevkoku(toplam_grid, 'sevktoplam.txt');
end;
Procedure ler
procedure sevkkaydet(StringGrid: TStringGrid; const FileName: TFileName);
var
f: TextFile;
i, k: Integer;
begin
AssignFile(f, FileName);
Rewrite(f);
with stringgrid do
begin
// Write number of Columns/Rows
Writeln(f, ColCount);
Writeln(f, RowCount);
// loop through cells
for i := 0 to ColCount - 1 do
for k := 0 to RowCount - 1 do
Writeln(F, Cells[i, k]);
end;
CloseFile(F);
end;
procedure sevkoku(StringGrid: TStringGrid; const FileName: TFileName);
var
f: TextFile;
iTmp, i, k: Integer;
strTemp: String;
begin
AssignFile(f, FileName);
Reset(f);
with stringgrid do
begin
// Get number of columns
Readln(f, iTmp);
ColCount := iTmp;
// Get number of rows
Readln(f, iTmp);
RowCount := iTmp;
// loop through cells & fill in values
for i := 0 to ColCount - 1 do
for k := 0 to RowCount - 1 do
begin
Readln(f, strTemp);
Cells[i, k] := strTemp;
end;
end;
CloseFile(f);
if stringgrid.Name = 'sevk_belge' then
begin
sevkfrm.sevk_belge.RowCount := stringgrid.rowcount;
sevk_satir := stringgrid.rowcount;
end;
if stringgrid.Name = 'toplam_grid' then
begin
sevkfrm.toplam_grid.RowCount := stringgrid.rowcount;
end;
end;