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

Вниз

Помогите разобраться с типизиров. и нетипизир. файлами   Найти похожие ветки 

 
AbrosimovA   (2003-06-04 14:27) [0]

До сих пор не въезжаю, какие файлы являются типизированными, а какие - нетипизированные. Ведь к каждому виду файла применим свой подход при чтении. А пока я с этим не разберусь, не смогу читать файлы. Приведу несколько примеров записей файлов, например:

Первый файл(Одна запись)

type TVFile = record
R: array[1..N] of real48;
B: array[1..N] of byte;
end;


Второй файл(Одна запись)

type TCFile = record
P : pointer;
S : string[10];
W : word;
B : byte;
R1 : real48;
R2 : real48;
R3 : real48;
R4 : real48;
I1 : integer;
I2 : integer;
end;


Третий файл(Две записи)

type TH = record
L1 : longint;
W1 : word;
L2 : longint;
W2 : word;
L3 : longint;
L3 : longint;
S : array[1..60] of string[10];
end;

type TV = record
L : longint;
R : array[1..60] of real48;
end;


Так какие-же из этих файлов типизированные, а какие нет?
Есть ли у кого-нибудь примеры работы с типизиров. и нетипизир. файлами?


 
Skier ©   (2003-06-04 14:31) [1]

И где же тут файлы ?


 
Palladin ©   (2003-06-04 14:31) [2]

:)) а где тут файлы то? :)
записи вижу :) файлы не вижу :)
ну почему книги не читаем по паскалю то?

var
f:file; // не типизированый файл
f:file of TVFile; // типизированый


 
AbrosimovA   (2003-06-04 15:14) [3]

Если поточнее сформулировать, то я привел структуру записей реальных файлов.


> var
> f:file; // не типизированый файл
> f:file of TVFile; // типизированый


Из этого я могу сделать вывод, что один и тот-же файл я могу считать типизированным или нетипизированным в зависимости от моего настроения. А из структуры этого нельзя сделать?


 
Palladin ©   (2003-06-04 15:18) [4]

типизированый и не типизированый файлы это понятие на уровне программирования, любой файл есть битовый набор...


> А из структуры этого нельзя сделать?

что ты имеешь в виду?


 
gek ©   (2003-06-04 15:19) [5]


> Из этого я могу сделать вывод, что один и тот-же файл я
> могу считать типизированным или нетипизированным в зависимости
> от моего настроения


Нет
нетипизированый файл назван именно так потому, что...
(А вот догадайся с одного раза)


 
AbrosimovA   (2003-06-04 15:31) [6]

Разве это форум, это "угадайка сам". Если бы мне удалось самому дойти до познания, я б не обращался за помощью.


 
Sandman25 ©   (2003-06-04 15:33) [7]

Вам уже ответили. Palladin © (04.06.03 14:31)


 
AbrosimovA   (2003-06-04 15:45) [8]

Я так понимаю, для того чтобы в своей программе написать файловую переменную вида var f:file; // не типизированый файл или var f:file of TVFile; // типизированый, мне нужно проанализировать что-то, известное об этом файле(структуру записи,текст в Hex-редакторе и т.д.). В любом деле главное - начать, но я не знаю даже с чего начать(книг по Паскалю у меня нет).


 
Skier ©   (2003-06-04 15:46) [9]


> что один и тот-же файл я могу считать типизированным или
> нетипизированным в зависимости от моего настроения.

В зависимости от того как он объявлен у тебя программе.
Если бы всё работало в зависимости от настроения, то быть бы
атомной войне...


 
Sandman25 ©   (2003-06-04 15:50) [10]

Все зависит от того, как Вы собираетесь с файлом работать.
Если
Read(f, MyRec); то надо объявлять файл типизированным var f:file of TMyRec;
а если через Blockread, то можно объявить файл и нетипизированным.


 
Palladin ©   (2003-06-04 15:55) [11]


> книг по Паскалю у меня нет

рекомендую пойти и купить в ближайшем магазине...


 
KSergey ©   (2003-06-04 16:00) [12]

Добавлю еще от себя высказанные мысли: собственно в файле не записывается типизированный он или нет. Все зависит от того каким вы его хотите видеть. Самому файлу по барабану, он об этом даже не догадывается. Впрочем, всем остальным - тоже.


 
AbrosimovA   (2003-06-04 16:09) [13]


> Sandman25 © (04.06.03 15:50)


Решение работать с файлами, например, как с типизированными
( var f:file of TMyRec;), ведь не просто так приходит. Этому должны быть какие-то предпосылки и умозаключения.


 
Skier ©   (2003-06-04 16:12) [14]


> Этому должны быть какие-то предпосылки и умозаключения.
>

Программирование (да и не только оно) вообще основывается на умозаключениях :)


 
Sandman25 ©   (2003-06-04 16:17) [15]

Если у Вас в файл записано всего лишь 5 записей, то используйте file of TMyRec.
Если у Вас там 50.000 записей, то лучше использовать file.
Если у Вас там, кроме этих записей, есть и еще записи другого формата (скажем TMyOtherRec), то у Вас нет выбора, кроме как использовать file.


 
AbrosimovA   (2003-06-04 16:18) [16]

Так значит пофиг всё, что я привел в самом начале? Объявляй файл типизированным(или нетипизированным) и пытайся его прочитать?
Какой-же способ предпочтительнее?


 
Palladin ©   (2003-06-04 16:21) [17]


> AbrosimovA (04.06.03 16:09)

был тут один мегавольт, тоже спрашивал как ему понять когда ему применять SetLength...

ну головой думайте, да. никто же за вас не будет решать где и как прописать какойнибудь оператор или какую же завести переменную...

ну хочешь ты рассматривать файл как пары двух чисел integer ну и рассматривай

type
TDoubleInteger=record
num1,num2:integer;
end;

var
f:file of TDoubleInteger;
dbv:TDoubleInteger;

assignfile(f,"c:\myfile.dbl");reset(f);
read(f,dbv);
closefile(f);

а хочешь рассматривать как некая последовательность кусков неструктурной информации определенного размера дык рассматривай

var
f:file;

buf:array [0..511] of byte;

можно так
assignfile(f,"c:\bytearray.dat");reset(f,1);
blockread(f,buf,sizeof(buf));
closefile(f);

можно так
assignfile(f,"c:\bytearray.dat");reset(f,sizeof(buf));
blockread(f,buf,1);
closefile(f);

все зависит от тебя! пойми ты это! как тебе надо так и используй файлы...


 
AbrosimovA   (2003-06-04 16:28) [18]

Спасибо всем за полемику. Было полезно пообщаться.


 
Vulko ©   (2003-06-04 16:32) [19]


> собственно в файле не записывается типизированный он или
> нет

Зато если его просмотреть (или погой прочитать), то тут уж от правды не убежать...



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

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

Наверх




Память: 0.51 MB
Время: 0.016 c
1-50292
Arm79
2003-06-04 17:13
2003.06.16
Установка компонент сторонниз разработчиков


1-50311
borg
2003-06-02 06:19
2003.06.16
Кодирование


1-50349
NickName
2003-06-03 18:58
2003.06.16
Директивы компилятора


1-50323
Dankin
2003-06-03 12:35
2003.06.16
Drag and drop


3-50219
Vladimir S Hudyakov
2003-05-24 09:35
2003.06.16
Вывод для печати в QuickRep выборки из базы