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

Вниз

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

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

Наверх





Память: 0.49 MB
Время: 0.009 c
1-50378
MegaVolt
2003-06-03 17:18
2003.06.16
Где можно отключить появление popup меню?


6-50427
Rem100
2003-04-11 17:18
2003.06.16
Как отключить удаленных пользователей?


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


7-50544
Seb_Kost
2003-04-07 09:28
2003.06.16
Проблемка с TurboAsync


3-50262
Rocker
2003-05-25 03:45
2003.06.16
Независимость от регистра





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