УкраїнськаEnglishmRussian
Вход/Новый
В теме много сообщений

[BugWrong] Работа со строками


Автор Сообщение
Сообщение создано: 08. 09. 2011 [16:32]
TY_Obninsk
Илья Клемышев
Создатель темы
Зарегистрирован(а) с: 14.01.2011
Сообщения: 63
Пишу функцию для перевода числа из десятичной системы в 16-ричную...столкнулся с совершенно непонятным поведением программы, пишу в "Вычислителе на java подобном языке":

функция имеет входной параметр "in" и выходной "out",

если написать
out += "S";
то программа стабильно выводит 10 символов "S".

если задать начальное значение
out = "Rez = ";
out += "S";

то программа выведет "Rez = S".

функция out.insert (0, "S"); не дает никакого результата....
Сообщение создано: 08. 09. 2011 [16:47]
roman
Roman Savochenko
Moderator
Contributor
Developer
Зарегистрирован(а) с: 12.12.2007
Сообщения: 3742
"TY_Obninsk" wrote:

out += "S";
то программа стабильно выводит 10 символов "S".

Естественно. При каждом вызове добавляется "S".

"TY_Obninsk" wrote:

out = "Rez = ";
out += "S";

то программа выведет "Rez = S".

Правильно!

"TY_Obninsk" wrote:

функция out.insert (0, "S"); не дает никакого результата....

А так: out = out.insert (0, "S");

Разбирайтесь!

Не ошибка!

Learn, learn and learn better than work, work and work.
Сообщение создано: 09. 09. 2011 [07:10]
TY_Obninsk
Илья Клемышев
Создатель темы
Зарегистрирован(а) с: 14.01.2011
Сообщения: 63
Вы ломаете все мое неокрепшее программистское мировоззрение :lol:
буду разбираться)
Сообщение создано: 09. 09. 2011 [09:45]
TY_Obninsk
Илья Клемышев
Создатель темы
Зарегистрирован(а) с: 14.01.2011
Сообщения: 63
Со всем вышеобозначенным разобрался, однако теперь столкнулся со следующей проблемой:

из созданной мной функции библиотеки "Вычислителя..." я не могу корректно вызвать функцию из соседней библиотеки, пишу скажем

cmdLRC = SYS.DAQ.JavaLikeCalc.servProc.lrc16(cmd);

в ответ всегда получаю 0, хотя сама функция lrc16 работает корректно. Аналогично с встроенной функцией crc16.

Я так понимаю, что неправильно вызываю функцию?
Сообщение создано: 09. 09. 2011 [10:15]
roman
Roman Savochenko
Moderator
Contributor
Developer
Зарегистрирован(а) с: 12.12.2007
Сообщения: 3742
"TY_Obninsk" wrote:

Я так понимаю, что неправильно вызываю функцию?

Правильно понимаете.

Learn, learn and learn better than work, work and work.
Сообщение создано: 09. 09. 2011 [12:20]
almaz
Almaz Karimov
Contributor
Зарегистрирован(а) с: 25.09.2008
Сообщения: 516
cmdLRC=DAQ.JavaLikeCalc.lib_servProc.lrc16(cmd);

21 век - век повсеместной автоматизации. Главное - во благо всем людям.
Сообщение создано: 09. 09. 2011 [12:38]
TY_Obninsk
Илья Клемышев
Создатель темы
Зарегистрирован(а) с: 14.01.2011
Сообщения: 63
Спасибо, Алмаз! Сто раз перечитываю,исправляю и не замечаю некоторых деталей...чуть не поседел :)
Сообщение создано: 09. 09. 2011 [15:15]
TY_Obninsk
Илья Клемышев
Создатель темы
Зарегистрирован(а) с: 14.01.2011
Сообщения: 63
пробую использовать функцию строки string replace(string substr, string str); - результат 0, функция string replace(int pos, int n, string str); работает нормально...Первый вариант функции еще существует или проблема в другом?
Сообщение создано: 09. 09. 2011 [15:29]
roman
Roman Savochenko
Moderator
Contributor
Developer
Зарегистрирован(а) с: 12.12.2007
Сообщения: 3742
"TY_Obninsk" wrote:

пробую использовать функцию строки string replace(string substr, string str); - результат 0, функция string replace(int pos, int n, string str); работает нормально...Первый вариант функции еще существует или проблема в другом?

Это всё тестировалось и у меня работает!

Learn, learn and learn better than work, work and work.
Сообщение создано: 09. 09. 2011 [15:55]
TY_Obninsk
Илья Клемышев
Создатель темы
Зарегистрирован(а) с: 14.01.2011
Сообщения: 63
Обновился - заработало!



16176