Как захватить текст заметки для редактирования Delphi

Я хотел бы захватить динамический 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)); 

2 ответа

Это Delphi 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;

Самый простой способ добиться этого - перебрать строки заметки и проверить, начинается ли она с "Gateway: 10.127".

Например:

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

Вы также можете использовать регулярные выражения для более конкретной обработки.

Другие вопросы по тегам