Форум: "Начинающим";
Текущий архив: 2010.08.27;
Скачать: [xml.tar.bz2];
ВнизСохранить данные в файл из двух компонентов StringGrid Найти похожие ветки
← →
r_yevgeniy © (2010-03-23 05:04) [0]Здравствуйте! Не получается корректно реализовать процедуру сохранения в файл данных взятых из ячеек двух компонентов 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.
Подскажите что я делаю не так
← →
MBo © (2010-03-23 08:06) [1]Если я правильно понял проблему, используй не два, а один цикл, вероятно, от 0 до Min(SG1.RowCount - 1, SG2.RowCount - 1)
← →
r_yevgeniy © (2010-03-23 11:01) [2]Все я разобрался)
Привожу пример кода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;
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2010.08.27;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.064 c