IP 取值问题,帮忙看下哦

ilyxc 2012-04-17 09:34:36
IP:=‘192.168.1.120’
IP:=‘192.168.001.120’

上面2种情况

我怎么才能取到后两位呢,考虑
...全文
130 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
mhhaifeng 2012-04-18
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 的回复:]

Delphi(Pascal) code
{用TstringList吧}

const IP='192.168.001.120';
var
slist:Tstringlist;
begin
slist:=Tstringlist.Create;
try
slist.Delimiter='.';
slist.DelimitedText:=IP;
showmessa……
[/Quote]

就用这个
if length(slist.Strings[3])=1 then
slist.Strings[3]:='0'+slist.Strings[3];
ilyxc 2012-04-18
  • 打赏
  • 举报
回复
我自己想的办法是这样的大家看下 有更好的办法没

前面的那个如果IP 为192.168.1.1 取后2位的话 结果为 .1 下面是我自己写的 如果最后只有1位的时候补0

m := pos('.', ip);
equip := copy(ip, m + 1, length(ip));
n := pos('.', equip);
equip := copy(equip, n + 1, length(equip));
p := pos('.', equip);
equip := copy(equip, p + 1, length(equip));
equip := copy(equip, length(equip) - 1, length(equip));
if length(equip) = 1 then
equip := '0' + equip;
kaikai_kk 2012-04-18
  • 打赏
  • 举报
回复
{用TstringList吧}

const IP='192.168.001.120';
var
slist:Tstringlist;
begin
slist:=Tstringlist.Create;
try
slist.Delimiter='.';
slist.DelimitedText:=IP;
showmessage(slist.Strings[0]); {192}
showmessage(slist.Strings[1]); {168}
showmessage(slist.Strings[2]); {001}
showmessage(slist.Strings[3]); {120}
finally
slist.Free;
end;
end;
learning8899 2012-04-17
  • 打赏
  • 举报
回复
用copy函数就可以吧?
我看见佛 2012-04-17
  • 打赏
  • 举报
回复
copy(para1,para2,para3);//三个参数的意思分别是:原字符串,开始截取的位置,截取位数。所以只需相应调整第二个和第三个参数的数值即可。
ilyxc 2012-04-17
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

取的结果是20?
copy(ip,length(ip)-1,length(ip));//手头没有DELPHI,你可以试试
[/Quote]
谢谢,这样做是可以的 但是 如果 取的不是后2位 而是 取的中间的呢?
我看见佛 2012-04-17
  • 打赏
  • 举报
回复
或copy(ip,length(ip)-1,2);//手头没有DELPHI,自己调一下。
我看见佛 2012-04-17
  • 打赏
  • 举报
回复
取的结果是20?
copy(ip,length(ip)-1,length(ip));//手头没有DELPHI,你可以试试

16,742

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 语言基础/算法/系统设计
社区管理员
  • 语言基础/算法/系统设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧