Столкнулся с тем, что некоторые системы, например, SAP или 1C версии 7.7 выгружают числа типа 5555 в обычные текстовые файлы или в Эксель в виде строки "5 555", в которой в качестве разделителя используется не пробел, а символ с ASCII-кодом 160.
В результате, когда в Аксапте надо строку обратно преобразовать в число, приходится писать целые функции.
Есть ли какой-нибудь простой способ получить из строки "55 555,55" число в Аксапте 55555.55 ?
Я делаю так:
X++:
str normalizeNum(str _s)
{
int n;
str ret;
;
for (n = 1; n <= strLen(_s); n++)
{
if (char2num(_s, n) != 160)
ret += subStr(_s, n, 1);
}
return strrem(ret, " ");
}
;
strSum = strreplace("55 555,55", ",", ".");
strSum = normalizeNum(strSum);
realSum = str2num(strSum);