![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Объясните смысл ошибки. [D2005, 2000]
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]
Вот завтра и приходи) .. С кодом)