Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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
2-1274084890
REX
2010-05-17 12:28
2010.08.27
метод ExecSQL (компонент ADOQuery)


2-1270623897
Девушка
2010-04-07 11:04
2010.08.27
Динамическое создание FibQuery как поле класса


6-1217131439
Надуев Алексей
2008-07-27 08:03
2010.08.27
Сообщение на эл. ящик


2-1273099349
concord
2010-05-06 02:42
2010.08.27
Выпадающий список


15-1267626055
Копир
2010-03-03 17:20
2010.08.27
Как удалось Архимеду сжечь корабли?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский