Вниз
Скачать: 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 вся ветка

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



Память: 0.47 MB
Время: 0.026 c
1-1174552782
Cooller
2007-03-22 11:39
2007.05.20
try finally end


15-1176907923
Delus
2007-04-18 18:52
2007.05.20
Анимация GIF ов


15-1177022591
rsacoder
2007-04-20 02:43
2007.05.20
Посоветуйте что-нибудь


3-1173159322
Atanas
2007-03-06 08:35
2007.05.20
Структура таблиц


9-1150619554
Ricks
2006-06-18 12:32
2007.05.20
Бильярд...




   Наверх