Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2006.11.05;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.51 MB
Время: 0.041 c
2-1161096034
hom
2006-10-17 18:40
2006.11.05
вопрос по Excel


1-1159164853
Nastina
2006-09-25 10:14
2006.11.05
DblClick по загловку TStringGrid


15-1161180360
IMHO
2006-10-18 18:06
2006.11.05
Ну-ка, от винта!


15-1160590597
стьюдентЪ
2006-10-11 22:16
2006.11.05
Что вы делаете для души ?


4-1150887291
trubin
2006-06-21 14:54
2006.11.05
Здравствуйте, небольшой вопросик по ф-ии ловушки на клаву





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский