|
Вопрос # 2 628/ вопрос решён / |
|
Здравствуйте, уважаемые эксперты!
Подскажите пожалуйста как сохранить данные со StringGrid в текстовый файл?
Делаю, но сохраняется ток последняя строка?
Приложение: Переключить в обычный режим- for i:=1 to 4 do begin
- with SaveDialog1 do
- if Execute then
- begin
- StringGrid1.Rows[i].SaveToFile(FileName);
- end;
- end;
- end;
 |
Вопрос задал: Grom48 (статус: Посетитель)
Вопрос отправлен: 13 апреля 2009, 18:34
Состояние вопроса: решён, ответов: 2.
|
Ответ #1. Отвечает эксперт: Dron
Здравствуйте, Grom48!
Ну ещё бы. SaveToFile сохраняет весь TStringList в файл, перезаписывая его. А ваш код просто 4 раза "мучает" файл. К тому же, непонятно, зачем вызывать диалог в цикле. По логике, он нужен всего один раз.
В приложении 2 функции - для сохранения содержимого StringGrid в текстовый файл, и для загрузки его оттуда. Функции универсальные и работают независимо от числа столбцов/строк конкретного StringGrid.
Приложение: Переключить в обычный режим- procedure SaveGrid(stringgrid: tstringgrid; fn: string);
- var
- f: textfile;
- x, y: integer;
- begin
- assignfile(f, fn);
- rewrite(f);
- writeln(f, stringgrid.colcount);
- writeln(f, stringgrid.rowcount);
- for X := 0 to stringgrid.colcount - 1 do
- for y := 0 to stringgrid.rowcount - 1 do
- writeln(F, stringgrid.cells[x, y]);
- closefile(f);
- end;
-
- procedure LoadGrid(stringgrid: tstringgrid; fn: string);
- var
- f: textfile;
- temp, x, y: integer;
- tempstr: string;
- begin
- assignfile(f, fn);
- reset(f);
- readln(f, temp);
- stringgrid.colcount := temp;
- readln(f, temp);
- stringgrid.rowcount := temp;
- for X := 0 to stringgrid.colcount - 1 do
- for y := 0 to stringgrid.rowcount - 1 do
- begin
- readln(F, tempstr);
- stringgrid.cells[x, y] := tempstr;
- end;
- closefile(f);
- end;
 |
Ответ отправил: Dron (статус: Студент)
Время отправки: 13 апреля 2009, 18:39
Оценка за ответ: 5
|
Ответ #2. Отвечает эксперт: min@y™
Ну ващще!
Посмотри вот сюда, там пример функции сохранения содержимого грида в текстовый файл.
 |
Ответ отправил: min@y™ (статус: Доктор наук)
Время отправки: 13 апреля 2009, 18:46
Оценка за ответ: 5
|
Мини-форум вопроса
Всего сообщений: 3; последнее сообщение — 13 апреля 2009, 19:24; участников в обсуждении: 3.
|
Grom48 (статус: Посетитель), 13 апреля 2009, 19:01 [#1]:
а как это сделать чтоб сохранял в определённое место на диске, которое задаётся во время работы программы
|
|
Dron (статус: Студент), 13 апреля 2009, 19:04 [#2]:
В функциях, которые я привёл, вторым параметром задаётся именно путь к файлу. Первым - StringGrid, с которым работаем.
С уважением.
|
|
min@y™ (статус: Доктор наук), 13 апреля 2009, 19:24 [#3]:
Цитата:
В функциях, которые я привёл, вторым параметром задаётся именно путь к файлу. Первым - StringGrid, с которым работаем.
Я тоже.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
31 января 2011, 19:36: Статус вопроса изменён на решённый (изменил модератор Ерёмин А.А.): Автоматическая обработка (2 и более ответов с оценкой 5)
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|