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

Вниз

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

 
Никита2013   (2013-09-15 01:23) [0]

Здравствуйте! Нашел в сети интересную реализацию сохранения/загрузки ListView в файл:
Procedure SaveListView(S: String; ListView: TListView);
Const Delimiter = "|";
Var ff: TextFile;
   t: Integer;
begin
AssignFile(ff, S);
ReWrite(ff);
try
 With ListView Do For t:=0 to Items.Count - 1 Do
  WriteLn(ff,StringReplace(Items[t].Caption + Delimiter + Items.Item[t].SubItems.Text,#13#10,Delimiter,[rfReplaceAll]));
finally
 CloseFile(ff);
end;
end;

procedure LoadListViewToFile(ListView: TListView; S: String);
Const Delimiter = "|";
Var
ff: TextFile;
Begin
ListView.Clear;
AssignFile(ff, S);
Reset(ff);
try
 While not Eof(ff) Do
  Begin
   ReadLn(ff,S);
   With ListView.Items.Add Do
    Begin
     Caption:=Copy(S,1,Pos(Delimiter,S)-1);
     System.Delete(S,1,Pos(Delimiter,S));
     S:=StringReplace(S,Delimiter,#13#10,[rfReplaceAll]);
     SubItems.Text:=S;
    End;
  End;
finally
 CloseFile(ff);
end;
End;  
Решил приспособить  для грида. Сохранения осилил, а вот на загрузке немного застрял:
procedure LoadToGrid(s:String);{S:filename}
Const Delimiter = "|";
Var
ff: TextFile;
i,n:Integer;
Begin
{for I := 0 to Form1.StringGrid1.RowCount - 1 do Form1.StringGrid1.Rows[I].Clear;}
AssignFile(ff, S);
Reset(ff); n:=0;
try
 While not Eof(ff) Do
   Begin
   ReadLn(ff,S);
   Form1.StringGrid1.Cells[0,n]:=Copy(S,1,Pos(Delimiter,S)-1);
   System.Delete(S,1,Pos(Delimiter,S));
   S:=StringReplace(S,Delimiter,#13#10,[rfReplaceAll]);
   Form1.StringGrid1.Cells[1,n]:=S;
   n:=n+1;
   End;
finally
 CloseFile(ff);
end;
End;
Содержимое файл загружается, первая колонка нормально,а во вторую впихивает все данные из второй плюс из других колонок тоже. Как разделить непонятно :( Буду благодарен за советы!


 
Германн ©   (2013-09-15 03:15) [1]

while not Eof(ff) do begin
 ReadLn(ff,S);
 StringGrid1.Rows[n].Text:=StringReplace(S,Delimiter,#13#10,[rfReplaceAll]);
 n:=n+1;
end;


 
Никита2013   (2013-09-15 09:52) [2]

Спасибо большое! Буду пробовать... :-)


 
Никита2013   (2013-09-15 10:20) [3]

На строке StringGrid1.Rows[n].Text:=StringReplace(S,Delimiter,#13#10,[rfReplaceAll]);
выдает такую ошибку:
Undeclared identifier: "Rows"
(Delphi XE5, приложение для Андроид)


 
Германн ©   (2013-09-15 12:29) [4]


> Delphi XE5, приложение для Андроид

Значит не судьба получить на FMX простой код. Придется вытаскивать значения для всех столбцов поодиночке.


 
Никита2013   (2013-09-15 12:40) [5]

Сделал так:
While not Eof(ff) Do
   Begin
   ReadLn(ff,S);
   StringGrid1.Cells[0,n]:=Copy(S,1,Pos(Delimiter,S)-1);
   for i:=1 to 16 do {по кол.столбцов}
    begin
    System.Delete(S,1,Pos(Delimiter,S));
    StringGrid1.Cells[i,n]:=Copy(S,1,Pos(Delimiter,S)-1);
    end;
   n:=n+1;
   End;
Вроде пашет... :)



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

Форум: "Начинающим";
Текущий архив: 2014.07.13;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.002 c
3-1299921801
ddd329
2011-03-12 12:23
2014.07.13
SQL запрос от ClientDataSet


2-1378951298
Андрей_1
2013-09-12 06:01
2014.07.13
Установка только библиотек


15-1387802363
Ламо777
2013-12-23 16:39
2014.07.13
Алгоритм распространения пламени


2-1378965082
Коля
2013-09-12 09:51
2014.07.13
Создание Tmemo


2-1378798421
Сергей
2013-09-10 11:33
2014.07.13
Бит бтн glyth





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