Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > String в Integer


Автор: RA 3.6.2002, 18:11
Как преобразовать цифровое значение Stringa в Integer?

Автор: neutrino 3.6.2002, 18:16
В паскале:
Код

var
 s: string;
 i: integer;
begin
 val(s,i);
 writeln(i);
end.

В делфи:
Код

var
 s:string
 i:integer;
begin
 i:=StrToInt(s);
 Label1.Caption=IntToStr(i); // :)
end.



Автор: 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... в которых все эти нюансы учитываются?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)