Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.10.23;
Скачать: CL | DM;

Вниз

Сохранение StringGrid в файл   Найти похожие ветки 

 
Sergey_R ©   (2005-09-28 13:30) [0]

А как лучше всего сохранить и структуру и ячейки Stringgrid"a в файл?
Пробовал сделать так:

procedure aaa;
var F:TfileStream;
begin
f.Create("1.txt",fmCreate);
try
F.WriteComponent(Stringgrid1);
finally
F.Free;
end;
end;


а для чтения то же самое, только параметр fmRead и процедура ReadComponent. Так этот код сохраняет только структуру, но не данные ячеек!


 
VG ©   (2005-09-28 13:36) [1]

Посмотри TMSGrid там есть такое.


 
GanibalLector ©   (2005-09-29 02:10) [2]

когда-то делал так(это я о данных) :


procedure Save(const List:TStringGrid;File_:TFileName);
 var GoodList:TStringList;
     I,II:Integer;
     St:String;
begin
 GoodList:=TStringList.Create;
 try
   for i:= 1 to List.RowCount-1 do
   begin
     St:="";
     for ii:=1 to List.ColCount-1 do
     if ii<>List.ColCount-1 then
       St:=St+TStrings(List.Rows[i]).Strings[ii]+";"
     else St:=St+TStrings(List.Rows[i]).Strings[ii];
     GoodList.Add(St);
   end;
   GoodList.SaveToFile(File_);
 finally
   GoodList.Free;
 end;
end;



использую так :

Save(Form3.StringGrid1,SaveDialog1.FileName);


 
Германн ©   (2005-09-29 02:42) [3]

2GanibalLector ©   (29.09.05 02:10) [2]
>когда-то делал так(это я о данных) :

Дык ведь автор спросил - "А как лучше всего сохранить и структуру и ячейки Stringgrid"a в файл?"!

Правда он не уточнил, что есть структура?!


 
Sergey_R ©   (2005-09-29 12:30) [4]

Структура есть количество строк и столбцов, шрифт, ширина столбцов и т.д.
А про сохранение я уже придумал:

procedure aaa;
var F1:TfileStream;
F:Textfile;
i,j:integer;
begin
f.Create("1.txt",fmCreate);
try
F.WriteComponent(Stringgrid1);
finally
F.Free;
end;
assign(f,"2.txt");
Reset(f);
for i:=0 to StringGrid1.Rowcount do
  begin
        for j:=0 to StringGrid1.ColCount do
           write(f,StringGrid1.Cells[i,j]+"//");
        writeln("\\");
  end;
closefile(f);
end;


Правда вот эти "\\" и "//" все портят. Лучше было бы поставить знак табуляции и перехода на новую строку. Кто-нибудь знает, как это сделать?


 
Думкин ©   (2005-09-29 12:32) [5]

#9 #10


 
Sergey_R ©   (2005-10-01 15:03) [6]

Я уже понял как это можно сделать гораздо проще!
надо создать List:Tstrings;
куда записать размеры таблицы и содержимое всех ячеек и потом SaveToFile...


 
Ling ©   (2005-10-01 15:51) [7]

Зачем тебе ещё один TStrings?
TStringGrid.Rows чем не подходит?



Страницы: 1 вся ветка

Текущий архив: 2005.10.23;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.043 c
3-1126247175
zorik
2005-09-09 10:26
2005.10.23
Существует ли ф-ция


4-1124447846
BFG9k
2005-08-19 14:37
2005.10.23
Некорректное поведение RasGetEntryDialParams


14-1128106554
Pazitron_Brain
2005-09-30 22:55
2005.10.23
Спутник+LAN+Интернет=Всем интернет.


14-1127915520
Juice
2005-09-28 17:52
2005.10.23
COM+Delphi="Гнилая" тема?


6-1116820742
Lex_!
2005-05-23 07:59
2005.10.23
tidHTTP (indy10)+ ISA Proxy авторизация