Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.11.05;
Скачать: CL | DM;

Вниз

Объясните смысл ошибки.   Найти похожие ветки 

 
pkm   (2006-10-18 15:27) [0]

Доброе время суток. Мне програ выдает такую ошибку при чтении информации из файла в переменную: Read beyond end of file. Спасибо за внимание.


 
Сергей М. ©   (2006-10-18 15:29) [1]


> Read beyond end of file


Попытка прочитать данные за пределами файла.


 
Elen ©   (2006-10-18 15:30) [2]


> pkm

Read beyond end of file - Чтение после конца файла. Хотелось бы код увидеть


 
pkm   (2006-10-18 16:06) [3]

Код я могу только завтра показать. а на словах если то я из типизированного файла хочу прочитать текущую запись.
read(tip_file,str1,str2,arr)
где:
str1,str2:string;
arr: array [1..20,1..255] of char;
Вот.


 
Сергей М. ©   (2006-10-18 16:07) [4]


> pkm   (18.10.06 16:06) [3]


Вот завтра и приходи) .. С кодом)


 
Elen ©   (2006-10-18 16:11) [5]


> pkm

Возможно ты не используеш Eof для определения конца файла.
а вот для этого str1,str2:string; стоило-б границы задать типа string[100], например. И вообще какого типа файл, ато по read(tip_file,str1,str2,arr) смутно тип представляется


 
palva ©   (2006-10-18 16:15) [6]

> я из типизированного файла хочу прочитать текущую запись
Читать можно только в переменные того типа, который фигурирует в типе файла. А у вас переменные разных типов, да еще и строки. Как можно из файла прочитать длинную строку? Что вы имели ввиду?


 
Плохиш ©   (2006-10-18 16:20) [7]


> pkm   (18.10.06 16:06) [3]
> Код я могу только завтра показать. а на словах если то я
> из типизированного файла хочу прочитать текущую запись.

Для начала не плохо бы литературу по работе с типизованными файлами прочитать, потому что в коде написана полная чушь.


 
Barloggg   (2006-10-18 16:44) [8]

да, сложность в том как именно строка записана.

типизованный файл прост для записи и загрузки если его правильно типизовать. в этом и сложность надо полагать. приведенный код неправилен в таком виде. хотя встроенный телепатор видит... впрочем он слишком много чего видит. подождем. :)

почему-то мне поточная структура кажется привлекательней... не знаю почему. но уже несколько лет только так и храню все в файлах...


 
pkm   (2006-10-18 17:34) [9]

Книгу я открыл, но там только на пол странички и не одного примера. Вот теперь и тыкаюсь.


 
Shirson ©   (2006-10-18 18:39) [10]

Полностью согласен с Barloggg по поводу потоков.


 
pkm   (2006-10-19 07:27) [11]

Всем привет.
Вот кодик принес на рассмотрение.

type
DB_qwest = packed record
var1: string[255];
var2: string[255];
var3: string[255];
ans:  string[1];
st: array [1..20,1..73] of char;
end;

var
 glav: Tglav;
 qwest: file of db_qwest;
 result,dbopen: boolean;
 qwestcount:word;
 fname: string;
 rec: db_qwest;  

//добавляю новую запись
 Seek(qwest,  qwestcount);
 rec.var1:=edit_a.Text;
 rec.var2:=edit_b.Text;
 rec.var3:=edit_v.Text;
 rec.ans:=Edit_ot.text;
 //из мемо переносим в массив
 for I := 0 to m_q.Lines.Count do
   begin
   st1:=m_q.Lines.Strings[i];
   for j := 1 to length(m_q.Lines.Strings[i]) do
    rec.st[i+1,j]:=st1[j];
   end;
 Write(qwest, Rec);             //добавляю запись
 qwestCount := FileSize(qwest);     // новое кол. записей
 Seek(qwest,qwestCount);
//до этого момента работает все отлично

// затем то, что я внес хочу отобразить на экране
 read(qwest,rec); // вот на этой строчке он мне выдает ошибку
 edit_a.Text:=rec.var1;
 edit_b.Text:=rec.var2;
 edit_V.Text:=rec.var3;


> Полностью согласен с Barloggg по поводу потоков.


А может кто даст сылку на потоки?

спасибо за внимание.


 
palva ©   (2006-10-19 07:34) [12]

Перед тем, как читать, надо сделать seek на начало или на ту запись, которая должна быть прочитана.


 
MBo ©   (2006-10-19 07:43) [13]

http://www.delphikingdom.ru/lyceum/seminar.asp?ID=2


 
pkm   (2006-10-19 07:47) [14]


> Перед тем, как читать, надо сделать seek на начало или на
> ту запись, которая должна быть прочитана.


У меня есть этот пункт.

> Seek(qwest,qwestCount);
> //до этого момента работает все отлично
> …


просто вместо кода где я
button.visible:=false // и так несколько раз
я поставил
...
Вот.


 
ЮЮ ©   (2006-10-19 08:02) [15]


> for I := 0 to m_q.Lines.Count - 1 do


> Seek(qwest,qwestCount - 1);


 
Elen ©   (2006-10-19 08:22) [16]


pkm *
>  qwestCount := FileSize(qwest);     // новое кол. записей
>  Seek(qwest,qwestCount);

Если не ошибаюсь это получается переход в конец файла. Попробуй seek(qwest,1)- это поставит тебя в начало;


 
pkm   (2006-10-19 08:37) [17]


> Если не ошибаюсь это получается переход в конец файла. Попробуй
> seek(qwest,1)- это поставит тебя в начало;


Я добавляю запись в конец файла и сразу хочу встать на эту запись.


> for I := 0 to m_q.Lines.Count - 1 do
>
>
> > Seek(qwest,qwestCount - 1);


после такого изменения у меня перестала выскакивать ошибка. Большущее спасибо.
Только у меня возникла другая проблема. Я не могу из массива перекинуть данные в мемо. Говорит, что я читаю адресс "00000000"

а код вот:
for I := 1 to 20 do
 begin
  for j := 1 to 73 do
   st1[j]:=rec.st[i,j];
  m_q.Lines.Add(trim(st1));
  st1:="";
 end;


 
Ketmar ©   (2006-10-19 08:41) [18]

что и логично. AnsiString, F1.


 
pkm   (2006-10-19 08:42) [19]


> что и логично. AnsiString, F1.


Переведи пожалуйста.


 
Elen ©   (2006-10-19 08:43) [20]


> pkm st1[j]:=rec.st[i,j];

Может лучше будет st1:=st1+rec.st[i,j];


 
Ketmar ©   (2006-10-19 08:44) [21]

>[19] pkm 19-Oct-2006, 08:42
>Переведи пожалуйста.
что неясно? где AnsiString набирать? в IDE. где F1 находится? слева и сверху, на клаве. плучишь раздел справки об анси-строках. читай. там всё написано.


 
ЮЮ ©   (2006-10-19 08:47) [22]

SetLength(st1, 73);
for j := 1 to 73 do
 st1[j]:=rec.st[i,j];


 
pkm   (2006-10-19 08:49) [23]


> Может лучше будет st1:=st1+rec.st[i,j];


Работает. Благодарю всех за помощь.
Правда, чует мое сердце, что я еще вернусь на форум.



Страницы: 1 вся ветка

Текущий архив: 2006.11.05;
Скачать: CL | DM;

Наверх




Память: 0.52 MB
Время: 0.071 c
2-1161316558
morda
2006-10-20 07:55
2006.11.05
ADO пароль на подключение


15-1160844416
Kolan
2006-10-14 20:46
2006.11.05
Использование объектов для простых типов. Стоит ли?


2-1161186419
Tab
2006-10-18 19:46
2006.11.05
Создание классов


2-1161588260
mike ilin
2006-10-23 11:24
2006.11.05
работа с компонентами


15-1160644674
DelphiLexx
2006-10-12 13:17
2006.11.05
ToolBar2000+TBX