![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
|
|
#1
|
||||
|
||||
|
Помогите пожалуйста!
После запуска программы из Edit заполняется таблица StringGrid. Нужно записать содержимое StringGrid в файл, сохранить его на жестком диске, а затем при запуске программы таблица заполняется из этого файла. Я начинающий совсем, и инфу об этом не нашел... Можно ли записать в файл *.csb или нужет обязательно *.txt ? |
|
#2
|
|||
|
|||
|
Независимо от формата, в котором вы будете сохранять, реализовать программно придется самостоятельно, т.к., насколько я знаю, в объекте TStringGrid не предусмотрены методы сохранения в файл и загрузки из файла.
|
|
#3
|
||||
|
||||
|
может тогда сохранить содержимое в стоке или например в Мemo, а уже от туда в файл?
Но я так и не понял как записать в файл из Memo... вот в чем моя беда)) если это в двух словах не объяснить, можно хотябы пример кода и ссылку, где можно об этом прочитать? Зараннее благодарен! |
|
#4
|
|||
|
|||
|
rasamaha, начнем с простого... =))
Записать текстовый файл из Memo можно единственной строчкой кода: Код:
Memo1.Lines.SaveToFile('C:\Directory\File.txt');Код:
Memo1.Lines.LoadFromFile('C:\Directory\File.txt');Проблема-то не в этом. Вам придется вытаскивать значения из ячеек StringGrid'а. Это уже менее приятно. Вот такая процедурка заполняет Memo значениями из ячеек StringGrid'а: Код:
procedure TForm1.Button1Click(Sender: TObject);
var
i, LastRow: Integer;
begin
LastRow := StringGrid1.RowCount - 1;
for i := 0 to LastRow do
Memo1.Lines.Add(StringGrid1.Rows[i].CommaText);
end;Последний раз редактировалось Nyctos Kasignete, 31.03.2009 в 18:52. |
|
#5
|
|||
|
|||
|
Не знаю, как удалить случайно продублированное сообщение =(
Потом отредактирую новым ответом, что-ли?! Последний раз редактировалось Nyctos Kasignete, 31.03.2009 в 18:51. |
|
#6
|
|||
|
|||
|
Да, написать цикл в цикле, я так раньше и сохранял данные из StringGrid'а.
Можно поиздеваться и сделать так, чтобы сохранялась таблица как-есть (со всеми линиями и т.п.) с помощью псевдографики, но это уже, ИМХО, извращение Только если нужно будет потом этим самым файлом пользоваться. |
|
#7
|
|||
|
|||
|
Кстати, Memo использовать необязательно!! Можно записывать строки из StringGrid'а в переменную типа TStringList, а ее уже сохранять в файл:
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
i, LastRow: Integer;
SList: TStringList;
begin
SList := TStringList.Create;
LastRow := StringGrid1.RowCount - 1;
try
for i := 0 to LastRow do
SList.Add(StringGrid1.Rows[i].CommaText);
SList.SaveToFile('C:\Directory\File.csv');
finally
SList.Free;
end;
end; |