|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
||||
|
||||
Как записать содержимое StringGrid в файл?
Помогите пожалуйста!
После запуска программы из 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'а.
Можно поиздеваться и сделать так, чтобы сохранялась таблица как-есть (со всеми линиями и т.п.) с помощью псевдографики, но это уже, ИМХО, извращение Только если нужно будет потом этим самым файлом пользоваться. Auta i Lome... |
#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; |