Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2007.05.20;
Скачать: [xml.tar.bz2];

Вниз

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

 
>>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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.055 c
2-1177790801
dzhagr
2007-04-29 00:06
2007.05.20
Ошибка SQL


15-1176975282
Knight
2007-04-19 13:34
2007.05.20
Белая маршрутизация...


15-1177344906
vasIZmax
2007-04-23 20:15
2007.05.20
Паттерны проектирования


15-1177046995
NewUser2
2007-04-20 09:29
2007.05.20
PHP


2-1177932260
Ламер 2.Х
2007-04-30 15:24
2007.05.20
CheckBox





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский