Главная страница
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.077 c
2-1177530314
Aibolit
2007-04-25 23:45
2007.05.20
как вычесть две даты и получить разницу в днях


15-1176981166
Nija
2007-04-19 15:12
2007.05.20
СРОЧНО НУЖНА ПОМОЩЬ


2-1178108463
Neket
2007-05-02 16:21
2007.05.20
Програмно установить ActiveSheet


15-1176898096
Ega23
2007-04-18 16:08
2007.05.20
Поясните, как правильно пользоваться CPU-window?


2-1177893967
Qwerter
2007-04-30 04:46
2007.05.20
Фильтрация данных