![]() |
1. Заголовок или название темы должно быть информативным !
2. Все тексты фрагментов программ должны помещаться в теги [code] ... [/code] или [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ" и используйте ПОИСК !
4. НЕ используйте форум для личного общения!
5. Самое главное - это раздел теоретический, т.е. никаких задач и программ (за исключением небольших фрагментов) - для этого есть отдельный раздел!
![]() ![]() |
![]() |
Deeonis |
![]()
Сообщение
#1
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 12 Репутация: ![]() ![]() ![]() |
как в паскале открыть текстовой файл для записи и чтения одновременно, т.е. у меня цикл до конца файла где происходит сначала запись а потом чтение, но после этих действий он перемещает указатель на начало файла, а мне нодо с того места где мы читали.записывали.
ВОТ ПРОГА: uses crt; var f,f1:text; s,s1,t:string; begin clrscr; assign(f,'c:temp1.txt'); assign(f1,'c:temp11.txt'); reset(f); readln(f,t); rewrite(f1); writeln(f1,t); close(f1); while not eof(f) do begin readln(f,s); reset(f1); while not eof(f1) do begin readln(f1,s1); if s<>s1 then begin append(f1); writeln(f1,s); reset(f1); end end end; readkey end. |
GLuk |
![]()
Сообщение
#2
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 775 Пол: Мужской Репутация: ![]() ![]() ![]() |
Юзай не Var F:Text;, а Var F:File;
и соответственно BlockRead & BlockWrite, иначе никак.. Или Var FileName:String; Handle:Word; Begin FileName:='temp.txt'; asm mov ax,3D02h {Открыть файл для чтения/записи} lea dx,FileName {Смещение к имени} inc dx {Пропускаем байт - там размер} int 21h {Обращаемся к ДОС} mov Handle,ax {Сохраняем дескриптор} end; End. |
AlaRic |
![]()
Сообщение
#3
|
... ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 347 Пол: Мужской Репутация: ![]() ![]() ![]() |
Если тебе нужно на конец файла то:
function seekeof(var A:text); возвращает для текстового файла, связанного с файловой переменной A, состояние "конец файла". |
ozzy |
![]()
Сообщение
#4
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 42 Репутация: ![]() ![]() ![]() |
Что должна делать программа? Сравнивать содержимое 2-х текстовых файлов и если есть отличающиеся строки, то записывать их во второй файл?
Ты делаешь так: while not eof(f) do пока не конец файла begin прочитал строку readln(f,s); и снова открыл файл для чтения, естественно с 1-й позиции reset(f1); while not eof(f1) do begin аналогично readln(f1,s1); и у тебя всегда сравниваются 1-е строки твоих файлов if s<>s1 then begin append(f1); writeln(f1,s); reset(f1); Поясни, что тебе нужно? И, почитай вот это: http://pascal.sources.ru/faq/insstr.htm |
![]() ![]() |
![]() |
Текстовая версия | 18.06.2025 14:19 |