Вниз
Скачать: CL | DM;

EAccessViolation Error!!! :(   Найти похожие ветки 

 
antonioxxx   (2003-10-21 16:27) [0]

Здравствуйте господа знатоки! Помогите, пожалуйста, разобраться – почему при компиляции кода:
AssignFile(ComboFile,ODCF.FileName);
Reset(ComboFile);
While Not EOF(ComboFile) Do
Begin
Readln(ComboFile,s);
I:=1;
While S[I]<>":" Do
Begin
S_U[I]:=S[I];
I:=I+1;
End;
I_P:=I;
For I:=I_P+1 To Length(S) Do
S_P[I]:=S[I];
LB_U.Items.Add(S_U);
LB_P.Items.Add(S_P);
End;
CloseFile(ComboFile);
в строке « S_U[I]:=S[I]; » происходит критическая ситуация EAccessViolation?
Заранее благодарю!


 
Sandman25 ©   (2003-10-21 16:31) [1]

Потому что длина S_U меньше, чем надо. Вызовите SetLength(S_U, Length(S)) или что-то подобное.


 
Digitman ©   (2003-10-21 16:32) [2]

Именно при компиляции ? Не верю. Быть того не может !


 
Sandman25 ©   (2003-10-21 16:32) [3]

Еще вариант ошибки - если в S нет ":"


 
antonioxxx   (2003-10-21 22:32) [4]

>Digitman Я не совсем корректно выразился - безусловно при работе с уже откомпилированным проектом! Прошу прощения! :)

>Sandman25 Пробовал и, увы, не помогает - та же ошибка :(


 
default ©   (2003-10-21 23:17) [5]

у тебя же строка "S" не безгранична
ставь условие While (S[I]<>":") or (S[i] <> #0) Do


 
default ©   (2003-10-21 23:20) [6]

сорри...вот так попробуй While (S[I]<>":") and (S[i] <> #0) Do
и читай Sandman25 © (21.10.03 16:31) [1]


 
icWasya ©   (2003-10-22 09:30) [7]


...
Readln(ComboFile,s);
I:=Pos(":",S);
if I=0 then continue;
S_U:=Copy(S,1,I-1);
S_P:=Copy(S,I+1,MaxInt);

LB_U.Items.Add(S_U);
LB_P.Items.Add(S_P);
...


 
antonioxxx   (2003-10-22 19:14) [8]

Спасибо всем большое за помощь!



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

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.02 c
14-8585
mrddim
2003-10-15 15:05
2003.11.03
Delphi - Кто Это?


3-8276
Павел
2003-10-14 10:30
2003.11.03
QRMemo


1-8408
zedich
2003-10-22 14:55
2003.11.03
Книжка по Delphi 6


3-8288
mod
2003-10-11 15:47
2003.11.03
BDE


7-8705
OlegV
2003-08-25 15:18
2003.11.03
Копирование файлов




   Наверх