![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Сохранить данные в файл из двух компонентов 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)