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

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

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

Автор: Beowulf 13th 2.05.2007 22:16

Объясните мне глупому. Почему не пишет:

Код
program testa;


uses CRT;

var test: text;

begin
        clrscr;
        assign(test,'test3.txt');
        rewrite(test);
        writeln(test,'asdfasdfsdf');

end.


создается файл, но он пустой.

Автор: volvo 2.05.2007 22:17

Закрой файл (Close), тогда буфер в него сбросится, и файл будет содержать то, что ты записывал...

Автор: Beowulf 13th 2.05.2007 22:24

пасип.

Автор: Гость 9.11.2007 1:29

нет, нельзя напрямую в файл что-то записывать (всмысле текст который тебя интересует) создай переменную типа стринг и в нее запиши то что тебя интересует, затем пиши Writeln(test,st);
st:='678ghjfdgfhgfhg';
Writeln(test,st);

Автор: volvo 9.11.2007 2:25

Цитата
нет, нельзя напрямую в файл что-то записывать (всмысле текст который тебя интересует)
Правда что-ли? "А мужики-то не знают" (С)

А теперь вопрос на засыпку: если я делаю так, как показано в первом посте, какое правило (синтаксическое, логическое, еще какое-нибудь) нарушается при этом? Желательна цитата первоисточника, то есть, документации, а не твоего личного сайта.

Второй вопрос: какая (с точки зрения компилятора) разница между
var test: text;
begin
...
writeln(test,'asdfasdfsdf');
...
end.


и

var test: text;
const s = 'asdfasdfsdf';
begin
...
writeln(test, s);
...
end.
?

Ну, и третий: ты проверил, работает ли программа (с учетом указанного исправления), перед тем как поднять тему, которой больше чем полгода?

Автор: 2ral 11.11.2007 3:17

А не лучше ли использовать output?



assign(output,'text.in');
rewrite(output);
writeln(st);
close(output);