ERangeError with message \"
char* File;
AnsiString Encode(AnsiString OpenText, AnsiString Key);
// -----CUT-----
AnsiString Encode(AnsiString OpenText, AnsiString Key)
{
// Почему-то программа спотыкается на этой строчке с сообщением ERangeError with message "
// Может, есть другой способ узнать количество символов в строке?
if(strlen(Key.c_str())<strlen(OpenText.c_str())){
...
}
}
// -----CUT-----
// Button OnClick
FilePtr=FileOpen(feOpen->FileName, fmOpenRead);
FileSize=FileSeek(FilePtr,0,2);
FileSeek(FilePtr,0,0);
File=new char[FileSize+1];
FileRead(FilePtr,File,FileSize);
Encode(File, edKey->Text);
Почему?
в отладчике проверял чему равны переменные непосредственно перед сравнением? ну это так - на будущее... потому что переменные у тебя типа AnsiString а в самом этом классе есть функция Length(), которая как раз длину строки и возвращает...
А как смотреть значения переменных в отладчике?
в опциях компилера должно стоять Full Debug, а не Release - это главное, потом нужно поставить точку прерывания - для этого кликни мышой по полоске слева от текстового окна напротив строки, на которой хочешь остановиться - появится красный круглик. теперь запускаешь - после того как алгоритм дойдет до этой строки прога остановится и покажет окно билдера, где на этом красном круглике стоит еще и зеленая стрелка (красиво, да? )теперь щелкаещь правой кнопкой мыши по переменной, которую хотишь поглядеть и выбираешь в контекстном меню пункт Debug->Evaluate\Modify. там три поля - верхнее имя переменной, второе значение, третье - новой значение, если вдруг захочешь изменить... в первое поле переменную можно и руками забить, причем любую из текущей области видимости...