findialog memo

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by Sin3v, 25 Mar 2009.

  1. Sin3v

    Sin3v Banned

    Joined:
    16 Jul 2008
    Messages:
    11
    Likes Received:
    95
    Reputations:
    9
    У меня в Memo1 текст
    Code:
    РОССИЯ
    Отправьте SMS сообщение
    с текстом 40956 пробел 1224002 на номер 3649
    Если SMS не отправляется на номер 3649, попробуйте отправить на 1171
    Я ищу финддиалогом '40956 пробел' находит и выделает, Мне нужно чтобы например в Label1 записало строку мемо содержащий это слово '40956 пробел'.
     
  2. spider-intruder

    spider-intruder Elder - Старейшина

    Joined:
    9 Dec 2005
    Messages:
    700
    Likes Received:
    339
    Reputations:
    37
    Покажи мне того человека который учил писать тебя ТЗ - я его лично задушу собственными руками. Из того что ты написал непонятно НИХРЕНА! Давай поновой!
     
  3. slesh

    slesh Elder - Старейшина

    Joined:
    5 Mar 2007
    Messages:
    2,702
    Likes Received:
    1,224
    Reputations:
    455
    стандартный пример из Delphi World + парочку строк отсебятины
    Code:
    var
     FSelPos: integer;
    
    
    procedure TForm1.Button1Click(Sender: TObject);
    begin
     FindDialog1.Execute;
    end;
    
    procedure TForm1.FindDialog1Find(Sender: TObject);
    var
     S:string;
     startpos:integer;
     line:integer;
     x:integer;
    begin
     with TFindDialog(Sender) do
      begin
       if FSelPos=0 then Options:=Options-[frFindNext];
       if frfindNext in Options then
        begin
         StartPos:=FSelPos+Length(Findtext);
         S:=Copy(Memo1.Lines.Text, StartPos, MaxInt);
        end
       else
        begin
         S:=Memo1.Lines.Text;
         StartPos:=1;
        end;
       FSelPos:=Pos(FindText, S);
       if FSelPos>0 then
        begin
         FSelPos:=FSelPos+StartPos-1;
         s:=memo1.Lines.Text;
         line:=1;
         for x:=1 to FSelPos-1 do if (s[x]=#13) and (s[x+1]=#10) then inc(line);
         label1.Caption:=inttostr(line)+': '+memo1.lines.Strings[line-1];
         Memo1.SelStart:=FSelPos-1;
         Memo1.SelLength:=Length(FindText);
         Memo1.SetFocus;
        end
       else
        begin
         if frfindNext in Options then S:=Concat('There are no further occurences of "', FindText,'" in Memo1.')
           else S:=Concat('Could not find "', FindText, '" in Memo1.');
         MessageDlg(S, mtError, [mbOK], 0);
        end;
      end;
    end;
    
    
     
    #3 slesh, 25 Mar 2009
    Last edited: 25 Mar 2009
    1 person likes this.
  4. Sin3v

    Sin3v Banned

    Joined:
    16 Jul 2008
    Messages:
    11
    Likes Received:
    95
    Reputations:
    9
    Чето я тупанул(
    можно сделать так, вот из текста:
    нашел '40956 пробел' и добавить последующие 8 символов?
    т.к. они генерируются и всегда разные показывают