- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
function HexToInt(s: string): integer;
label
gte;
var
tempt: string;
i: integer;
begin
tempt := '';
if s = '' then
begin
HexToInt := 0;
goto gte;
end;
for i := 1 to Length(s) do
begin
tempt := tempt + IntToHex(Ord(s[i]), 2);
end;
HexToInt := StrToInt('$' + tempt);
gte:
end;
Я бы тоже так написал
yes, тарасик, накажи меня.
В прямом - да, работает. Запускается, что-то делает, что-то выдает.
В переносном - нет, не работает. Выдает полный бред.
фтопку костыли языка!
великолепно
Вообще у дельфи FAQ часто ущербные. Например, когда я искал алгоритм замены подстроки в строке, я надеялся найти что-то нормальное, с Кнутом-Моррисом-Праттом, например, но все время натыкался на решения, написанные на Дельфи в лоб. Ещё меня бесит их концепция "зато работает, и сразу, а ты оптимизатор хренов, будешь час умный алгоритм отлаживать".
Такой вайпер может превратить уютненький говнокодик в гнездо порока и развратаодин большой тред зла.
Отсюда вывод - всякая карма противоестественна. Капча 6681 не даст соврать.
Hu-hu-hu!
Do you dog it?
Только я тупанул немного, там надо 55 ставить. Тогда:
"a" - 55 = 65 - 55 = 10
При использовании арифм. операций char автоматически переводится в тип другого операнда (float/int). Точнее, char x - int y определена как x:int - y
"Ну ты лол" (с) народное
Уже нет.
выходят наружу
Объект удаляется... удаляется... вот его и совсем не видно.
i dog it
ху-ху-ху
you dog it
ху-ху-ху
dog is funny
dog it with me
will be even funnier
Уроки математики на govnokod.ru
function HexToInt(value: string): int
begin
result := StrToInt('$' + value);
end;
но на Дельфи уже не пишу давно. Да теперь, смотря на єнтот код действительно смешьно и стьідно :)
Вот, взято из SysUtils:
function StrToInt(const S: string): Integer;
var
E: Integer;
begin
Val(S, Result, E);
if E <> 0 then ConvertErrorFmt(@SInvalidInteger, [s]);
end;
функции Val как таковой в Delphi нет, Delphi само подставляет нужный вызов из System.pas исходя из типов переменных. Поискав в де-ЖУКЕРЕ находим что реально вызывается _ValLong, листинг смотри ниже:
function _ValLong(const s: String; var code: Integer): Longint;
var
I: Integer;
Negative, Hex: Boolean;
begin
I := 1;
code := -1;
Result := 0;
Negative := False;
Hex := False;
while (I <= Length(s)) and (s[i] = ' ') do Inc(I);
if I > Length(s) then Exit;
case s[i] of
'$',
'x',
'X': begin
Hex := True;
Inc(I);
end;
'0': begin
Hex := (Length(s) > I) and (UpCase(s[I+1]) = 'X');
if Hex then Inc(I,2);
end;
'-': begin
Negative := True;
Inc(I);
end;
'+': Inc(I);
end;
if Hex then
while I <= Length(s) do
begin
if Result > (High(Result) div 16) then
begin
code := I;
Exit;
end;
case s[i] of
'0'..'9': Result := Result * 16 + Ord(s[i]) - Ord('0');
'a'..'f': Result := Result * 16 + Ord(s[i]) - Ord('a') + 10;
'A'..'F': Result := Result * 16 + Ord(s[i]) - Ord('A') + 10;
else
code := I;
Exit;
end;
end
else
while I <= Length(s) do
begin
if Result > (High(Result) div 10) then
begin
code := I;
Exit;
end;
Result := Result * 10 + Ord(s[i]) - Ord('0');
Inc(I);
end;
if Negative then
Result := -Result;
code := 0;
end;
Ты действительно считаеш такой подход хорошим???
Так лучше?
броланд истратил тыщи макако-часов на то, чтобы сырцы RTL выглядели прилично
хайлайтер жжот, кстати
ROFL
особенность №1:
вызывает срачи в интернетах