| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Общие вопросы > String в Integer |
| Автор: RA 3.6.2002, 18:11 |
| Как преобразовать цифровое значение Stringa в Integer? |
| Автор: neutrino 3.6.2002, 18:16 | ||||
В паскале:
В делфи:
|
| Автор: Mikel 4.6.2002, 15:22 |
| val(s,i,cod); где cod-переменная типа integer, в неё пишется позиция неопределенного символа. Если cod<>0, то мы не смогли преобразовать строку. |
| Автор: Vit 6.6.2002, 18:04 |
| StrToIntDef(StringValue,DefaultValue); Функция не вызывает ошибки при преобразовании неправильного числа. |
| Автор: Mikel 7.6.2002, 12:04 |
| val тоже ошибок не вызывает. |
| Автор: Baa 7.6.2002, 22:13 |
| function atoi ( Str : string ) : Integer; var I, j : Byte; Temp : Integer; Sign : Byte; begin Temp := 0; I := 1; if Str[1] = '-' then Sign := 2 else Sign := 1; for j := Length ( Str ) downto Sign do begin Inc (Temp, (Ord ( Str[j] )-$30)*I); I := I * 10; end; if Sign = 2 then Temp := Temp * -1; Result := Temp; end; |
| Автор: Vit 7.6.2002, 22:31 |
| Baa, ну ты даешь по части изобретения велосипеда! Тут народ кучу стандартных способов привел, а ты вручную... Это конечно ничего, только не настолько корректно будет работать: 1. Нет обработки дробей 2. Нет обработки экспотенциальной записи (2.3E-2) 3. Нет обработки языковых стандартов Конечно все это реализовать не сложно, только надо ли, если привели 3 функции: StrToInt, Val, StrToIntDef... в которых все эти нюансы учитываются? |