Переменной TempInStr можно присваивать что угодно она бутет принимать значение "uster.log"
Помогите разобраться в чем косяк.. Всю голову уже сломал... Заранее спасибо!!!
Здравствуйте, akella-pro, Вы писали:
AP>Здравствуйте уважаемые! AP>Есть функция копирующая текст до символа->>>
AP>int CopyStrToKey(std::string& rStr, const char pCKey,std::string& rBuff) AP>{ AP> if(rStr.length()==0) AP> return 0; AP> unsigned int i;
AP> for(i=0;i<rStr.length();i++) AP> if(rStr.at(i)==pCKey) break;
AP> if(i==rStr.length()) return 0; AP> rBuff=rStr.substr(0,i); AP> return i; AP>}
AP>потом мы ее используем ->>>
AP>bool AnlzInStrMac(std::string& InStr) AP>{ AP> int count; AP> std::string TempStr,TempInStr; AP> TempInStr=InStr; AP> count=CopyStrToKey(TempInStr,';',TempStr); AP> TempInStr=любое присваивание AP>.................................. AP>}
AP>Переменной TempInStr можно присваивать что угодно она бутет принимать значение "uster.log" AP>Помогите разобраться в чем косяк.. Всю голову уже сломал... Заранее спасибо!!!
Это значение наблюдается в отладчике? Если это так, и речь о STL из VC7, то дело может быть в том, что string хранит короткие строки во внутреннем буфере (и тогда содержимое в отладчике отображается правильно), а длинные — во внешнем блоке, при этом отладчик, как правило, показывает то, что осталось во внутреннем буфере, т.е. ерунду.
Здравствуйте, akella-pro, Вы писали:
AP>Здравствуйте уважаемые! AP>Есть функция копирующая текст до символа->>>
AP>int CopyStrToKey(std::string& rStr, const char pCKey,std::string& rBuff) AP>{ AP> if(rStr.length()==0) AP> return 0; AP> unsigned int i;
AP> for(i=0;i<rStr.length();i++) AP> if(rStr.at(i)==pCKey) break;
AP> if(i==rStr.length()) return 0; AP> rBuff=rStr.substr(0,i); AP> return i; AP>}
вообще говоря у std::string есть метод find и rfind которые облегачют поиск
AP>потом мы ее используем ->>>
AP>bool AnlzInStrMac(std::string& InStr) AP>{ AP> int count; AP> std::string TempStr,TempInStr; AP> TempInStr=InStr; AP> count=CopyStrToKey(TempInStr,';',TempStr); AP> TempInStr=любое присваивание AP>.................................. AP>}
AP>Переменной TempInStr можно присваивать что угодно она бутет принимать значение "uster.log" AP>Помогите разобраться в чем косяк.. Всю голову уже сломал... Заранее спасибо!!!
хм у меня всё нормально отработало. Или ты не полный кусок привёл или чтото не то делаешь.
Подсказка не по теме: если используешь внутреннюю переменную unsigned int i, то наверно и возвращать нужно unsigned...
А по поводу кода — у меня заработало..
давай остальной
B>Это значение наблюдается в отладчике? Если это так, и речь о STL из VC7, то дело может быть в том, что string хранит короткие строки во внутреннем буфере (и тогда содержимое в отладчике отображается правильно), а длинные — во внешнем блоке, при этом отладчик, как правило, показывает то, что осталось во внутреннем буфере, т.е. ерунду.
Блин точно! Спасибо за подсказку.. Показывает всякую фигню в отладчике, а на cout вывел то что надо...
Здравствуйте, Kapone, Вы писали:
K>Здравствуйте, akella-pro, Вы писали:
K>Подсказка не по теме: если используешь внутреннюю переменную unsigned int i, то наверно и возвращать нужно unsigned... K>А по поводу кода — у меня заработало.. K>давай остальной
Эхх и у меня заработало...
Косяк в не полном знании предмета!
По поводу unsigned int Спа! Исправил!
T>>вообще говоря у std::string есть метод find и rfind которые облегачют поиск
AP>И за это спасибо.. в STL человек я новый и чего то по методам объектов как то инфы нигде не нарыть....
1. В MSDN — много инфы...
2. В Борлпндовском хелпе много инфы...
3. Здест на сайте есть рецензии не менее 7 книжек по STL, изданных на русском...
Лучшая — книжка Джосаттиса (Джосьютиса)...
Хочешь быть счастливым — будь им!
Без булдырабыз!!!