Форум: "Основная";
Текущий архив: 2004.09.05;
Скачать: [xml.tar.bz2];
ВнизПарадокс или моя невнимательность? Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.032 c