Delphi это почти счастье :))))
От: Аноним  
Дата: 21.12.03 21:22
Оценка:
Вот почему:
например есть функция

function funcstr(string s):integer;
Есть две переменные:

ii:integer;
ff:float;


Их надо конвертировать в число затем передать функции funcstr.
на delphi
придется писать


funcstr(IntToStr(ii));
funcstr(FloatToStr(ff));
Если охота форматирования есть другие функции;


на С же:

char str[??] // ?? обычно 100 — привычное "наверное хватит" со времен С

itoa(ii,str,10);
funcstr(str);

int decimal, sign;
char *buffer;
buffer = _ecvt(ff, 10, &decimal, &sign );
strcpy(str,buffer);
funcstr(str);





Или обратное преобразование:

StrToInt
StrToFloat
В случае ошибки кинут исключение EConvertError


в С
atoi
strtod

в С++
еще хуже

в знакомых мне библиотеках: MFC,STL..
во ВСЕХ классах со строками нет таких преобразований!
в MFC CSting есть функция с неопрделенныч числом параметров format -зачем делать разбор строки формата и неявные преобразования т.к ф-я с неопределенным числом параметров?

Решение половинчатое и преобразование только в дну сторону.Допустим CString->double как???

Решения основанные на потоках хоть переносимые но медленные.
С какой стати надо использовать поток если я хочу всего навсего преобразовать строку в число?


Не надо делать временные переменные типа str,str1...для того чтобы результат преобразования передать функции,
если ошибка — возбуждается исключение. Не надо проверять на ошибку возвращаемое значение.
Главное — они всегда есть в любом компиляторе дельфи сразу! Не надо искать какие то половинчатые решения для таких элементарны вещей а можно максимально сконцентрироваться на задаче, не создавать переменных которых не должно быть по логике вещей.



22.12.03 13:31: Перенесено модератором из 'Средства разработки' — ПК
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.