IPB
ЛогинПароль:

> Правила раздела!

1. Заголовок или название темы должно быть информативным !
2. Все тексты фрагментов программ должны помещаться в теги [code] ... [/code] или [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ" и используйте ПОИСК !
4. НЕ используйте форум для личного общения!
5. Самое главное - это раздел теоретический, т.е. никаких задач и программ (за исключением небольших фрагментов) - для этого есть отдельный раздел!

 
 Ответить  Открыть новую тему 
> Файлы
сообщение
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 12

Репутация: -  0  +


как в паскале открыть  текстовой файл для записи и чтения одновременно, т.е. у меня цикл до конца файла где происходит сначала запись а потом чтение, но после этих действий он перемещает указатель на начало файла, а мне нодо с того места где мы читали.записывали.
ВОТ ПРОГА:
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.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Профи
****

Группа: Пользователи
Сообщений: 775
Пол: Мужской

Репутация: -  0  +


Юзай не 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.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


...
*****

Группа: Пользователи
Сообщений: 1 347
Пол: Мужской

Репутация: -  3  +


Если тебе нужно на конец файла то:
function seekeof(var A:text);
возвращает для текстового файла, связанного с файловой переменной A, состояние "конец файла".
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Новичок
*

Группа: Пользователи
Сообщений: 42

Репутация: -  0  +


Что должна делать программа? Сравнивать содержимое 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
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 




- Текстовая версия 29.06.2017 10:37
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"