![]() |
Obtener tres primeras partes de una ip
¡Buenas!, hace tiempo me acerqué por aquí con una pregunta similar, cómo obtener el último trozo (de 192.168.1.25, obtener 25) ahora he creado esta función, pero no me funciona, pues me devuelve lo que sería 192. de 192.168.1.25 en vez de, como quiero, 192.168.1.
Gracias simplemente, por el tíempo empleado en leer esto. |
function TresTrozos(Ip:string):string;
var posicion,i:integer; direccion:string; begin direccion := ip; for i:=1 to 3 do begin posicion := Pos('.', Direccion); <- El problema esta aqui. Encuentra siempre la primera ocurrencia de '.', con lo que al final desecha todo menos la primera parte de la direccion If I = 3 Then begin Delete(Direccion, posicion, Length(Direccion)); Result := Direccion; end; end; end; Prueba con esto repeat siguiente:=Pos('.',Direccion); if siguiente<>0 then begin Trozo := copy(parametros,1,siguiente-1); Direccion := Copy(Direccion, Siguiente +1, Length(Direccion) -Siguiente); end else Trozo := copy(Direccion,1,length(Direccion)); Until (siguiente=0); Result := Trozo; En cada una de las iteraciones del bucle tendras las partes de la IP. Puedes hacer con ellas lo que necesites. Un saludo |
Mira este otro
Este tambien funciona:
|
Un poco más corto, de nuevo con la función LastDelimiter:
Saludos! ;) |
La franja horaria es GMT +2. Ahora son las 21:26:52. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi