Помощь - Поиск - Пользователи - Календарь
Полная версия: Нетипизированый файл
Форум «Всё о Паскале» > Pascal, Object Pascal > Теоретические вопросы
suriv
Код
uses crt;
var
f:file;
s:string;
i:integer;
begin
clrscr;
assign(f,'c:\log.txt');
reset(f);
blockread(f,s,sizeof(s),i);
write(s);
readln;
end.


В файле c:\log.txt написано Hello World


Кокда компилю выдаёт вот что:
Цитата
ello world ♀♀♀♀♀♀♀♀♀♀♀♀♀ и т.д

Во первых куда делась первая буква ? sad.gif
Во вторых из за чего появились эти ♀♀ blink.gif
volvo
suriv
Опять за свое, великий экспериментатор. Я же тебе говорил, чтобы работать со строками - используй текстовый файл...

Что здесь происходит? Все очень просто: ты читаешь данные в строку, но как устроена строка? Нулевой символ строки содержит ее длину, а при чтении с помощью BlockRead ты в нулевой символ читаешь значение равное Ord('H'), т.е. 104, вот и получается, что строка у тебя - длиной 104 символа, причем первый - потерян. Чтобы получить "нормальную" строку, попробуй:
Код

uses crt;
var
f:file;
s:string;
i:integer;
begin
clrscr;
assign(f,'log.txt');
reset(f);
blockread(f,s[1],sizeof(s),i);
s[0] := chr(11); { 11  - длина "Hello World" }
write(s);
readln;
end.

Ну что, будешь продолжать пользоваться бестиповыми файлами для чтения строк? :D
suriv
Цитата
Ну что, будешь продолжать пользоваться бестиповыми файлами для чтения строк?

Нет я просто решил проэкспереминтировать.

Цитата
Опять за свое, великий экспериментатор

:p1: :p1: :p2:


Я для чего нужны нетипизированые файлы ??? :o
volvo
Цитата
для чего нужны нетипизированые файлы

Допустим, ты пишешь программу для работы с файлами PCX... Перед началом работы с самим изображением надо прочитать заголовок (фиксированной длины), а затем читать сами данные. Как будешь описывать этот файл? Text? (но в нем не содержатся ASCII символы) File Of Byte? (тогда за одно чтение из файла ты сможешь прочитать только 1 байт, а если тебе надо 1Кбайт - 1024 прохода...)

Делаем так: описываем как File (нетипизированный) и читаем за один раз столько информации, сколько нужно...
suriv
Понятно
Guest
Мда Наверно перейду на дельфи. :yes:
suriv
Цитата
Мда Наверно перейду на дельфи.

Блин зайти забыл(я написал)
volvo
Guest
А что, в Дельфи уже без программиста программы пишутся? Думать в Дельфи не нужно? Файлов совсем нет? Панацея, однако!!!
suriv
Я не в этом смысле хотел сказать.

Когда я хотел начать на дельфи я узнал что для этого понадобятся хоть какие знания паскаля.

Ну я так привык на пасе писать что на дельфи как-то непрывычно и неудобно. хотя я и дальше стану изучать паскаль но на дельфи намного проще сделать например меню а на паскале надо.......

Так что я собираюсь знать паскаль полностью(наверно)

Цитата
Мда Наверно перейду на дельфи

Беру свои слова назад

Хотя в некоторых случаях не помешает



ЗЫ: Мдаа что я тут нагородил :p2:
suriv
Хотя у дельфи тоже лолжны быть и свои минусы
Флогримм
ну а я Паскаль не брошу, потому что он хороший ;)
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.