![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| RA |
|
|||
![]() Брутальный буратина ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3497 Регистрация: 31.3.2002 Где: Лес Репутация: 14 Всего: 115 |
Как преобразовать цифровое значение Stringa в Integer?
|
|||
|
||||
| neutrino |
|
||||
![]() Gothic soul ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 3041 Регистрация: 25.3.2002 Где: Верхняя Галилея, Кармиэль Репутация: нет Всего: 62 |
В паскале:
В делфи:
-------------------- The truth comes from within ... Покойся с миром, Vit |
||||
|
|||||
| Mikel |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 882 Регистрация: 30.3.2002 Где: Саратов Репутация: 1 Всего: 2 |
val(s,i,cod);
где cod-переменная типа integer, в неё пишется позиция неопределенного символа. Если cod<>0, то мы не смогли преобразовать строку. -------------------- ...so remember, it's better to burn out than to fade away |
|||
|
||||
| Vit |
|
|||
![]() Vitaly Nevzorov ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 10964 Регистрация: 25.3.2002 Где: Chicago Репутация: 48 Всего: 207 |
StrToIntDef(StringValue,DefaultValue);
Функция не вызывает ошибки при преобразовании неправильного числа. -------------------- With the best wishes, Vit I have done so much with so little for so long that I am now qualified to do anything with nothing Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru |
|||
|
||||
| Mikel |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 882 Регистрация: 30.3.2002 Где: Саратов Репутация: 1 Всего: 2 |
val тоже ошибок не вызывает.
-------------------- ...so remember, it's better to burn out than to fade away |
|||
|
||||
| Baa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2639 Регистрация: 12.4.2002 Где: Москва Репутация: нет Всего: 12 |
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; -------------------- "Duty is everything; the greatest of joys, the deepest of sorrows" Aribeth de Tylmarande |
|||
|
||||
| Vit |
|
|||
![]() Vitaly Nevzorov ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 10964 Регистрация: 25.3.2002 Где: Chicago Репутация: 48 Всего: 207 |
Baa, ну ты даешь по части изобретения велосипеда! Тут народ кучу стандартных способов привел, а ты вручную... Это конечно ничего, только не настолько корректно будет работать:
1. Нет обработки дробей 2. Нет обработки экспотенциальной записи (2.3E-2) 3. Нет обработки языковых стандартов Конечно все это реализовать не сложно, только надо ли, если привели 3 функции: StrToInt, Val, StrToIntDef... в которых все эти нюансы учитываются? -------------------- With the best wishes, Vit I have done so much with so little for so long that I am now qualified to do anything with nothing Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru |
|||
|
||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |