Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.063 Beiträge
 
Delphi 12 Athens
 
#174

AW: Träume, Wünsche und Wahnvorstellungen...

  Alt 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 (MSDN-Library durchsuchenEM_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)
  Mit Zitat antworten Zitat