Другие языки программирования и технологии
Паскаль. Почему програмка создает безконечо-большой тексковый файл
program lab8v15; var n,k : integer; f : text; begin assign (f,'veter.txt'); rewrite (f); n:=0; while not eof do begin read (f, a); n:=n+1; end; close (f); append (f); r:=0; for i:=1 to n do begin if a in [':',',','.','-'] then write (f,a); k:=k+1; end; close (f); write (k); end.
Чет я не вижу где ты переменную а объявляешь.. . Может в этом проблема а? :))
Блин, да у тебя не только а не объявлена.. . дауж.
Так ты почему файл читаешь и в него же пишешь :D
read (f, a);
...
write (f,a);
У тебя прога находит пробелы со знаками пунктуации и тут же их дописывает в этот же файл, потом снова находит и снова пишет. От того и бесконечно большой файл происходит.
Блин, да у тебя не только а не объявлена.. . дауж.
Так ты почему файл читаешь и в него же пишешь :D
read (f, a);
...
write (f,a);
У тебя прога находит пробелы со знаками пунктуации и тут же их дописывает в этот же файл, потом снова находит и снова пишет. От того и бесконечно большой файл происходит.
Доброго времени суток.
Потому что она написана с кучей ошибок.
Про переменную а вам уже сказали, но это не все. Вы используете переменную i в качестве счетчика цикла, но она тоже не объявлена. А еще есть тоже не объявленная переменная r... Далее, подозреваю, что а это массив, т. к. после строчки read (f, a); пошел курсив. А это возможно при такой записи read (f, a[ i ]); (без пробелов перед и после i эти три символа воспринимаются как управляющий тег и включают курсив) . Тем более, что дальше вы проверяете элементы на принадлежность множеству. Еще, while not eof do... еоф что? Где параметр? В таком виде ваша программа не только не будет создавать "безконечо-большой тексковый файл" (с) . Она просто не запустится и не скомпилится.
Удачи!
PS Сорри, Stibiu, не заметил, что про Eof() уже сказано.
Потому что она написана с кучей ошибок.
Про переменную а вам уже сказали, но это не все. Вы используете переменную i в качестве счетчика цикла, но она тоже не объявлена. А еще есть тоже не объявленная переменная r... Далее, подозреваю, что а это массив, т. к. после строчки read (f, a); пошел курсив. А это возможно при такой записи read (f, a[ i ]); (без пробелов перед и после i эти три символа воспринимаются как управляющий тег и включают курсив) . Тем более, что дальше вы проверяете элементы на принадлежность множеству. Еще, while not eof do... еоф что? Где параметр? В таком виде ваша программа не только не будет создавать "безконечо-большой тексковый файл" (с) . Она просто не запустится и не скомпилится.
Удачи!
PS Сорри, Stibiu, не заметил, что про Eof() уже сказано.
По тому, что здесь написано, определённо ясно, что переменная "a" запоминает только последний считанный символ, и условие "if a in [':',',','.','-'] then" в цикле лишено смысла. И ещё: разве "eof" - это не функция, содержащая в своём параметре файловую переменную? А то получается программа ищет конец хрен знает чего.
напиши условие задачи, а то в коде какая-то чушь
офигеть кто то еще на турбопаскале пишет
Федор 7777
Так школьную программу то некому править :D вот и парится народ...
Baizak Kambarov
йопт... какая нах школьная....институт ...КПИ самый крутой технический вуз Украиы. Турбопаскаль два года...
Похожие вопросы
- Паскаль составте програмку!!!!
- Почему нет вирусов в популярных бинарных файлах - mp3, wav, avi,mkv и т. д.
- Паскаль. Почему не робит?
- Паскаль. Почему перед Else нельзя ставить точку с запятой?
- почему рекомендуется создавать логотипы в векторных программах типа корелл дро или иллюстратор, а не в фотошопе
- C# почему когда создаю тип данных byte - он его автоматически преобразовывает в тип int?
- Помогите написать 2 програмки на Турбо Паскале.
- Какую программу (Паскаль) использовать в учебных целях, чтоб была овместима с файлами от "Турбо Паскаль"? В которых
- помогите решить задачи на паскале 1Во входном файле дана последовательность чисел. Требуется найти второе по величине чи
- Паскаль!!)) входной файл содержит два числа x и y. Выходной последнюю цифру числа x в y степени! помогите пожалуйста!
Короче вот тебе рабочая прога. Бери и пользуйся:
program lab8v15;
var
n,k,i : integer;
f,w : text;
a : char;
begin
assign (f,'veter.txt'); {связываем файл с переменной}
assign (w,'result.txt');
reset (f); {открываем файл для чтения}
rewrite (w); {открываем файл для записи}
n:=1; {потому что читать начнем с первого символа, т.к. нулевого не бывает}
k:=0; {этикет прогера}
while not eof(f) do {пока не достигнут конец файла,}
begin
read (f, a); {читаем символ из файла}
if a in [':',',','.','-',';'] then {если в 'a' знак пунктуации, то}
begin
write (w,a); {пишем знак в файл}
k:=k+1; {увеличиваем счетчик}
end;
n:=n+1; {переходим к следующему символу}
end;
close (f);
close (w);
write (k);
end.