Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Теоретические вопросы _ Нетипизированый файл

Автор: suriv 12.12.2004 17:27

Код
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 12.12.2004 19:07

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 12.12.2004 20:58

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

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

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

:p1: :p1: :p2:


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

Автор: volvo 12.12.2004 21:17

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

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

Делаем так: описываем как File (нетипизированный) и читаем за один раз столько информации, сколько нужно...

Автор: suriv 12.12.2004 21:18

Понятно

Автор: Guest 13.12.2004 0:16

Мда Наверно перейду на дельфи. :yes:

Автор: suriv 13.12.2004 0:18

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

Блин зайти забыл(я написал)

Автор: volvo 13.12.2004 0:20

Guest
А что, в Дельфи уже без программиста программы пишутся? Думать в Дельфи не нужно? Файлов совсем нет? Панацея, однако!!!

Автор: suriv 13.12.2004 0:32

Я не в этом смысле хотел сказать.

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

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

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

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

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

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



ЗЫ: Мдаа что я тут нагородил :p2:

Автор: suriv 13.12.2004 0:40

Хотя у дельфи тоже лолжны быть и свои минусы

Автор: Флогримм 13.12.2004 10:59

ну а я Паскаль не брошу, потому что он хороший ;)