Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2005.10.23;
Скачать: [xml.tar.bz2];

Вниз

Сохранение 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.036 c
1-1127800486
Урмат
2005-09-27 09:54
2005.10.23
Работа с модемом


3-1126171906
Makcim
2005-09-08 13:31
2005.10.23
активность записb


14-1128350734
Карелин Артем
2005-10-03 18:45
2005.10.23
5 писем с вложениями base.crc, base.001, base.002. Как сделать 1?


14-1127981297
Андрей Жук
2005-09-29 12:08
2005.10.23
Андрею Шевченко - 29!


11-1109056582
Сергей Близнюков
2005-02-22 10:16
2005.10.23
Ошибка TBitmap.LoadFromResource в Win98 Версия KOL >=2.04





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский