![]() |
string manipulieren
Hallo
Ich möchte bei einer IP-Adresse die als String vorliegt den letzten Zahlenblock manipulieren, also aus z.B. 172.168.45.30 eine 172.168.45.33 machen. Diese Wertänderung soll über eine byte-Variable erfolgen. (Im oberen Beispiel hätte die Variable den Wert 3) Ich habe mit Pos bzw. StrPos gebastelt, aber leider :cry: kein vernünftiges Ergebnis erhalten. gruss, harald |
Re: string manipulieren
Hai acordo,
mal als Lösungsansatz: Du musst die Postition des dritten Punktes in dem String ermitteln. Dann alle Zeichen dahinter abschneiden oder alle zeichen von Position 1 bis zum dritten Punkt heraus kopieren. An diesen String musst Du dann nur noch deine Änderung anhängen. |
Re: string manipulieren
Hallo Sharky
Dein Lösungsansatz ist logisch klar ! Hier mein Versuch
Delphi-Quellcode:
Als Ergebnis bekomme ich bei IP=172.192.45.30 : 172.172.172.172
var s:array[0..3]of byte
ip:string; for i:=0 to 3 do begin a[i]:=StrToInt(copy(ip),0,pos('.',ip)-1)); delete(ip,0,pos('.',ip)); end; ip:=StrToInt(a[0])+'.'+StrToInt(a[1])+'.'+StrToInt(a[2])'.'+StrToInt(a[3]+WERT); |
Re: string manipulieren
|
Re: string manipulieren
:( PosEx gibt es leider bei Delphi4 noch nicht.
|
Re: string manipulieren
Hier mal eine quick an dirty Lösung:
Delphi-Quellcode:
Uff... was für ein Lösung :wall:
procedure TForm1.Button1Click(Sender: TObject);
var oldIP : String; newIP : String; ndx : Integer; punkte : Integer; begin oldIP := '192.168.1.23'; punkte := 0; for ndx := 1 to Length(oldIP) do begin if (oldIP[ndx] = '.') then begin INC (punkte); end; if (punkte = 3) then begin newIP := Copy (oldIP,1,ndx); break; end; end; Label1.Caption := newIP; / Die alte IP ohne das letzte Oktet. end;
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var oldIP : String; newIP : String; ndx : Integer; begin oldIP := '192.168.1.23'; punkte := 0; for ndx := Length(oldIP) downto 1 do begin if (oldIP[ndx] = '.') then begin newIP := Copy (oldIP,1,ndx); break; end; end; Label1.Caption := newIP; end; |
DP-Maintenance
Dieses Thema wurde von "Sharky" von "Sonstige Fragen zu Delphi" nach "Object-Pascal / Delphi-Language" verschoben.
Ist in dieser Sparte sicher besser aufgehoben :-) |
Re: string manipulieren
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo acordo,
und noch ein Lösungsansatz. Siehe anhängende Demo. bye Claus |
Re: string manipulieren
DANKE !!
Hier mein funktionierendes Endresultat :
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var oldIP : String; newIP : String; IPLast : String ndx : Integer; begin oldIP := '192.168.1.23'; for ndx := Length(oldIP) downto 1 do if (oldIP[ndx] = '.') then begin newIP := Copy (oldIP,1,ndx); IPLast:= Copy(oldIP,ndx+1,Length(oldIP)-ndx); break; end; Label1.Caption := newIP+(IntToStr(StrToInt(IPLast)+WERT)); end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:13 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