Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Сохранить данные в файл из двух компонентов StringGrid [D6, XP]


r_yevgeniy ©   (2010-03-23 05:04:00) 

Здравствуйте! Не  получается корректно реализовать процедуру сохранения в файл данных взятых из ячеек двух компонентов StringGrid.
Написал код. но он какой то неправильный. Подскажите как реализовать чтобы работало как надо

procedure TMainForm.SaveToolBtnClick(Sender: TObject);
var i, j : byte;
   f : TextFile;
   s : String;
   s1: string;
begin
 AssignFile(f, 'file.txt');
 Rewrite(f);
 for i:=0 to SG1.RowCount - 1 do
   for j:=0 to SG2.RowCount - 1 do
     begin
       s:=SG1.Cells[0,i];
       s1:=SG2.Cells[0,j];
       Writeln(f,s,s1);
     end;
 CloseFile(f)
end;


Сохранить нужно в файл, следующего вида:

Число Инверсия
456    654
546    645
139    931
1205  5012
180    081
065    560

Затем изменил печать в файл

Writeln(f, i, #9, j, #9, s,s1);

Получилось следующее

0 0 ЧислаИнверсия
0 1 Числа321
0 2 Числа654
0 3 Числа987
0 4 Числа741
0 5 Числа852
0 6 Числа963
0 7 Числа951
1 0 123Инверсия
1 1 123321
1 2 123654
1 3 123987
1 4 123741
1 5 123852
1 6 123963
1 7 123951
2 0 456Инверсия
2 1 456321
2 2 456654
2 3 456987
2 4 456741
2 5 456852
2 6 456963
2 7 456951

Программа работает следующим образом: в первую таблицу заносятся числа, нажимаем пуск и во второй выводятся соответствующие результаты
Вот ссылка на внешний вил и результаты в файле http://radiobd.narod.ru/2.jpg.
Подскажите что я делаю не так


r_yevgeniy   (2010-03-23 11:01:00) [1]

Все я разобрался)
Привожу пример кода
procedure TMainForm.SaveToolBtnClick(Sender: TObject);
var i, j : byte;
   f : TextFile;
   s, s0, s1, space, space1, space2 : String;
begin
 AssignFile(f, 'file.txt');
 ReWrite(f);
 for i:=0 to SG1.RowCount-1 do
   //for j:=1 to SG2.RowCount-1  do
     begin
       s:=SG1.Cells[0,i]; //номер строки
       s0:=SG1.Cells[1,i];// числа
       s1:=SG2.Cells[0,i]; // инверсия
       space:=StringOfChar(' ', 5-Length(s)); //выравние в файле
       space1:=StringOfChar(' ', 30-Length(s1));
       space2:=StringOfChar(' ', 30-Length(s1));
       Writeln(f, {i,' ',} {j, #9,} s,space,s0,space1,s1,space2);
     end;
 CloseFile(f)
end;


MBo   (2010-03-23 08:06:00) [2]

Если я правильно понял проблему, используй не два, а один цикл, вероятно, от 0 до Min(SG1.RowCount - 1, SG2.RowCount - 1)


Наверх

Титульная страница Поиск, карта сайта Написать письмо