Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.02.2012, 18:44   #1
kta87
Форумчанин
 
Аватар для kta87
 
Регистрация: 22.02.2010
Сообщений: 912
По умолчанию Save StringGrid в файл?

Отыскал процедуру по сохранению StringGrid в файл
Код:
procedure SaveStringGrid(StringGrid: TStringGrid; const FileName: TFileName);
var
  f: TextFile;
  i, k: Integer;
begin
  AssignFile(f, FileName);
  Rewrite(f);
  with StringGrid do
   begin
     Writeln(f, ColCount);
     Writeln(f, RowCount);
     for i:= 0 to ColCount -1 do
      for k:= 0 to RowCount -1 do
       Writeln(F, Cells[i, k]);
   end;
   CloseFile(F);
end;
Использование
Код:
procedure TForm1.Button2Click(Sender: TObject);
 begin
   LoadStringGrid(StringGrid1, 'c:\temp.txt');
 end;
однако это решение сохраняет StringGrid в файл в 1 столбик. Подскажите как сделать что бы в первом столбике сохранялись данные из второй колонки, через пробел сохранялись значения с третьей колонки? (Первая колонка фиксированная)!
kta87 вне форума Ответить с цитированием
Старый 08.02.2012, 19:12   #2
Pamparam
Форумчанин
 
Регистрация: 08.11.2009
Сообщений: 225
По умолчанию

str:string;

for i:= 0 to ColCount -1 do
str:='';
for k:= 0 to RowCount -1 do
str:=str+Cells[i, k]+' ';
end;
Writeln(F, str);

Последний раз редактировалось Pamparam; 08.02.2012 в 19:14.
Pamparam вне форума Ответить с цитированием
Старый 08.02.2012, 21:06   #3
kta87
Форумчанин
 
Аватар для kta87
 
Регистрация: 22.02.2010
Сообщений: 912
По умолчанию

Этот код компилируется с Warning по переменной i. и результат кстати при тесте тоже ни какой так все и сохраняется в 1 столбец друг за другом!
kta87 вне форума Ответить с цитированием
Старый 08.02.2012, 21:16   #4
phomm
personality
Старожил
 
Аватар для phomm
 
Регистрация: 28.04.2009
Сообщений: 2,883
По умолчанию

Наверное, перед str := ''; пропущен begin - отсюда и варнинг, должны быть вложенные циклы, а получаются последовательные, вот и переменная i становится неопределённой, о чем и говорит компилятор.
End - чсх , присутствует.
Pamparam, не ленимся оформлять код кнопочкой #
phomm вне форума Ответить с цитированием
Старый 08.02.2012, 21:45   #5
kta87
Форумчанин
 
Аватар для kta87
 
Регистрация: 22.02.2010
Сообщений: 912
По умолчанию

Всем спасибо, тема close; Сохраняю в Excel
kta87 вне форума Ответить с цитированием
Старый 09.02.2012, 10:44   #6
psycho-coder
Участник клуба
 
Аватар для psycho-coder
 
Регистрация: 06.04.2009
Сообщений: 1,524
По умолчанию

Хочу добавить на будущее.

При сохранении значений в файл столбиком, есть некоторый гемор. Намного проще сохранить каждый стобец в отдльную строку в файле.
psycho-coder вне форума Ответить с цитированием
Старый 09.02.2012, 23:17   #7
Pamparam
Форумчанин
 
Регистрация: 08.11.2009
Сообщений: 225
По умолчанию

Если хранятся только числа, то так удобнее, а при хранении в строку ячейки нужно как-то определять где началась новая строка стринггрида
Pamparam вне форума Ответить с цитированием
Старый 10.02.2012, 22:27   #8
psycho-coder
Участник клуба
 
Аватар для psycho-coder
 
Регистрация: 06.04.2009
Сообщений: 1,524
По умолчанию

При выгрузки столбца или строки, функцией GetRows или GetColls, разделитель будет #10#13, так что StringReplace тут верный друг. Ну и обратно соответсвенно, StringReplace и SetColls или SetRows.
psycho-coder вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
из StringGrid в файл joks Компоненты Delphi 2 30.05.2011 19:37
Stringgrid и типизированный файл Таир Помощь студентам 2 07.05.2011 08:01
сохранение StringGrid в нетип. файл. Delphi PianeR Помощь студентам 0 31.01.2011 20:39
Чтение/запись в файл в StringGrid SVadiks Помощь студентам 0 03.12.2009 22:14