Автор: 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 ♀♀♀♀♀♀♀♀♀♀♀♀♀ и т.д
Во первых куда делась первая буква ?
Во вторых из за чего появились эти ♀♀
Эскизы прикрепленных изображений
Автор: 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 (нетипизированный) и читаем за один раз столько информации, сколько нужно...
Автор: 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
ну а я Паскаль не брошу, потому что он хороший ;)