Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Сохранение в файл StringGrid методом SaveToFile [D7, WinXP]


Пётр ©   (2005-11-18 09:17:00) 

Подскажите пожайлуста как можно сохранить в файл
полностью всю таблицу StringGrid методом SaveToFile ?
(У меня получается сохранение только одного ряда или одного столбца)


vertal   (2005-11-19 18:47:00) [1]

> SergGG   (18.11.05 09:46) [3]
Только еще наверное желательно символ разделителя колонок, если таковой встретиться в какой-нибудь строке, записывать в виде Escape-последовательности, например как \|, а то будут проблемы с чтением сохраненной таким образом таблицы


Пётр   (2005-11-18 18:58:00) [2]

Всем откликнувшимся большое спасибо.


SergGG   (2005-11-18 09:46:00) [3]

Даю код с сохранением в текстовой файл:



TStrGrdSaveRead = class(TStringGrid)

Procedure TStrGrdSaveRead.SaveGridToFile(FileName: String);
var f:textfile;
x,y:integer;
Sx,Sy:String;
begin
 assignfile (f,Filename);
 rewrite (f);
 writeln (f,'[ ',colcount,' x ',rowcount,' ]');
 writeln (f,'[ ',DefaultColWidth,' , ',DefaultRowHeight,' ]');
 For X:=0 to rowcount-1 do
 begin
   Sx:='|';
   For y:=0 to colcount-1 do
   begin
     Sy:=cells[y,x]+'|';
     Sx:=Sx+Sy;
   end;
   writeln (F, Sx);
 end;
 closefile (f);
end;

Procedure TStrGrdSaveRead.LoadGridFromFile(FileName:String);
var f:textfile;
temp1,temp2,x,y:integer;
tempstr,Sx:string;
s:string[2];
begin
 assignfile (f,Filename);
 reset (f);
 readln (f,s,temp1,s,temp2,s);
 colcount:=temp1;
 rowcount:=temp2;
 readln (f,s,temp1,s,temp2,s);
 DefaultColWidth:=temp1;
 DefaultRowHeight:=temp2;
 For X:=0 to rowcount-1 do
 begin
   readln (F, tempstr);
   For y:=0 to colcount-1 do
   begin
     Delete(tempstr,1,pos('|',tempstr));
     Sx:=copy(tempstr,0,pos('|',tempstr)-1);
     cells[y,x]:=Sx;
   end;
 end;
 closefile (f);
end;


Anatoly Podgoretsky   (2005-11-18 09:31:00) [4]

Пётр   (18.11.05 09:17)  
Такого метода не существует.


ЮЮ   (2005-11-18 09:25:00) [5]

А разве у TStringGrid есть SaveToFile?
Если же использовать TStrings.SaveToFile, то именно один ряд (одна колонка) и является TStrings.


Наверх

Титульная страница Поиск, карта сайта Написать письмо