Главная страница
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.03 c
3-1126454256
VladBD
2005-09-11 19:57
2005.10.23
Нумерация записей с учетом сортировки


14-1127826350
Igorek
2005-09-27 17:05
2005.10.23
Помогите определиться с ноутбуком


1-1127800486
Урмат
2005-09-27 09:54
2005.10.23
Работа с модемом


3-1126086628
DelphiN!
2005-09-07 13:50
2005.10.23
Загрузка процессора на 100% после select запроса


4-1124354962
Black Krok
2005-08-18 12:49
2005.10.23
Определение координат перетаскиваемого окна