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

Вниз

и в чем ошибка   Найти похожие ветки 

 
>>DEATH<<   (2007-05-05 10:28) [0]

var
 filetext, l1, l2, l3:Tstringlist;
...
procedure sep;
var
 i:integer;
begin
 for i:=0 to filetext.Count-1 do begin
   if filetext[i][1]="&#163;" then
     l1.Add(filetext[i])
   else if filetext[i][1]="$" then
     l2.Add(filetext[i])
  else if filetext[i][1]="%" then
    l3.Add(filetext[i]);
 end;
end;

как я понял чтото с циклом если подставить вместо i цифру все работает,, а так выдает "access Violation at address 00461b2a in module "project1.exe". Read address 00000000."


 
Джо ©   (2007-05-05 10:33) [1]

Если filetext[i] содержит пустую строку, то при обращении к ее [1] символу и выйдет AV Read address 00000000.


 
McSimm ©   (2007-05-05 10:33) [2]

Или filetext не создан, тогда AV - обращение к свойству несозданного объекта
или filetext[i] - пустая строка, тогда AV- обращение к [1] символу


 
>>DEATH<<   (2007-05-05 10:37) [3]

filetext создона и не пуста,,допустим если прописать
showmessage(filetext[1][1]); все нормально


 
McSimm ©   (2007-05-05 10:39) [4]


> и не пуста

Все его строки?

В цикле проход по всем строкам, одна из них возможно пустая.


 
McSimm ©   (2007-05-05 10:40) [5]

и, конечно, все остальные листы тоже должны быть созданы


 
McSimm ©   (2007-05-05 10:44) [6]

Если включить телепатор, то пуста последняя строка :)
Как я понял, они читаются из файла, это обычно так и бывает.


 
>>DEATH<<   (2007-05-05 10:50) [7]

все листы точно созданы несколько раз проверял думал в этом ошибка,,

при тесте все строки не пустые,,но в дальнейшем могут быть и пустыми как это исправить


 
McSimm ©   (2007-05-05 11:00) [8]


> при тесте все строки не пустые

Если файл заканчивается переводом строки, то последняя строка в файле - пустая.

Когда вы обращаетесь к N-му символу строки, необходимо сначала убедится, что строка имеет длину минимум N.

В вашем примере в начале цикла можно проверить строку на нулевую длину и сделать continue


 
Vasiliy   (2007-05-05 11:29) [9]

так помоему будет лучше
if Pos("&#163;", filetext[i]) = 1 then

Иначе если filetext[i] = "" будет выскакивать ошибка


 
>>DEATH<<   (2007-05-05 12:15) [10]

вообщем понятно,,спасибо!!!!



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

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

Наверх




Память: 0.48 MB
Время: 0.06 c
2-1178053453
Riply
2007-05-02 01:04
2007.05.20
Время вызова колбэка FileIOCompletionRoutine


2-1178205311
Человек
2007-05-03 19:15
2007.05.20
Поиск


3-1172654705
Vlad Oshin
2007-02-28 12:25
2007.05.20
Очищается сетка DBgrida при ADOquery из другой формы.


15-1176806589
икс-игрик-й
2007-04-17 14:43
2007.05.20
Помогите решить задачки по физике(кто решит отблагодарю)


3-1172729445
NikNet
2007-03-01 09:10
2007.05.20
Авто - нумерация строк в Селекте, Возможно ли такое