Autor Beitrag
F.Art
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 434



BeitragVerfasst: So 06.07.03 14:59 
Wie macht man es das er bis zu einem bestimmten Zeichen oder Zeichenfolge scannen läst um dies dann raus zu kopieren?


ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
function SearchAndSelect(Quelltext:TMemo; const Search: String): Boolean;
var
  FoundPos: Integer;
begin
  Result := False;
  if Length(Search) < 1 then
    Exit;
  FoundPos := Pos(Search, Quelltext.Text);
  if FoundPos < 1 then
    Exit;
  with Quelltext do
  begin
    SelStart := FoundPos +4;
    SelLength := Length(Search)+9;
    SetFocus;
  end;
  Result := True;
end;
Moritz M.
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 1672



BeitragVerfasst: So 06.07.03 15:53 
Auf was genau willst du hinaus?
F.Art Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 434



BeitragVerfasst: So 06.07.03 17:47 
ausblenden Quelltext
1:
a:link,a:active,a:visited { color : #006699; }					


Das er den Text 'active' such und von tive bis color alles makiert und woanders ins Delphi Projekt verwendet. Und die länge des zu selektierenden Textes ist immer unterschiedlich lang.
Wolff68
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 302
Erhaltene Danke: 1

WinXP home
D6 Prof
BeitragVerfasst: So 06.07.03 21:55 
Hier eine Routine, die alle Möglichkeiten des FindDialogs ausnützt.
(TFindDialog findest auf der Seite Dialoge)
Die Trennzeichen kann man auch noch erweitern, wenn man will.
Diese werden benötigt für die "Ganzes Wort"-Suche.

Aus folgendem Grund verwende ich hier nicht die Pos-Funktion.
Erstens kann man damit nicht rückwärts suchen, zweitens muß immer der String zerlegt werden.

Eventuelle Probleme: Wenn der Suchstring ganz am Anfang, oder Ende des Textes steht, und mit "Ganzes Wort" gesucht wird.


ausblenden volle Höhe Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
implementation

{$R *.dfm}

const Trennzeichen = [' ',',','.','!','?','"'];

procedure TForm1.Button1Click(Sender: TObject);
begin
  FindDialog1.Execute;
end;

procedure TForm1.FindDialog1Find(Sender: TObject);

  function Vergleiche(j: Integer): Boolean;
  var found : String;
  begin
    Found := Copy(Memo1.Text, j-1, Length(FindDialog1.FindText)+2);
    Result := false;
    IF frMatchCase in FindDialog1.Options then begin // Groß-Klein beachten
      IF Copy(Memo1.Text, j, Length(FindDialog1.FindText))
         = FindDialog1.FindText then Result := true;
    end
    else begin // Groß-Klein egal
      IF LowerCase(Copy(Memo1.Text, j, Length(FindDialog1.FindText)))
         = LowerCase(FindDialog1.FindText) then Result := true;
    end;

    { Nur ganze Wörter? Dann vorher und nachher Trennzeichen abfragen}
    IF (Result = true) AND (frWholeWord in FindDialog1.Options) then begin
      Result := (Memo1.Text[j-1in Trennzeichen)
                AND
                (Memo1.Text[j+Length(FindDialog1.FindText)] in Trennzeichen);
    end;
  end;

var
  i : Integer;
begin
  IF frDown in FindDialog1.Options then begin // Abwärts suchen
    For i := Memo1.SelStart+Memo1.SelLength to Length(Memo1.Text) do begin
      IF Vergleiche(i) then begin // Gefunden
        Memo1.SelStart  := i-1;
        Memo1.SelLength := Length(FindDialog1.FindText);
        Exit;
      end;
    end;
    ShowMessage('Text nicht gefunden!');
  end
  else begin // Aufwärts suchen
    For i := Memo1.SelStart downto 0 do begin
      IF Vergleiche(i) then begin // Gefunden
        Memo1.SelStart  := i-1;
        Memo1.SelLength := Length(FindDialog1.FindText);
        Exit;
      end;
    end;
    ShowMessage('Text nicht gefunden!');
  end;
end;


Sollte eigentlich sein, was Du suchst.

_________________
"Der Mensch ist nicht was er sich vorstellt oder wünscht zu sein, sondern das was andere in ihm sehen."