Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Синтаксис
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 28.09.2015, 07:33
mefisto74 mefisto74 вне форума
Прохожий
 
Регистрация: 28.09.2015
Сообщения: 2
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию еще одна тема по запись в конец типизированного файла

Тут уже bыла тема по этому поводу, и я туда не могу писать потому что она "слишком старая" но у меня таки не раbотает
вываливается EInOutError: read past end of file
даже при bанальном
seek(f,FileSize(f))
write(f,500);
Ответить с цитированием
  #2  
Старый 28.09.2015, 08:04
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

хоть бы простейший пример реализующий проблему привел...
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
  #3  
Старый 28.09.2015, 08:59
mefisto74 mefisto74 вне форума
Прохожий
 
Регистрация: 28.09.2015
Сообщения: 2
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Код:
procedure FnegativeTemp(var Fx:RealFile);
var
i:integer;
Ntemp:real;
NArray:array[1..20] of real;
begin
assign(Fx,'temp.dat');
reset(Fx);

for i:=1 to FileSize(Fx) do begin
read(Fx,Ntemp);
seek(fx,FileSize(Fx));

if Ntemp<0 then begin
Narray[i]:=Ntemp;
write(Fx,Narray[i]);
seek(Fx,i);
end;

end;
  close(Fx);
end;       

как-то так, файл уже существует и в нем 10 чисел
Ответить с цитированием
  #4  
Старый 28.09.2015, 09:32
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

все честно работает:

Код:
type
  TFileRec = packed record
    id: Integer;
    note: string[11];
  end;
var
  f: file of TFileRec;
  r: TFileRec;
begin
  (* создаем файл и запишем в него 2 записи *)
  AssignFile(f, 'Project1.txt');
  Rewrite(f);
  r.id:=1;
  r.note:='hello';
  Write(f, r);
  r.id:=2;
  r.note:='world';
  Write(f, r);
  CloseFile(f);
  (* прочитаем их в Memo1 *)
  AssignFile(f, 'Project1.txt');
  Reset(f);
  while not Eof(f) do
  begin
    Read(f, r);
    Memo1.Lines.Add(IntToStr(r.id)+string(r.note));
  end;
  CloseFile(f);
  (* добавим в конец еще 2 записи *)
  AssignFile(f, 'Project1.txt');
  Reset(f);
  Seek(f, FileSize(f));
  r.id:=3;
  r.note:='привет';
  Write(f, r);
  r.id:=4;
  r.note:='мир';
  Write(f, r);
  CloseFile(f);
  (* прочитаем их в Memo2 *)
  AssignFile(f, 'Project1.txt');
  Reset(f);
  while not Eof(f) do
  begin
    Read(f, r);
    Memo2.Lines.Add(IntToStr(r.id)+string(r.note));
  end;
  CloseFile(f);
end;
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 22:10.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter