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
展开
3个回答
展开全部
根据你的要求首先找到最后一个. 是吧?所以我给你写两个函数
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;
有问题可以继续问
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;
有问题可以继续问
展开全部
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;
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;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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;
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;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询