gygant
Junior Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору kotlomoy Перезапуск билдера\компьютера результата не дал. А вот Build all помогло cp58 akaGM спасибо за участие, кое-что новое для себя узнал Добавлено: Здравствуйте еще раз. В программе идет цикл по строкам файла и на каждую строку вызывается эта процедура. Но вот, в чем загвоздка - если в этой процедуре переменным user, site и bytes_received присваивается значение выдернутой SubStr, то программа отрабатывает нормально, а при application->terminate() выдает ошибку abnormal program termination. Если же мы засовываем в эти переменные заранее известные значения, то программа закрывается нормально. В чем может быть причина? Код: //пример строки: //--TCP----username-client---sitename-----80--------2138------32313 void NewProcedure(AnsiString TMLine, AnsiString &user, AnsiString &site, AnsiString &bytes_received) { if (TMLine.SubString(0,2)=="--") { int parts = 0; //куски информации в строке (7 штук) int k,j; bool part; AnsiString str_part; for(k=0;k<strlen(TMLine.c_str());k++) { if(TMLine.c_str()[k]!='-') { if (part==false) { part=true; j = k; while (TMLine.c_str()[j]!='-'&&j<strlen(TMLine.c_str())) { j++; }; str_part = TMLine.SubString(k,j-k+1); if (parts==1) user = str_part; if (parts==3) site = str_part; if (parts==6) bytes_received = str_part; /* if (parts==1) user = "kgh"; if (parts==3) site = "kljlkj"; if (parts==6) bytes_received = "12000"; */ parts++; }; } else //если == "-" { part = false; }; }; }; //if (TMLine.SubString(0,2)=="--") } | Добавлено: что любопытно - если передать в эту процедуру одну строку, то строка нормально обрабатывается и программа закрывается без ошибок. Где-то переполнение у меня происходит, похоже, какое-нибудь.. | Всего записей: 56 | Зарегистр. 03-06-2010 | Отправлено: 15:57 26-03-2012 | Исправлено: gygant, 16:02 26-03-2012 |
|