![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
и в чем ошибка
>>DEATH<< © (2007-05-05 10:28:00)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]='£' 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."
>>DEATH<< (2007-05-05 12:15:00) [1]вообщем понятно,,спасибо!!!!
Vasiliy (2007-05-05 11:29:00) [2]так помоему будет лучше
if Pos('£', filetext[i]) = 1 then
Иначе если filetext[i] = '' будет выскакивать ошибка
McSimm (2007-05-05 11:00:00) [3]
> при тесте все строки не пустые
Если файл заканчивается переводом строки, то последняя строка в файле - пустая.
Когда вы обращаетесь к N-му символу строки, необходимо сначала убедится, что строка имеет длину минимум N.
В вашем примере в начале цикла можно проверить строку на нулевую длину и сделать continue
>>DEATH<< (2007-05-05 10:50:00) [4]все листы точно созданы несколько раз проверял думал в этом ошибка,,
при тесте все строки не пустые,,но в дальнейшем могут быть и пустыми как это исправить
McSimm (2007-05-05 10:44:00) [5]Если включить телепатор, то пуста последняя строка :)
Как я понял, они читаются из файла, это обычно так и бывает.
McSimm (2007-05-05 10:40:00) [6]и, конечно, все остальные листы тоже должны быть созданы
McSimm (2007-05-05 10:39:00) [7]
> и не пуста
Все его строки?
В цикле проход по всем строкам, одна из них возможно пустая.
>>DEATH<< (2007-05-05 10:37:00) [8]filetext создона и не пуста,,допустим если прописать
showmessage(filetext[1][1]); все нормально
Джо (2007-05-05 10:33:00) [9]Если filetext[i] содержит пустую строку, то при обращении к ее [1] символу и выйдет AV Read address 00000000.
McSimm (2007-05-05 10:33:00) [10]Или filetext не создан, тогда AV - обращение к свойству несозданного объекта
или filetext[i] - пустая строка, тогда AV- обращение к [1] символу