Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.09.05;
Скачать: CL | DM;

Вниз

Парадокс или моя невнимательность?   Найти похожие ветки 

 
JohnJ   (2004-08-23 01:03) [0]

Люди! Помогите! Не могу понять в чём фишка!!!
Фрагмент программы, отвечающий за копирование информации из StringGrid3 и StringGrid4 в
файлы tskva.dbj и tsorg.dbj соответственно: В StringGrid3 - 5 столбцов, в StringGrid4 - 6.
Сначала информация вводится вручную в StringGrid3 и StringGrid4 и сохраняется процедурой

WriteToFile. При следующем запуске программы процедура LoadFromFile считывает введённую

информацию из файлов. Вопрос: Почему информация считывается по столбцам а не по строкам, как

записывалась? Например, если у меня в StringGrid 4 было записано
 один два три четыре пять шесть
 1    2  3   4      5    6
               ууу ооо  иии ааа    ыыы  ффф

то при первом обращении к файлу массив TMOrg будет содержать
               ("один","1","ууу","","","")


const MaxOrg=5;
     MaxKva=5;
     Forg="tsorg.dbj";
     Fkva="tskva.dbj";

type
 MOrg=array[0..MaxOrg] of string[40];
 MKva=array[0..MaxKva] of string[40];

var
 Form1: TForm1;
 i,j:integer;
 TMOrg:MOrg;
 TMKva:MKva;
 fto:file of MOrg;
 ftk:file of MKva;

procedure LoadFromFile;
begin
 {Информация считывается с двух файлов:tsorg.dbj и tskva.dbj}
 AssignFile(ftk,Fkva);
 Reset(ftk);
 i:=1;
 with Form1 do
  while not EOF(ftk) do
   begin
     StringGrid3.RowCount:=i;
     Read(ftk,TMKva);
     for j:=1 to 5 do
      StringGrid3.Cells[i-1,j-1]:=TMKva[j];
     inc(i);
   end;
 CloseFile(ftk);
 AssignFile(fto,Forg);
 Reset(fto);
 i:=1;
 with Form1 do
  while not EOF(fto) do
   begin
     StringGrid4.RowCount:=i;
     Read(fto,TMOrg);
     for j:=0 to 5 do
      StringGrid4.Cells[i-1,j]:=TMOrg[j];
     inc(i);
   end;
 CloseFile(fto);
end;
procedure WriteToFile;  
begin
 {Информация из StringGrid3 и StringGrid4 записывается в файлы tskva.dbj и tsorg.dbj
  соответственно}
 AssignFile(ftk,Fkva);
 ReWrite(ftk);
 with Form1 do
  for i:=0 to StringGrid3.RowCount-1 do
   begin
     TMKva[0]:="=";
     for j:=0 to 4 do
      TMKva[j+1]:=StringGrid3.Cells[i,j];
     Write(ftk,TMKva);
   end;
 CloseFile(ftk);
 AssignFile(fto,Forg);
 ReWrite(fto);
 with Form1 do
  for i:=0 to StringGrid4.RowCount-1 do
   begin
     for j:=0 to 5 do
      TMOrg[j]:=StringGrid4.Cells[i,j];
     Write(fto,TMOrg);
   end;
 CloseFile(fto);
end;


 
JohnJ   (2004-08-23 01:30) [1]

Блин! Может у меня с компом не всё в порядке? Сейчас попробовал удалить эти файлы и записал заного... При загрузке пишет ошибку ввода-вывода номер 32... Кто знает что это за ошибка, или где это посмотреть?


 
JohnJ   (2004-08-23 01:53) [2]

Проблемма с ошибкой номер 32 - это ошибка совместного доступа. Оказалось что у меня в процедуре проверки файла на существование файл не закрывался... хотя странно почему работало раньше! Тем не менее первая проблема осталась актуальной! Помогите пожалуйста!


 
JohnJ   (2004-08-23 02:06) [3]

Простите за беспокойство - до меня дошло! Оказывается в ScringGrid.Cells сначала указывается столбец, а не строка! :)


 
Andy BitOff ©   (2004-08-23 02:38) [4]

Вот и поговорили :)



Страницы: 1 вся ветка

Текущий архив: 2004.09.05;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.05 c
14-1092362894
Думкин
2004-08-13 06:08
2004.09.05
С днем рождения! 13 августа


3-1092141651
Diman
2004-08-10 16:40
2004.09.05
Как записать данные из DBGrid в Excel-формат?


1-1093071320
Islander
2004-08-21 10:55
2004.09.05
Как поменять местами элементы в ListView?


14-1092369861
Думкин
2004-08-13 08:04
2004.09.05
Пятничные задачки. 13 августа 2004


1-1093003639
kukuikar
2004-08-20 16:07
2004.09.05
Я изменил Dialogs.pas. Как мне переделать Dialogs.dcu?