Главная страница
    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.038 c
3-1126109229
Dust
2005-09-07 20:07
2005.10.23
ADOQuery не видит параметров при загрузке запроса


14-1128492332
TUser
2005-10-05 10:05
2005.10.23
Самые легкие иксы


3-1126247046
kreyl
2005-09-09 10:24
2005.10.23
Как остановить выполнение длинного запроса?


2-1128335255
Wolferio
2005-10-03 14:27
2005.10.23
Проверка папки по указаному пути.


2-1128240549
ABS
2005-10-02 12:09
2005.10.23
Опять параметры





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский