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

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

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

Автор: sheka 11.01.2011 20:30

var
fin,fout: text;
s: string[4];
begin
assign(fin,'in.txt');
reset(fin);
assign(fout,'out.txt');
rewrite(fout);
while not eof(fin) do
begin
read(fin,s);
write(fout,s);
end;
close(fin);
close(fout);
end.


in.txt:
mamapapaz

Тов. препод утверждает, что в конце нового файла должны появиться пробелы. У меня их нет. Почему?


Автор: -TarasBer- 11.01.2011 23:21

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

Автор: sheka 11.01.2011 23:38

Логично, что он так думает smile.gif
Да, забыл добавить стандартный вопрос: lol.gif
если пробелы добавляются, то в каких версиях компилятора?

Автор: -TarasBer- 11.01.2011 23:49

Я вот, пока не запустил, думал, что он добавит в конец 3 раза №26

Автор: volvo 12.01.2011 0:07

Цитата
если пробелы добавляются, то в каких версиях компилятора?
Не должны добавляться ни в каких. За корректностью чтения строки из файла следит процедура Read. Если она написана правильно - то длина строки будет установлена корректно. Если неправильно - то может быть вообще все что угодно. Из распространенных компиляторов не видел ни одного, который бы позволял себе подобные вольности. Может, где-нибудь в самописных паскаль-компиляторах и будут добавляться пробелы (на exmortis их навалом, каждый считает своим долгом выложить в сеть результат курсовой по разработке компиляторов)

Автор: Lapp 12.01.2011 11:21

Тарас, я не врубаюсь в твои рассуждения про четверки. Ты имеешь в виду процессорное слово? А при чем тут оно? А может, тогда, уже 8-рки? Понятно, впрочем, что файл займет на диске место в один блок, то есть обычно 4КБ. Но я сомневаюсь, что остаток блока будет чем-то записан. Впрочем, речь все равно не о том )).
Я думаю, препод имел в виду дополнение до полного размера строки. Хотя, может, я и не прав ("никогда не знаешь, что придет в голову пчелам" (С))

Все это доволно странно.. Во-первых - это совешенно не согласуется с концепцией. Во-вторых - ну почему именно пробелы??? А в третьих - что ж, он ни разу не писал файлы из строк по 1-2 символа?.. blink.gif

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

Автор: TarasBer 12.01.2011 14:00

> Тарас, я не врубаюсь в твои рассуждения про четверки.

Строка же задана как 4-символьная.

> Я думаю, препод имел в виду дополнение до полного размера строки.

Да, я про то же.

Автор: Lapp 12.01.2011 14:32

Цитата(TarasBer @ 12.01.2011 10:00) *
Строка же задана как 4-символьная.
Фу ты, млин, извиняиваюсь.. lol.gif где были мои глаза? )))

Автор: TarasBer 12.01.2011 15:38

Ну да, раз TarasBer, значит очередное байтоложество будет втирать...