Hirdetés
- Apple MacBook
- Milyen TV-t vegyek?
- Hobby elektronika
- Vezetékes FEJhallgatók
- Projektor topic
- Kisebb "atomreaktort" avatott a Minisforum
- Itt a Valve GŐZGÉP — Steam Machine, mi vagy te? 🧐
- Multimédiás / PC-s hangfalszettek (2.0, 2.1, 5.1)
- AMD Ryzen 9 / 7 / 5 9***(X) "Zen 5" (AM5)
- Nem indul és mi a baja a gépemnek topik
-
PROHARDVER!

Új hozzászólás Aktív témák
-
Rover623
félisten
Ha parázol hogy lebux, használd ezt:
{ez a rutin a
Str szövegben megadott számot a
Base számrendszer (max. 16-os) szerint megpróbalja számmá alakitani.
Ha a string érvénytelen karaktert is tartalmaz, akkor Code = -1 és a visszaadott érték a hibát okozó karakter poziciója }
Const
_Nums : Array [0..16] Of Char = '0123456789ABCDEF'#0;
Function StrToNum (Str: PChar; Base : Word; Var Code: Integer): LongInt;
Var
I : Word; {mindenfélére...pl. ciklusváltozónak is jó lesz}
Mul, {az aktuális szorzó}
Work : LongInt; {ebben gyűlik a végeredmény}
Pozicio : PChar;
Begin
Code := 0; {legyünk optimisták...nincs hiba}
Work := 0; {0-ról indul az eredmény}
I := StrLen (Str); {milyen hosszú a szöveg?}
If (I > 0) Then Begin
{ha legalább egy karakter van a szövegben, akkor hajrá!}
Mul := 1; {a híres-neves nulladik hatvány}
StrUpper (Str); {nagybetűsítünk}
Dec(I); {merthogy a PChar 0-tól indexelődik}
For I := I Downto 0 Do Begin {végigmászunk a karaktereken}
Pozicio := StrScan (_Nums, Str [ i ] ); {beazonosítjuk a bütüt}
If (Pozicio = Nil) Then Begin
{ha nincs az engedélyezett karakterek között, akkor hiba van!}
Code := - 1;
StrToNum := I;
Exit; {hibával kilépünk}
End;{if}
{$IFOPT Q+}
{$DEFINE OVER}
{$Q-}
{$ENDIF}
Inc (Work, Mul * (Pozicio - _Nums) );{megnöveljük az eredményt}
Mul := Mul * Base;{ hatványozunk :) }
{$IFDEF OVER}
{$Q+}
{$UNDEF OVER}
{$ENDIF}
End; { For }
End; {ha volt valami a Str-ben}
StrToNum := Work;{nyilvánossá tesszük a végeredményt}
End; { StrToNum }
{a leggyakoribb függények, az általános rutint hívják meg}
Function HexaVal (HexaString: PChar; Var Code: Integer): LongInt;
Begin
HexaVal := StrToNum (HexaString, 16, Code);
End; { HexaVal }
Function BinaryVal (BinaryString: PChar; Var Code: Integer): LongInt;
Begin
BinaryVal := StrToNum (BinaryString, 2, Code);
End; { BinaryVal }
Function DecimalVal (DecimalString: PChar; Var Code: Integer): LongInt;
Begin
DecimalVal := StrToNum (DecimalString, 10, Code);
End; { DecimalVal }
Mivel rengeteg programozó van a világon, nem állítom hogy más nem oldotta meg hasonlóképpen, de vmivel kisebb az esélye...
[Szerkesztve]
Új hozzászólás Aktív témák
● olvasd el a téma összefoglalót!
- Apple MacBook
- Megérkezett Magyarországra a Poco F8 Pro is
- Facebook és Messenger
- Napelem
- bb0t: Ikea PAX gardrób és a pokol logisztikája – egy Ikea-horror igaz története
- Kuponkunyeráló
- Milyen TV-t vegyek?
- Hobby elektronika
- Vezetékes FEJhallgatók
- Feketelista, avagy a rossz boltok topicja
- További aktív témák...
- Hordozható napelem 10 Watt / 12 hó jótállás
- Macbook Pro 2019 Laptop A2141 i9
- ÚJ akku! Lenovo ThinkPad X1 Extreme Gen2 i7-9850H 16GB 512GB GTX1650 500nit UHD 1 év teljeskörű gar.
- BESZÁMÍTÁS! ASUS H510M i5 11400F 16GB DDR4 512GB SSD RTX 2060 Super 8GB Zalman T4 Plus CM 500W
- Keresek Zebra TC20 TC21 vagy valamilyen hasonló kaliberű 1D és 2D vonalkódok olvasására alkalmas pda
Állásajánlatok
Cég: ATW Internet Kft.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest



