Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Объясните смысл ошибки. [D2005, 2000]


Страницы:   1 2

pkm ©   (2006-10-18 15:27:00) 

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


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


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


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


ЮЮ   (2006-10-19 08:47:00) [2]

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


Ketmar   (2006-10-19 08:44:00) [3]

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


Elen   (2006-10-19 08:43:00) [4]


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

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


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


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


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


Ketmar   (2006-10-19 08:41:00) [6]

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


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


> Если не ошибаюсь это получается переход в конец файла. Попробуй
> 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;


Elen   (2006-10-19 08:22:00) [8]


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

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


ЮЮ   (2006-10-19 08:02:00) [9]


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


> Seek(qwest,qwestCount - 1 );


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


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


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

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


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


MBo   (2006-10-19 07:43:00) [11]

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


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

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


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

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

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 по поводу потоков.


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

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


Shirson   (2006-10-18 18:39:00) [14]

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


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

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


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

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

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

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


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


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

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


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

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


Elen   (2006-10-18 16:11:00) [19]


> pkm

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


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


> pkm   (18.10.06 16:06) [3]


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


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо