2016-08-23 3 views
-1

메모에 입력 된 동적 게이트웨이 IP를 텍스트 상자에 캡처하고 싶습니다. 와일드 카드를 사용하거나 "Gateway : 10.127. *. *"로 시작하는 게이트웨이의 전체 줄을 캡처하고 게이트웨이 IP를 텍스트 상자로 가져올 수 있습니다. 여기 편집 할 메모 텍스트를 캡처하는 방법

이미 캡처 된 메모 텍스트의 예는 다음과 같습니다

Description: Microsoft Hosted Network Virtual Adapter 
HW Address Length: 6 
HWAddress: E0:2A:82:F9:B2:3E 
Index: 32 
Type: 71 
CurrentIPAddress: 
IP Addresses: 192.168.48.1/255.255.255.0 
Gateway: 0.0.0.0/255.255.255.255 
Name: {22712B8F-5E3A-48D4-8C0D-771708BF0305} 
Description: HUAWEI Mobile Connect - Network Card 
HW Address Length: 6 
HWAddress: 0C:5B:8F:27:9A:64 
Index: 4 
Type: 243 
CurrentIPAddress: 
IP Addresses: 10.127.144.193/255.255.255.252 
Gateway: 10.127.144.194/255.255.255.255 

편집 :

I:= Pos('Gateway: 10.127.', Memo1.Text); 
if I > 0 then begin 
    L := SendMessage(Memo1.Handle, EM_LINEFROMCHAR, (intTostr(1)); 
    edit1.Text:=(intTostr(L)); 
+1

버전은 무엇? 최근 버전은 여기에서 도움이 될 수있는 정규식을 지원합니다. 이전 버전에서는 그렇지 않습니다. –

+0

델파이 7을 사용 중입니까 –

+0

이 중 어느 부분에 도전이 있습니까? 텍스트 처리를 위해 GUI 컨트롤을 사용하는 이유는 무엇입니까? 코드는 어떻게 생겼습니까? 우리가 당신을 위해 당신의 코드를 작성하기를 바랍니까? –

답변

1

Easist 방법은 메모의 라인을 통해 반복하고 있는지 확인하는 것입니다 이것을 달성하기 위해 (코멘트에서) 그것은 "Gateway : 10.127"로 시작합니다. 예를 들어

:

for LString in memo.Lines do 
    if AnsiStartsText('Gateway: 10.127.', LString) then 
    textbox.Caption := LString 

당신은 더 구체적인 처리를 위해뿐만 아니라 정규 표현식을 사용할 수 있습니다.

+0

호프만이이 메소드를 구현하지 못했습니다. –

+3

Delphi 7에는 for .. in 루프가 없으며 도움이 될 것이라고 제안 된 정규 표현식도 없습니다. for 루프와 함께 인덱스를 사용해야합니다. 비트 좋아해요 : for : memo.lines.count -1 할 do –

3

이것은 르네의 대답의 델파이 7 버전 : 델파이의

var 
    ii: integer 
begin 
    for ii := 0 to memo.lines.count -1 do begin 
    if pos('Gateway: 10.127.', memo.lines[ii]) > 0 then begin 
     textbox.caption := memo.lines[ii]; 
     break; 
    end; 
    end; 
end; 
+0

덕분에 많은 @Micheal Vicent 그것의 캡처를 잘 작동합니다. 게이트웨이를 제거하려면 어떻게해야합니까? 의 결과 '10.127.' –

+6

@ JkRobbin 어떻게 완료 될 것이라고 생각합니까? 이 문제를 해결하기위한 모든 희망을 정말로 포기 했습니까? 이것은 간단한 텍스트 처리입니다. 의견에 새로운 질문을하지 마십시오. 튜토리얼이나 텍스트 북 또는 문서를 찾아보십시오. 확실히 당신은 하위 문자열을 추출하고자하는 첫 번째 사람이 아닙니까? 너 스스로 해결할 수 없다고 확신 할 수 있니? 나는 가혹한 것처럼 들리지만, 당신은 단순히 열심히 노력하지 않고 있으며,이 사이트는 기본 작업을 수행하는 방법을 초보자에게 가르치기위한 것이 아닙니다. [도움말]을 방문하십시오. 우리는 앞으로 방문객에게 유용 할 Q & A 게시물을 작성하기 위해 왔습니다. –

+2

: 완전성을 위해서만 작성 및 캡처 한 텍스트에서 공백이나 기호를 신뢰할 수 없습니다! 100 %가 아니라 다음과 같습니다 :'if GETEWAY : 10.127. ', UpperCase (StringReplace (Memo1.lines [ii],' ',', [rfReplaceAll])))> 0 then'' –

관련 문제