При написании программы вылез интерестный баг, объснить и побороть который не удалось. Вот код заполнения массива числовыми данными из текстового файла:
void __fastcall TTabSlideTransitionFrmBase::MassivCallory(){
String path = System::Ioutils::TPath::Combine
(System::Ioutils::TPath::GetSharedDocumentsPath(), "Calorinost_only_number.txt");
if (FileExists(path)) {
TStringList *list = new TStringList;
list->LoadFromFile(path);
for ( int i = 0; i < list->Count; i++ ) {
TStringDynArray arr(SplitString(list->Strings[i], ";"));
for (int u = 0; u < arr.Length; u++)
{
String t = arr[u];
if (t!="") {
Caloryy[i][u] = StrToFloat(t);
//Memo1->Lines->Add(t);
}
}
}
delete list;
}
}
При проверке на телефона (Smsung Grand Duos): если телефон с русским интерфесом - все собирается, стартует, и работает отлично. Достаточно выставить в настройках любой язык, отличный от русского - приложение даже не стартует - черный экран и вылет. Пути нормальные (проверял), в массиве данные нормальные, на экран выводятся, а в массив никак .
Проблема в строке заполнения массива - Caloryy = StrToFloat(t);. Достаточно ее закоментировать - приложение работает. Пробовал сохранить текстовый файл в разных места - ноль толку. Если передавать в массив число - опять же все работает ( к примеруCaloryy = StrToFloat("12.12");
Может кто подскажет - где я туплю? Заранее благодарен!
Вопрос
Gingercat
Доброго дня.
При написании программы вылез интерестный баг, объснить и побороть который не удалось. Вот код заполнения массива числовыми данными из текстового файла:
При проверке на телефона (Smsung Grand Duos): если телефон с русским интерфесом - все собирается, стартует, и работает отлично. Достаточно выставить в настройках любой язык, отличный от русского - приложение даже не стартует - черный экран и вылет. Пути нормальные (проверял), в массиве данные нормальные, на экран выводятся, а в массив никак .
Проблема в строке заполнения массива - Caloryy = StrToFloat(t);. Достаточно ее закоментировать - приложение работает. Пробовал сохранить текстовый файл в разных места - ноль толку. Если передавать в массив число - опять же все работает ( к примеруCaloryy = StrToFloat("12.12");
Может кто подскажет - где я туплю? Заранее благодарен!
Ссылка на комментарий
7 ответов на этот вопрос
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.