Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2006.05.21;
Скачать: [xml.tar.bz2];

Вниз

Как записать 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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.49 MB
Время: 0.022 c
6-1137955619
Volf_555
2006-01-22 21:46
2006.05.21
Как захватить сообщение, отправленное с помощью Net Send?


2-1146567856
Troan_81
2006-05-02 15:04
2006.05.21
Изображения


2-1146844463
WST
2006-05-05 19:54
2006.05.21
Edit


9-1130080449
!Trinix
2005-10-23 19:14
2006.05.21
Чистые коллизии в GLScene


15-1145868928
031178
2006-04-24 12:55
2006.05.21
Как защитить свою программу





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский