Форум программистов, компьютерный форум, киберфорум
Наши страницы
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
Taxip
13 / 13 / 11
Регистрация: 28.09.2013
Сообщений: 364
1

Сохранение таблицы в текстовый файл

22.05.2014, 10:02. Просмотров 1292. Ответов 5
Метки нет (Все метки)

Здравствуйте. Необходимо записать данные из stringgrid в текстовый файл, но в дальнейшем необходимо будет их считывать также в stringgrid, последнее меня и вводить в стопор. Я понимаю, как это осуществить с одномерным массивом, но тут 5 столбцов и необходимо красиво сохранить, чтобы не было проблем, когда буду считывать. Жду ваших советов.
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.05.2014, 10:02
Ответы с готовыми решениями:

Сохранение их 2-ух memo в 1 текстовый файл.
Всем привет. Что-то не могу допереть своей тупой головой, как сделать...

OpenDialog: сохранение пути в текстовый файл
Всем привет! У меня есть форма на ней кнопка например Button1, когда я её...

Сохранение списка документов в текстовый файл
Привет! Пишу программку вывода списка документов в выбранной папке. Список в...

Сохранение выделенной строки в Stringgrid, в текстовый файл
Доброго времени суток всем. Очень нужна ваша помощь. Имеется программа, с...

Сохранение данных из Edit-ов в текстовый файл и обратно
Добрый день. У меня есть в программе две колонки. Одна из Label от 1 до 30...

5
Trukhanov_VP
37 / 37 / 12
Регистрация: 28.03.2013
Сообщений: 272
Записей в блоге: 2
22.05.2014, 10:49 2
При формировании строки из значений Cell StringGrid'a можно добавить какой-нибудь разделитель в строку которую будешь записывать в файл, чтобы потом читать значения из файла было удобнее.
Например:
Delphi
1
2
3
4
5
//запись
for i := 1 to StringGrid1.RowCount do begin
for j := 1 to StringGrid1.ColCount do str := str + StringGrid1.Cell[i,j] + '|';
writeln(fFileText, str);
end;
Разделитель нам поможет не спутать ячейки:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
i := 0; // номер строки
j := 0; // номер столбца
while not eof(fFileText) do begin //до конца файла
readln(fFileText, str); // читаем из файла целую строку
inc(i); // увеличиваем номер строки
for k := 1 to length(str) do begin // по элементу смотрим строку
if str[k] <> '|' then // проверяем если это не символ разделитель 
strCell := strCell + str[k] else begin // добавляем значение в переменную
StringGrid1.Cell[i,j] := strCell; // присваиваем переменную если найден разделитель
strCell := ''; // обнуляем ее
inc(j); // увеличиваем номер столбца
end;
end;
end; // while
Добавлено через 19 минут
В первом коде упустил один момент:
Delphi
1
2
3
4
5
for i := 1 to StringGrid1.RowCount do begin
for j := 1 to StringGrid1.ColCount do str := str + StringGrid1.Cell[i,j] + '|';
writeln(fFileText, str);
str := ''; // обнуляем строку
end;
1
droider
Universal
Эксперт Pascal/Delphi
4398 / 2446 / 763
Регистрация: 04.10.2012
Сообщений: 8,890
22.05.2014, 10:59 3
Лучший ответ Сообщение было отмечено Taxip как решение

Решение

Taxip, тут тоже есть пример
0
Trukhanov_VP
37 / 37 / 12
Регистрация: 28.03.2013
Сообщений: 272
Записей в блоге: 2
22.05.2014, 12:05 4
Исправил кое-какие недочеты на деле
1
Taxip
13 / 13 / 11
Регистрация: 28.09.2013
Сообщений: 364
23.05.2014, 18:58  [ТС] 5
droider,
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
procedure LoadStringGrid(StringGrid: TStringGrid; const FileName: TFileName);
 var
   f:          TextFile;
   iTmp, i, k: Integer;
   strTemp:    String;
 begin
   AssignFile(f, FileName);
   Reset(f);
   with StringGrid do
   begin
     // Get number of columns 
    Readln(f, iTmp);
     ColCount := iTmp;
     // Get number of rows 
    Readln(f, iTmp);
     RowCount := iTmp;
     // loop through cells & fill in values 
    for i := 0 to ColCount - 1 do
       for k := 0 to RowCount - 1 do
       begin
         Readln(f, strTemp);
         Cells[i, k] := strTemp;
       end;
   end;
   CloseFile(f);
 end;
Откуда берется значение в iTmp?
0
droider
Universal
Эксперт Pascal/Delphi
4398 / 2446 / 763
Регистрация: 04.10.2012
Сообщений: 8,890
23.05.2014, 21:56 6
Цитата Сообщение от Taxip Посмотреть сообщение
Откуда берется значение в iTmp?
из файла. Эта переменная хранит в себе количество столбцов и строк StringGrid'а, ранее сохраненного в файле.
2
23.05.2014, 21:56
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.05.2014, 21:56

Сохранение значения графика chart в текстовый файл через диалоговое окно
Здравствуйте. Пусть имеется Chart, который отображает данные в виде графика,...

Сохранение таблицы в двоичный файл
Здравствуйте, подскажите пожалуйста, как реализовать следующую задачу. На форме...

Как записать 2 таблицы в текстовый файл?
здравствуйте.собственно все уже сказано..имеются 2 разные по содержанию...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru