Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.04.2012, 13:14   #1
RainMEN2009
 
Регистрация: 25.03.2012
Сообщений: 5
Радость Memo найти слово и проверять символы стоящие справа

Привет Всем!
Есть такая проблема, толи я чёт совсем не понимаю, толи процедура сложна =)
Суть вопроса такова есть допустим текст хранящися в Tmemo

Настройка протокола IP для Windows

Имя компьютера . . . . . . . . . : Игорь-ПК
Основной DNS-суффикс . . . . . . :
Тип узла. . . . . . . . . . . . . : Смешанный
IP-маршрутизация включена . . . . : Нет
WINS-прокси включен . . . . . . . : Нет

Адаптер PPP VPN-подключение:

DNS-суффикс подключения . . . . . :
Описание. . . . . . . . . . . . . : VPN-подключение
Физический адрес. . . . . . . . . :
DHCP включен. . . . . . . . . . . : Нет
Автонастройка включена. . . . . . : Да
IPv4-адрес. . . . . . . . . . . . : 81.9.91.241(Основной)
Маска подсети . . . . . . . . . . : 255.255.255.255
Основной шлюз . . . . . . . . . : 0.0.0.0
DNS-серверы. . . . . . . . . . . : 81.9.80.10
81.9.80.9
NetBios через TCP/IP. . . . . . . . : Включен

нужно искать допустим слово "Имя компьютера" и выводить допустим в label Игорь-ПК
либо искать "Адаптер PPP" и выводить VPN-подключение
Нашёл код как искать значения в Tmemo но как переделать для моих нужд так и не дошло.

Код:
var
  S : String;
  LenW,i, j : Integer;
begin
//Искомый текст, буквы которого преобразованы к заглавным.
  gText := AnsiUpperCase(Edit4.Text);

  LenW := Length(gText)+3;// здесь выделяем ещё три знака после символа
  if True then

  //Текст из Мемо с буквами, приведёнными к заглавному варианту
  S := AnsiUpperCase(Memo2.Text);
  if gPos = 0 then gPos := 1;
  gPos := PosEx(gText, S, gPos);
  if gPos > 0 then begin
    Memo2.SetFocus;
        //Выделяем найденный текст.
    Memo2.SelStart := gPos-1 ; 
    Memo2.SelLength := LenW; 
        //Прокручиваем текст в окне редактирования так,
    //чтобы выделенная часть стала видимой
    SendMessage(Memo1.Handle, EM_SCROLLCARET, 0, 0);
    memo3.Lines.text:=memo3.Lines.text + Memo2.SelText + #13#10; //пишим с переходом на строку вниз
  end;
    //Позицию для начала следующего поиска устанавливаем
  //непосредственно справа от текущего найденного шаблона.
  if gPos > 0 then gPos := gPos + LenW;
end;
RainMEN2009 вне форума Ответить с цитированием
Старый 01.04.2012, 17:54   #2
record222
Форумчанин
 
Регистрация: 23.09.2009
Сообщений: 127
По умолчанию

Код:
var
s:string;
i:integer;
begin
for i:= 0 to memo1.lines.count do
begin
s:=memo1.Lines[i];
delete(s, 1,   pos(':', memo1.Lines[i])+1);
memo2.Lines.Add(s);
end;
end;

Последний раз редактировалось record222; 01.04.2012 в 17:59.
record222 вне форума Ответить с цитированием
Старый 01.04.2012, 18:01   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
pos('К'
Неудачное решение.
Код:
s:=Memo.Lines.Text;
 i:=pos('Имя компьютера',s);delete(s,1,i);
 i:=pos(':',s);delete(s,1,i);
 i:=pos(#13#10,s);
Результат:=copy(s,1,i);
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 04.04.2012, 04:30   #4
RainMEN2009
 
Регистрация: 25.03.2012
Сообщений: 5
По умолчанию Найти все слова удовлетворяющие условию

Спасибо проблему решил вот так
Код:
function TForm1.ReedMemoToWrite(FindSlov, S: string; i:integer): string;
var   gpos, k :integer; // колличество отоброжаемых символов
Result_:string;  // переменная для обработки
begin
  gPos := Pos(FindSlov, Memo1.Text);
  if gPos > 0 then
  begin
    gPos := PosEx(S, Memo1.Text,gpos+1);
    Memo1.SetFocus;
    Memo1.SelStart := gPos+1 ;
    Memo1.SelLength := PosEx(#13, Memo1.Text,gpos+1)- Memo1.SelStart; //выдиляем текст до конца строки
    SendMessage(Memo1.Handle, EM_SCROLLCARET, 0, 0); // выделяем найденый текст
    Result_:=Trim(Memo1.SelText); // удаляем ненужные пробелы
    k:= Length(Result_)-i;   // выбираем сколько символов нужно отображать (все символы - ненужные слова типа "(Основной)=10, :=1")
    Result:=copy(Result_,1,k); // Копируем все символы от первого до К
  end;
  end;
Но не могу понять как, как можно производить поиск например всех значение Ethernet adapter

Код:

Ethernet adapter Подключение по локальной сети 3:

   Состояние среды. . . . . . . . : Среда передачи недоступна.
   DNS-суффикс подключения . . . . . : 
   Описание. . . . . . . . . . . . . : TeamViewer VPN Adapter
   Физический адрес. . . . . . . . . : 00-FF-C3-9C-15-2A
   DHCP включен. . . . . . . . . . . : Да
   Автонастройка включена. . . . . . : Да

Ethernet adapter LAN:

   DNS-суффикс подключения . . . . . : 
   Описание. . . . . . . . . . . . . : Broadcom NetXtreme Gigabit Ethernet
   Физический адрес. . . . . . . . . : 00-1D-72-D7-2C-4B
   DHCP включен. . . . . . . . . . . : Нет
   Автонастройка включена. . . . . . : Да
   Локальный IPv6-адрес канала . . . : fe80::92b:52ab:64f5:53d2%22(Основной) 
   IPv4-адрес. . . . . . . . . . . . : 10.222.7.51(Основной) 
   Маска подсети . . . . . . . . . . : 255.255.255.0
   Основной шлюз. . . . . . . . . : 10.222.7.1
   IAID DHCPv6 . . . . . . . . . . . : 587210098
   DUID клиента DHCPv6 . . . . . . . : 00-01-00-01-16-FD-14-C7-00-1D-72-D7-2C-4B
   DNS-серверы. . . . . . . . . . . : 81.9.80.10
                                       81.9.80.9
   NetBios через TCP/IP. . . . . . . . : Включен

Адаптер беспроводной локальной сети Беспроводное сетевое соединение:

   Состояние среды. . . . . . . . : Среда передачи недоступна.
   DNS-суффикс подключения . . . . . : 
   Описание. . . . . . . . . . . . . : Intel(R) WiFi Link 5100 ABG
   Физический адрес. . . . . . . . . : 00-21-5D-7B-71-30
   DHCP включен. . . . . . . . . . . : Да
   Автонастройка включена. . . . . . : Да

Ethernet adapter VirtualBox Host-Only Network:

   DNS-суффикс подключения . . . . . : 
   Описание. . . . . . . . . . . . . : VirtualBox Host-Only Ethernet Adapter
   Физический адрес. . . . . . . . . : 08-00-27-00-C0-3B
   DHCP включен. . . . . . . . . . . : Нет
   Автонастройка включена. . . . . . : Да
То есть в результате я должен получить
*Подключение по локальной сети 3
*LAN
*VirtualBox Host-Only Network
RainMEN2009 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
заменить элементы одномерного массива, стоящие перед минимальным - на нули, а стоящие после максимального - на единицы (Паскаль) Женька Good Помощь студентам 2 01.12.2011 06:22
Как сделать так, чтобы когда вводишь символы, текст двигался справа налево? gylayko Помощь студентам 7 03.11.2011 20:56
как сделать меню справа и чтоб можна было статью писать справа? HTML pufystyj HTML и CSS 7 26.02.2011 14:11
дано 16-ти битное слово, найти первый ноль справа Alisssa Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 3 08.11.2010 11:54