delphi copy函数熟悉的来看看

要切取IP的前三段如何写?比如:192.168.12.122或者192.16.1.12等等,不管什么IP的前三段比如上面的:192.168.12... 要切取IP的前三段如何写?比如:192.168.12.122或者192.16.1.12等等,不管什么IP的前三段比如上面的:192.168.12 展开
 我来答
TheFiend
2009-08-20 · TA获得超过625个赞
知道大有可为答主
回答量:1346
采纳率:0%
帮助的人:1210万
展开全部
根据你的要求首先找到最后一个. 是吧?所以我给你写两个函数
function RightPos(aChar:Char;str:string):Integer;
asm
push ecx
push ebx
mov ecx,dword ptr [edx - 4]
cmp ecx,0 //判断str的长度是不是0
je @@nFalse
@@nLoop:
mov bl,byte ptr [edx+ecx-1]
cmp al,bl
je @@nTrue
dec ecx
cmp ecx, 0
jne @@nLoop
@@nTrue:
mov eax,ecx
jmp @@nExit
@@nFalse:
mov eax,0
@@nExit:
pop ebx
pop ecx
end;

然后
procedure TForm1.btn1Click(Sender: TObject);
var
ip,s:string;
P:Integer;
begin
ip:='192.168.1.13';
p:=RightPos('.',ip);
if p=0 then //没有找到
Exit;
s:=Copy(ip,1,p-1);
ShowMessage(s); //192.168.1
end;
有问题可以继续问
jjm1227
2009-08-20 · TA获得超过462个赞
知道小有建树答主
回答量:463
采纳率:0%
帮助的人:374万
展开全部
procedure TForm1.Button1Click(Sender: TObject);
var
p:integer;

begin

edit1.Text :=stringreplace(edit1.Text ,'.','a',[rfignorecase]) ;
edit1.Text :=stringreplace(edit1.Text ,'.','b',[rfignorecase]) ;
edit1.Text :=stringreplace(edit1.Text ,'.','c',[rfignorecase]) ;

p:=pos('c',edit1.Text)+length('c');
edit1.Text :=copy(edit1.Text ,1,p-1);

edit1.Text :=stringreplace(edit1.Text ,'a','.',[rfignorecase]) ;
edit1.Text :=stringreplace(edit1.Text ,'b','.',[rfignorecase]) ;
edit1.Text :=stringreplace(edit1.Text ,'c','.',[rfignorecase]) ;

end;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
MyPrettyLife
2009-08-20 · TA获得超过588个赞
知道小有建树答主
回答量:550
采纳率:0%
帮助的人:769万
展开全部
procedure TForm1.FormClick(Sender: TObject);

function GetStr(sIP: String): String;
var i: Integer;
begin
for i := Length(sIP) downto 1 do
if sIP[i] = '.' then break;
GetStr := Copy(sIP, 1, i - 1);
end;

begin
ShowMessage(GetStr('192.168.12.122'));
end;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式