Я пытаюсь удалить каждый символ в начале моей строки, который не является альфа-символом.
Однако , когда в строке присутствуют только не-буквенные символы (например, "!!" или "?!?"), Это приводит к нарушению прав доступа!
Вот мой код:
// The Log(); is a routine that adds stuff to my log memo.
Log('Begin Parse');
while not IsLetter(ParsedName[1]) do
begin
Log('Checking Length - Length is '+IntToStr(Length(ParsedName))+' ...');
if Length(ParsedName) <> 0 then
Begin
Log('Deleting Char ...');
Delete(ParsedName,1,1);
Log('Deleted Char ...');
End;
Log('Checking Length - Length is now '+IntToStr(Length(ParsedName))+' ...');
end;
// It never reaches this point!
Log('End Parse');
Вот что выдает мой журнал:
21:51:19: Checking Length - Length is 2 ...
21:51:19: Deleting Char ...
21:51:19: Deleted Char ...
21:51:19: Checking Length - Length is now 1 ...
21:51:19: Checking Length - Length is 1 ...
21:51:19: Deleting Char ...
21:51:19: Deleted Char ...
21:51:19: Checking Length - Length is now 0 ...
21:51:19: Access violation at address 007A1C09 in module 'Project1.exe'. Read of address 00000000
Как видите, это происходит сразу после удаления всех символов. Я предполагаю, что проблема заключается в том, что каким-то образом я пытаюсь получить доступ к чему-то, чего нет, но как я делаю это, я не вижу.
РЕДАКТИРОВАТЬ: Да, я знаю, что это глупый вопрос и все такое - я просто что-то наблюдал. Не говори мне, что с тобой такого никогда не бывает;)