![]() |
Re: IPs aufteilen
Danke Schöööööön :dancer2:
|
Re: IPs aufteilen
Ich hab' nochmal ne Frage :D
Wollte dazu keinen neuen Thread aufmachen, weils relativ kleines Prob ist: Ich habe 2 IP Adresse im Binären String; durch eine AND-Operation ergibt sich daraus eine neue (binäre) IP-Adresse. Beide Adressen sind jeweils nur 32bit groß und trotzdem schmiert mir jedes mal das Programm ab ('111111111110100101010101010usw.. ist kein gültiger Integerwert'). Ich hab bereits schon INT64 versucht, bringt leider nichts :? Hiermal n kleiner Ausschnitt ausm Quelltext (inzwischen so oft umgeändert..):
Code:
Jmd. ne Idee? :angel2:
function Netzadresse (IP_adresse_bin, Netzmaske_bin : string) : string;
var Netz1,Netz3,Netz4 : int64; Netzadresse_2 : string; begin Netz1:=0; //<-- auch sehr lustig: Nach der Anweisung hat die Var immer noch einen Wert von -48546453 Netz1:=StrToInt(IP_adresse_bin); //<-- ab hier der Abbruch Netz3:=StrToInt(Netzmaske_bin); Netz4:=Netz1 and Netz3; Netzadresse_2:=IntToStr(Netz4); ShowMessage('Netzadresse: ' + Netz2); Netzadresse:=Netzadresse_2 end; |
Re: IPs aufteilen
Hi.
Du kannst nur Strings, die eine Zahl im Dezimalsystem beinhalten nach integer konvertieren. ;-) |
Re: IPs aufteilen
Und nun? :wiejetzt:
Gibts ne Möglichkeit, diesen Umstand zu umgehen? Irgend nen Trick? ;) |
Re: IPs aufteilen
Hi.
So müsste es gehen: (ungetestet)
Delphi-Quellcode:
Konvertiere die Zahlen einfach mit BinStrToInt(i) statt StrToInt(i) ;-)
function BinStrToInt(str : string) : integer;
var i : integer; begin result := 0; for i := 1 to Length(str) do result := result + ( (Ord(str[i]) - Ord('0')) * Power(2, Length(str) - i) ); end; |
Re: IPs aufteilen
Kleine Anmerkung am Rande: die Funktion kann weiterhelfen, wenn man weiß wie
Delphi-Quellcode:
Ein String aus dem Array kann man auch an Explode übergeben :mrgreen:
var ip, temp TStringDynArray;
suffix: string; begin temp:= Explode('/',Adresse); suffix:= temp[1]; ip:= Explode('.',temp[0]); //Ip[0] bis ip[3] => die vier Blöcke //suffix => der Teil nach dem Schrägstrich |
Re: IPs aufteilen
Danke danke - aber als was definierst du die Funktion "Power"? :angel:
//e: Thx Phistev, aber so kompiliziert wollt ichs nicht machen *g* |
Re: IPs aufteilen
Hi.
Huppsala... :oops:
Delphi-Quellcode:
fehlte noch... :oops:
uses {...}, Math, {...};
|
Re: IPs aufteilen
narf, Inkompatible Typen: Integer und Extended :?
Und eine Funktion á la IntToExt hab ich leider auch nicht gefunden :cry: Trotzdem danke nochma ;) |
Re: IPs aufteilen
Nun, da in diesem Fall sicher ein Integer rauskommt, kann man das Ergebnis von Power ganz einfach mit
![]() ![]() Greetz alcaeus |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:58 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz