Главная страница
    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.011 c
2-1146811234
RomanH
2006-05-05 10:40
2006.05.21
Управление DBLookUpComboBox ом


15-1146034567
Харченко
2006-04-26 10:56
2006.05.21
Задачи по взвешиванию монет


15-1146008584
Серджинйо
2006-04-26 03:43
2006.05.21
JEDI Не устанавливается...


15-1145616875
Deka
2006-04-21 14:54
2006.05.21
IDE Delphi перестала тормозить!


4-1140881371
Pit
2006-02-25 18:29
2006.05.21
My Computer





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