Другие языки программирования и технологии
Примитивная работа с файлами. PASCAL.
program SomeProg; uses crt; var texts:text; begin assign(texts,'C:\inout.txt'); apperd(texts); writeln(texts,'wroten'); - как определить, какая это будет строчка в документе? close(apperd); end. Вопрос №2: как в документе перейти, к той, или иной строчке? Вопрос №3: как стереть определённую строку?
Какая строчка в текстовом файле - только просмотром всего файла и счетом строчек.
Перейти - надо знать, к какому по номеру байту, опять же нужен просмотр всего документа и запомнаение номеров байтов начал строчек.
Стереть строку - проще всего переписать в другой файл с исключением этой строки, но можно и сдвигом каждой прочитанной после стираемой строки к началу файла с учетом смещения на длину стираемой строки - быстрее, но несколько сложнее в реализации.
Перейти - надо знать, к какому по номеру байту, опять же нужен просмотр всего документа и запомнаение номеров байтов начал строчек.
Стереть строку - проще всего переписать в другой файл с исключением этой строки, но можно и сдвигом каждой прочитанной после стираемой строки к началу файла с учетом смещения на длину стираемой строки - быстрее, но несколько сложнее в реализации.
Aktam Uzakov
как можете предложить реализацию "СЧЁТА СТРОЧЕК". Нутром чую, что repeat, а доказать немогу.
Aktam Uzakov
а в Until указать EOF?
Доброго времени суток.
1. Во-первых, не apperd, а Append, а во-вторых, читаем хелп.
Append открывает существующий внешний файл с
именем, определенным в файловой переменной F.
Если внешний файл с данным именем не
существует, то происходит ошибка ввода/вывода.
Если F уже открыт, то он закрывается и вновь
открывается. Текущая позиция файла
устанавливается на конец файла.
Если в последнем 128-байтовом блоке файла
присутствует символ Ctrl+Z (символ, с кодом
26), то текущая позиция файла устанавливается,
так чтобы перезаписать первый встретившийся
Ctrl+Z в блоке. Таким образом, к файлу,
который завершается символом Ctrl+Z может быть
добавлен текст.
Следовательно, 'wroten' будет последней строчкой в документе после выполнения оператора записи.
2. Так можно прочитать строку из файла.
i := 0;
while (i < N) and not Eof(F) do begin
i := i + 1;
ReadLn(F, S);
end;
Цикл while потому, что файл может быть и пустым. При таком раскладе repeat приведет к ошибке. Проверив после цикла i = N можно убедиться, что прочитана нужная строчка, а не последняя (при i < N).
3. Стереть строку действительно проще путем использования временного файла.
Удачи!
PS И не close(apperd); а Close(texts); коль соро вы дали такое имя файловой переменной.
1. Во-первых, не apperd, а Append, а во-вторых, читаем хелп.
Append открывает существующий внешний файл с
именем, определенным в файловой переменной F.
Если внешний файл с данным именем не
существует, то происходит ошибка ввода/вывода.
Если F уже открыт, то он закрывается и вновь
открывается. Текущая позиция файла
устанавливается на конец файла.
Если в последнем 128-байтовом блоке файла
присутствует символ Ctrl+Z (символ, с кодом
26), то текущая позиция файла устанавливается,
так чтобы перезаписать первый встретившийся
Ctrl+Z в блоке. Таким образом, к файлу,
который завершается символом Ctrl+Z может быть
добавлен текст.
Следовательно, 'wroten' будет последней строчкой в документе после выполнения оператора записи.
2. Так можно прочитать строку из файла.
i := 0;
while (i < N) and not Eof(F) do begin
i := i + 1;
ReadLn(F, S);
end;
Цикл while потому, что файл может быть и пустым. При таком раскладе repeat приведет к ошибке. Проверив после цикла i = N можно убедиться, что прочитана нужная строчка, а не последняя (при i < N).
3. Стереть строку действительно проще путем использования временного файла.
Удачи!
PS И не close(apperd); а Close(texts); коль соро вы дали такое имя файловой переменной.
Aktam Uzakov
Благодарю за ответ. Я уже сам сделал(
ОСталась токо одна проблема - как перейти к определённой стрчке файла,при записи(т.е. записи строки, пока EOLN не сообщит). у меня же уже есть значение)))
ОСталась токо одна проблема - как перейти к определённой стрчке файла,при записи(т.е. записи строки, пока EOLN не сообщит). у меня же уже есть значение)))
Похожие вопросы
- Delphi, работа с файлами
- С/C++ работа с файлами, удаление и вывод на экран заранее не известных файлов
- Программирование С++(работа с файлами) Подробное описание
- Работа с файлами. PascalABC.
- С++ работа с файлами, как достать отдельно слова из файла
- Работа с файлами в АССЕМБЛЕРЕ. Надо считывать файл, путь указывает пользователь при запуске программу. Помогите!
- Помогите пожалуйста. Язык Си работа с файлами
- С++ ПРОГРАММИРОВАНИЕ. работа с файлами
- Программирование на C++.Работа с файлами.
- помогите найти ошибка в программе на PASCAL тема: "файлы".