Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.063 Beiträge
Delphi 12 Athens
|
AW: Träume, Wünsche und Wahnvorstellungen...
27. Jun 2011, 15:11
Wenn ich jetzt noch nicht weiß, was ich suche, dann lese ich mir also den Text aus, parse ihn
und dann nehme ich das Geparste und suche es über FindText nochmal, obwohl ich ja eigentlich schon weiß wo er liegt (welche allerdings nicht ganz stimmt) ?
Ja, es gibt gute Gründe, warum es z.B. keinen delphieigenen Syntaxhighlighter gibt, weil da nichts ordentlich funktioniert.
PS: FindText ( EM_FINDTEXT) gibt es nicht, weil Emba so blöde den Text verändert.
[add]
Ups, FindText findet ja doch nichts?
Code:
abc[#13#10]12345[#13#10]67890
abc[#13#10]12345[#13#10]67890[#13#10]
abc[#13#10]12345[#13#10]67890
45[#13#10]67
45[#13#10]67
-1
-1
7
abc[#13]12345[#13]67890
abc[#13#10]12345[#13#10]67890[#13#10]
abc[#13#10]12345[#13#10]67890
45[#13#10]67
45[#13#10]67
-1
-1
7
Delphi-Quellcode:
procedure TForm2.FormCreate(Sender: TObject);
var
S: String;
begin
S := 'abc' + sLineBreak + '12345' + sLineBreak + '67890';
Memo1.Lines.Add(StringReplace(S, #13#10, '[#13#10]', [rfReplaceAll]));
RichEdit1.Text := S;
S := RichEdit1.Lines.Text;
Memo1.Lines.Add(StringReplace(S, #13#10, '[#13#10]', [rfReplaceAll]));
S := RichEdit1.Text;
Memo1.Lines.Add(StringReplace(S, #13#10, '[#13#10]', [rfReplaceAll]));
S := Copy(RichEdit1.Lines.Text, 9, 6);
Memo1.Lines.Add(StringReplace(S, #13#10, '[#13#10]', [rfReplaceAll]));
S := Copy(RichEdit1.Text, 9, 6);
Memo1.Lines.Add(StringReplace(S, #13#10, '[#13#10]', [rfReplaceAll]));
S := Copy(RichEdit1.Text, 9, 6);
Memo1.Lines.Add(IntToStr(RichEdit1.FindText(S, 0, Length(RichEdit1.Text), [])));
S := '45' + sLineBreak + '67';
Memo1.Lines.Add(IntToStr(RichEdit1.FindText(S, 0, Length(RichEdit1.Text), [])));
S := '45'#13'67';
Memo1.Lines.Add(IntToStr(RichEdit1.FindText(S, 0, Length(RichEdit1.Text), [])));
Memo1.Lines.Add('');
S := 'abc'#13'12345'#13'67890';
Memo1.Lines.Add(StringReplace(S, #13, '[#13]', [rfReplaceAll]));
RichEdit1.Text := S;
S := RichEdit1.Lines.Text;
Memo1.Lines.Add(StringReplace(S, #13#10, '[#13#10]', [rfReplaceAll]));
S := RichEdit1.Text;
Memo1.Lines.Add(StringReplace(S, #13#10, '[#13#10]', [rfReplaceAll]));
S := Copy(RichEdit1.Lines.Text, 9, 6);
Memo1.Lines.Add(StringReplace(S, #13#10, '[#13#10]', [rfReplaceAll]));
S := Copy(RichEdit1.Text, 9, 6);
Memo1.Lines.Add(StringReplace(S, #13#10, '[#13#10]', [rfReplaceAll]));
S := Copy(RichEdit1.Text, 9, 6);
Memo1.Lines.Add(IntToStr(RichEdit1.FindText(S, 0, Length(RichEdit1.Text), [])));
S := '45' + sLineBreak + '67';
Memo1.Lines.Add(IntToStr(RichEdit1.FindText(S, 0, Length(RichEdit1.Text), [])));
S := '45'#13'67';
Memo1.Lines.Add(IntToStr(RichEdit1.FindText(S, 0, Length(RichEdit1.Text), [])));
end;
Entweder man ändert alle Schnittstellen oder läßt es,
denn so ist ja nix mehr Kompatibel zueinander.
Bzw., hätte man alles so gelassen ,wie es war, dann wäre jetzt .Text, .FindText, .SelStart, .SelLength und .SelText zwar mit #13, aber immerhin kompatibel zueinander,
wärend .Lines und vorallem .Lines.Text dennoch die #13#10 (sLineBreak) hätte.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
Geändert von himitsu (27. Jun 2011 um 15:44 Uhr)
|