Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi 4 Werte einer IP in 4 variablen (https://www.delphipraxis.net/8114-4-werte-einer-ip-4-variablen.html)

Pseudemys Nelsoni 29. Aug 2003 00:16


4 Werte einer IP in 4 variablen
 
hoi,

ich wollte meine IP in 4 variablen bekommen, also jeden nummerischen wert der durch einen punkt getrennt ist, weiss jemand wie ich das anstellen kann? sollte so sein:

255.255.255.255

var1.var2.var3.var4

Luckie 29. Aug 2003 00:54

Re: 4 Werte einer IP in 4 variablen
 
ExplodeExplode Und hier: http://www.luckie-online.de/files/demos/ gibnt es ein Demo dazu, heißt auch explode.

Aber habe ich dir das nicht schon mal geantwortet? :gruebel:

Pseudemys Nelsoni 29. Aug 2003 01:18

Re: 4 Werte einer IP in 4 variablen
 
hallo luckie, ja sowas ähnliche hatte ich schonmal gefragt, nur hab ich da gedacht das du meinst das in den delphi demos das mit explode bei ist.
ich habs mir mal runtergeladen, ist es wirklich notwendig für die kleine sache soviel code? :shock:

gibt es keine andere möglichkeit? in mIRC gibt es "tokenize", das ist schön, da wird jedes wort in eine eigene variable geschrieben.

hat delphi selbst keine function die das tut?

Luckie 29. Aug 2003 03:15

Re: 4 Werte einer IP in 4 variablen
 
Nein. Delphi stellt so was nicht bereit. Natütlich könntest du auch mit pos, copy und delete arbeite.

Tpercon 29. Aug 2003 08:08

Re: 4 Werte einer IP in 4 variablen
 
Hier mal ne Funktion zum Teilen von Text:
Delphi-Quellcode:
procedure TCheckCompObject.SplitString(Str: string; Separator: Char; var ts: TStringList);
begin
  try
    ts.Clear;
    while AnsiPos(Separator, Str) > 0 do begin
      ts.Add(trim(Copy(Str, 1, AnsiPos(Separator, Str) - 1)));
      Str := Copy(Str, AnsiPos(Separator, Str) + 1, Length(Str));
    end;
    ts.Add(trim(Str));
  except
//
    end;
  end;
end;
Du mußt ne StringList übergeben und darin stehen dann die einzelnen Teile. Dann prüfst du, ob da 4 Werte enthalten sind und schon schon hast du die 4 Werte.

Chewie 29. Aug 2003 08:16

Re: 4 Werte einer IP in 4 variablen
 
Du kannst auch auf die Socket-Funktion inet_addr zurückgreifen. Diese wandelt einen IP-String in einen LongWord um. Dort kannst du mit den Byte-Shift-Operatoren die einzelnen Bytes isolieren.

BungeeBug 29. Aug 2003 09:22

Re: 4 Werte einer IP in 4 variablen
 
Hi,
du kannst auch im INet diverse "GetToken" Funktionen finden. Mit denen du die IP sehr komfortabel zerstückelen kannst.

Delphi-Quellcode:
function GetToken(aString, SepChar: String; TokenNum: Byte):String;
{
parameters: aString : the complete string
            SepChar : a single character used as separator
                      between the substrings
            TokenNum: the number of the substring you want
result   : the substring or an empty string if the are less then
            'TokenNum' substrings
}
var
   Token    : String;
   StrLen   : Byte;
   TNum     : Byte;
   TEnd     : Byte;

begin
     StrLen := Length(aString);
     TNum  := 1;
     TEnd  := StrLen;
     while ((TNum <= TokenNum) and (TEnd <> 0)) do
     begin
          TEnd := Pos(SepChar,aString);
          if TEnd <> 0 then
          begin
               Token := Copy(aString,1,TEnd-1);
               Delete(aString,1,TEnd);
               Inc(TNum);
          end
          else
          begin
               Token := aString;
          end;
     end;
     if TNum >= TokenNum then
     begin
          GetToken1 := Token;
     end
     else
     begin
          GetToken1 := '';
     end;
end;
Quelle

Pseudemys Nelsoni 29. Aug 2003 14:03

Re: 4 Werte einer IP in 4 variablen
 
danke :)


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:50 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz