There is no such thing as a stupid question, until you ask it
Итак, теперь у меня проблемы с другой темой.
Задача: создать файл F и переписать в файл G нечетные строки.
Мой результат, который, несмотря на свою простоту и логичность (для меня, по крайней мере), крашится на одной строке, гррр:
Не понимаю, чем компилятору не понравился старый добрый эол. Ковырялась в окне отладки, но это не подсказало мне причину краша. Рассчитываю на вашу помощь, у меня уже правый глаз нервно подрагивает C:
Задача: создать файл F и переписать в файл G нечетные строки.
Мой результат, который, несмотря на свою простоту и логичность (для меня, по крайней мере), крашится на одной строке, гррр:
Не понимаю, чем компилятору не понравился старый добрый эол. Ковырялась в окне отладки, но это не подсказало мне причину краша. Рассчитываю на вашу помощь, у меня уже правый глаз нервно подрагивает C:
After calling Rewrite, Eof(F) is always true.
1. Крашится она потому что у вас файл f открыт для записи, а вы из него читать хотите. Его надо закрыть и открыть по-другому.
2. Почему-то заработало окончательно, когда я забрала в комменты обычные readln, writeln. Не знаю, почему так, даааавно таким вводом-выводом не пользовалась
3. Заполнение строк: для заполнения строки одинаковыми символами есть функция FillChar.
И ышшо одно: такой ввод-вывод из файлов для винды считаются устаревшими. Работать-то они в основном будут, то куда эффективнее использование потокового ввода-вывода, а для списков строк есть вообще красивая штука TStringList.
Почему-то заработало окончательно, когда я забрала в комменты обычные readln, writeln.
А у меня она работает и без этого. То есть, если оставить их в первоначальном варианте.
А за функцию спасибо :3
у тебя в while каждый цикл происходит дважды считывание строк, а если строка осталась одна, это не может быть причиной?
Считывание просто смещает указатель до конца строки. Если дальше гулять некуда - то он остается в самом конце. Если что, то выше предложенный вариант с исправлениями немного неверен: он не выполняет нужную в условии задачу. Но я его исправила, так что все оке! C;
И да, проблема была именно в закрытии файла. Все остальное верно.
Но все равно пламенное спасибо за помощь!