Сохранение информации из TStringGrid. Часть 1

3 минуты на чтение

Многие используют в своих проектах TStringGrid и хотят сохранять данные из него в файл и загружать данные из файла, что логично, так как просто сохранения думаю не сильно имело бы смысла. Так вот предлагаю следующие варианты сохранения данных компонента TStringGrid в файл:

  • типизированный файл
  • текстовый файл

В данной статье мы рассмотрим как сохранить данные в типизированный файл, у нас будет структура всего с несколькими полями value типа string, ccount — количество столбцов, rcount — количество строк. Данное поле будет хранить значение каждой ячейки компонента TStringGrid и в цикле мы будем каждую ячейку записывать в файл, а считывать будем в цикле устанавливая указатель в файле на каждую компоненту.

Вот какая у меня получилась структура

Type
TStr=record
ccount:integer;
rcount:integer;
value:string[255];
end;

На событие формы OnCreate нам всетаки как никак необходимо создать наш будущий файл, в которой и будет храниться вся информация, либо сразу на кнопку сохранения создать и записать данные файла, что я и делаю

procedure TForm1.Button1Click(Sender: TObject);
var
F:File of TStr;
i,j:integer;
Str:TStr;
begin
try
AssignFile(F,'test.dat');
Rewrite(F);
Str.ccount:=StringGrid1.ColCount;
Str.rcount:=StringGrid1.RowCount;
for i:=0 to StringGrid1.RowCount-1 do
begin
for j:=0 to StringGrid1.ColCount-1 do
begin
Str.value:=StringGrid1.Cells[j,i];
Write(F,Str);
end;
end;
CloseFile(F);
except
on e:Exception do
end;
end;

На открытие файла я написал следующий код

procedure TForm1.Button2Click(Sender: TObject);
var
i,j,n,m,kk:integer;
F:File of TStr;
begin
try
kk:=0;
AssignFile(F,'test.dat');
Reset(F);
Seek(F,0);
Read(F,Str);
n:=Str.rcount;
m:=Str.ccount;
StringGrid1.RowCount:=n;
StringGrid1.ColCount:=m;
for i:=0 to n-1 do
begin
for j:=0 to m-1 do
begin
Seek(F,kk);
Read(F,Str);
StringGrid1.Cells[j,i]:=Str.value;
inc(kk);
end;
end;
CloseFile(F);
except
on e:Exception do
end;
end;

Как видите все что выше и сказал, все делаю тут программно. Многие функции по работе с файлами Вам уже знакомы, поэтому пояснять не буду сильно. Я немного усовершенствовал программку, сделал изменение количество строк, столбцов, в общем у меня работает на УРА. А в следующей статье про сохранение данных из TStringGrid мы поговорим уже в качестве хранения данных — текстовые файлы.

Facebook Vk Ok LinkedIn Telegram

Похожие записи:

Ну что, в первой части и во второй части статей, про сохранение данных TStringGrid в файлы и открытие из файла данных, с последующей загрузкой их в TStringGrid, мы поговорили о сохранение и считывание данных из типизированного файла, а также сохранение и считы...
В первой части статье по сохранение информации из TStringGrid в файл и считывание из файла в TStringGrid мы узнали как можно в типизированные фалах хранить информацию. Теперь давайте посмотрим как можно сохранить информацию в текстовый файл и считать из него д...
Итак, в этой статье хотел бы поговорить как поменять строки местами в TStringGrid. Задача очень простая, но может кому-то для «лабораторок» пригодится, так многим эта задача не будет совсем тяжелой. Давайте посмотрим так, TStringGrid - этот та же самая матрица...