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

Вниз

Как записать record в файл и потом ее считать?Плииз ОЧЕНЬ срочно   Найти похожие ветки 

 
NightHunter ©   (2006-04-28 01:47) [0]

Знаю что такая тема уже была, но вообще не могу ее найти.
Вот у меня есть запись Balance=record ...... end;
Описал я файл так

Var
F:file of Balance;

Теперь при выполненении такого кода:

AssignFile(f,"d:\Foma1.fan");
rewrite(f);
writeln(f,Balance);
closeFile(f);

Выдает ошибку Illegal type in write/writeln statement Плииз очень срочно надо на завтра сдать прогу :) подскажите как записать эту запись в файл а потом считать ее из него!


 
Джо ©   (2006-04-28 01:53) [1]

> Balance=record ...... end;

Интересует то, что на месте многоточия.


 
Германн ©   (2006-04-28 01:53) [2]

А ты понимаешь разницу между процедурами Write и Writeln?

Имхо, нет. Тогда замени вторую на первую, сдай завтра прогу и "не лезь больше сюда"!


 
Германн ©   (2006-04-28 01:58) [3]


> Джо ©   (28.04.06 01:53) [1]
>
> > Balance=record ...... end;
>
> Интересует то, что на месте многоточия.


Когда сабж связан со "сдачей", имхо, то что расположено "на месте многоточия" - скорее всего не имеет никакого отношения к реальности. И, следовательно "неинтересно".


 
NightHunter ©   (2006-04-28 02:05) [4]

Спасибо начало работать но вот в чем еще тогда вопрос как записать масив из этих же рекордов

типа
 цикл по i
 write(F,Balance[i])

А считывать
 цикл по i
 read(F,Balance[i])

Но вот в чем проблема оно работает не коректно!


 
NightHunter ©   (2006-04-28 02:06) [5]

Не корректность заключается в том что там где при записи стоит число при чтении уже 0 :)


 
Германн ©   (2006-04-28 02:48) [6]


> NightHunter ©   (28.04.06 02:05) [4]
>
> Спасибо начало работать но вот в чем еще тогда вопрос как
> записать масив из этих же рекордов
>
> типа
>  цикл по i
>  write(F,Balance[i])
>
> А считывать
>  цикл по i
>  read(F,Balance[i])
>
> Но вот в чем проблема оно работает не коректно!
> <Цитата>
> NightHunter ©   (28.04.06 02:06) [5]
>
> Не корректность заключается в том что там где при записи
> стоит число при чтении уже 0 :)
>


Переведи на русский! Имхо.


 
NightHunter ©   (2006-04-28 03:00) [7]

Типа у меня есть масив из двух записей:
1: 2 5 4 8 2 0
2: 6 8 9 7 0 0
Так вот записую этот масив в файл считую его и получаю такую картину

1: 2 5 4 8 2 0
2: 0 6 8 9 7 0


 
NightHunter ©   (2006-04-28 03:01) [8]

У меня рекорд имеет такой вид
Balance=record
 A1,A2,A3,A4,A5,A6:integer;
end;


 
Германн ©   (2006-04-28 03:11) [9]


> 1: 2 5 4 8 2 0
> 2: 6 8 9 7 0 0
> Так вот записую этот масив в файл считую его и получаю такую
> картину
>
> 1: 2 5 4 8 2 0
> 2: 0 6 8 9 7 0
>


И это не наводит тебя ни какие мысли?


 
NightHunter ©   (2006-04-28 03:21) [10]

Вообще наводит! что он смещается на 1 символ но КАК! И КАК эту богодельню исправить (уже часа 2 бьюся) Думаю что если не получится в течении ближайших 30 мин буду эту всю фигню писать через строковой тип через разделитель :)


 
Джо ©   (2006-04-28 03:25) [11]

Показал бы, все-таки реальный код как оно там записывается и считывается...


 
NightHunter ©   (2006-04-28 03:35) [12]

procedure TfrmMain.Button1Click(Sender: TObject);
Var
F:textfile;
s:string;
a:array [1..86] of real;
b:array [1..46] of real;
i,j:integer;
Balance:rcBalansForma1;
f1:file of rcBalansForma1;
arBalance:array [1..5] of rcBalance;
begin
for j:=1 to 5 do Begin
AssignFile(f,"d:\form"+IntToStr(j)+".txt");
reset(f);
for i:=1 to 86 do
begin
 readln(f,s);
 A[i]:=strtoFloat(s);
end;
closeFile(f);
for i:=1 to 86 do
ShowMessage(FloatToStr(A[i]));//Это просто для проверки было вставлено
Balance.A1:=A[1];
Balance.A2:=A[2];
Balance.A3:=A[3];
Balance.A4:=A[4];
Balance.A5:=A[5];
Balance.A6:=A[6];
Balance.A7:=A[7];
Balance.A8:=A[8];
Balance.A9:=A[9];
Balance.A10:=A[10];
Balance.A11:=A[11];
Balance.A12:=A[12];
Balance.A13:=A[13];
Balance.A14:=A[14];
Balance.A15:=A[15];
Balance.A16:=A[16];
Balance.A17:=A[17];
Balance.A18:=A[18];
Balance.A19:=A[19];
Balance.A20:=A[20];
Balance.A21:=A[21];
Balance.A22:=A[22];
Balance.A23:=A[23];
Balance.A24:=A[24];
Balance.A25:=A[25];
Balance.A26:=A[26];
Balance.A27:=A[27];
Balance.A28:=A[28];
Balance.A29:=A[29];
Balance.A30:=A[30];
Balance.A31:=A[31];
Balance.A32:=A[32];
Balance.A33:=A[33];
Balance.A34:=A[34];
Balance.A35:=A[35];
Balance.A36:=A[36];
Balance.A37:=A[37];
Balance.A38:=A[38];
Balance.A39:=A[39];
Balance.A40:=A[40];
Balance.A41:=A[41];
Balance.A42:=A[42];
Balance.A43:=A[43];
Balance.A44:=A[44];
Balance.A45:=A[45];
Balance.A46:=A[46];
Balance.A47:=A[47];
Balance.P1:=A[48];
Balance.P2:=A[49];
Balance.P3:=A[50];
Balance.P4:=A[51];
Balance.P5:=A[52];
Balance.P6:=A[53];
Balance.P7:=A[54];
Balance.P8:=A[55];
Balance.P9:=A[56];
Balance.P10:=A[57];
Balance.P11:=A[58];
Balance.P12:=A[59];
Balance.P13:=A[60];
Balance.P14:=A[61];
Balance.P15:=A[62];
Balance.P16:=A[63];
Balance.P17:=A[64];
Balance.P18:=A[65];
Balance.P19:=A[66];
Balance.P20:=A[67];
Balance.P21:=A[68];
Balance.P22:=A[69];
Balance.P23:=A[70];
Balance.P24:=A[71];
Balance.P25:=A[72];
Balance.P26:=A[73];
Balance.P27:=A[74];
Balance.P28:=A[75];
Balance.P29:=A[76];
Balance.P30:=A[77];
Balance.P31:=A[78];
Balance.P32:=A[79];
Balance.P33:=A[80];
Balance.P34:=A[81];
Balance.P35:=A[82];
Balance.P36:=A[83];
Balance.P37:=A[84];
Balance.P38:=A[85];
Balance.P39:=A[86];
arBalance[j]:=Balance;
end;
AssignFile(F1,"d:\Forma1.fan");
rewrite(f1);
for j:=1 to 5 do write(f1,arBalance[j]);
CloseFile(F1);
end;


 
NightHunter ©   (2006-04-28 03:36) [13]

Так я его записую потом вот так считую

AssignFile(FileOfForm1,"d:\forma1.fan");
reset(FileOfForm1);
for j:=1 to 5 do read(FileOfForm1,BalanceF1[i]);
CloseFile(FileOfForm1);


 
NightHunter ©   (2006-04-28 03:44) [14]

Все спасибо всем я уже накатал мини продцедуру записи и чтения через строковый тип!


 
Плохиш ©   (2006-04-28 11:07) [15]


> NightHunter ©   (28.04.06 03:00) [7]
> Типа у меня есть масив из двух записей:
> 1: 2 5 4 8 2 0
> 2: 6 8 9 7 0 0
> Так вот записую этот масив в файл считую его и получаю такую
> картину
>
> 1: 2 5 4 8 2 0
> 2: 0 6 8 9 7 0

Чё ж вы делаете такое? Даже, когда я был знаком с паскалем пол года, у меня так не получалось.
А читать ту не форматированную кучу буквав из [12] я не осилил.


 
isasa ©   (2006-04-28 11:11) [16]

NightHunter ©   (28.04.06 01:47)  
Вот у меня есть запись Balance=record ...... end;

Я бы еще добавил
Balance=packed record ...... end;

а то преподаватель может не прочесть готовый файл.


 
ЮЮ ©   (2006-04-28 11:36) [17]

>А читать ту не форматированную кучу буквав из [12] я не осилил.

Построчная оплата исходников, ИМХО :)



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

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

Наверх




Память: 0.51 MB
Время: 0.04 c
2-1146403929
Mr tray
2006-04-30 17:32
2006.05.21
Убрать popupmenu


2-1146643356
Alex_C
2006-05-03 12:02
2006.05.21
Как получить CharSet шрифта


2-1146314794
DiMonstr
2006-04-29 16:46
2006.05.21
Помогите с потоками TStream!


2-1146745907
KyRo
2006-05-04 16:31
2006.05.21
Почему нет коннекта


3-1143826947
VedunO
2006-03-31 21:42
2006.05.21
Сравнение результата запроса с файлом DBF