Autor |
Beitrag |
Jakob_Ullmann
      
Beiträge: 1747
Erhaltene Danke: 15
Win 7, *Ubuntu GNU/Linux*
*Anjuta* (C, C++, Python), Geany (Vala), Lazarus (Pascal), Eclipse (Java)
|
Verfasst: Sa 11.08.07 18:23
Hallo,
gibt es im SynEdit die Möglichkeit, das Zeilenumbruchformat von Windows z.B. auf Unix oder Macintosh umzustellen oder muss ich das manuell machen? Wie heißen die Befehle für Unix und Mac - bei Windoofs (  ) heißt das ja #10#13 bzw. #13#10, oder? Wäre für z.B. Windows dieser Code OK bzw. funktioniert der auch bei anderen Systemen (Zeilenumbruchformaten)?
Delphi-Quelltext 1: 2: 3:
| for i := 0 to MyChild.SynEdit1.Lines.Count do nwtxt := MyChild.SynEdit1.Lines[i] + #10#13; MyChild.SynEdit1.Text := nwtxt; |
|
|
Jakob_Ullmann 
      
Beiträge: 1747
Erhaltene Danke: 15
Win 7, *Ubuntu GNU/Linux*
*Anjuta* (C, C++, Python), Geany (Vala), Lazarus (Pascal), Eclipse (Java)
|
Verfasst: Mi 03.10.07 09:23
Schiebepostings sind doch nach 24h erlaubt, oder? Außerdem würde ich gerne eine Antwort bekommen, da mich brennend interessiert, wie man das macht (für meinen HTML Builder fehlt sowas noch und ich habe keine Ahnung, wie das bei Mac aussieht). 
|
|
jaenicke
      
Beiträge: 19312
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Mi 03.10.07 10:49
So wie du es jetzt machst, sollte es gehen. Ich weiß nicht, ob es in SynEdit die Möglichkeit zur Auswahl des Formates gibt, vermute aber ja. Da ich das nicht weiss, sage ich etwas zu einer alternativen Lösung, die du mal ausprobieren könntest.
Wenn du auf Text zugreifst, dann erhälst du alle Zeilen inklusive Zeilenumbruchzeichen, d.h., wenn du es manuell ersetzen willst, dann ist die Eigenschaft Text ja direkt die richtige: Delphi-Quelltext 1:
| SynMemo1.Text := StringReplace(SynMemo1.Text, #10#13, #13#10, [rfReplaceAll]); | Ich weiß allerdings nicht, ob SynEdit mit den veränderten Zeilenumbruchszeichen einfach so klarkommt.
|
|
Jakob_Ullmann 
      
Beiträge: 1747
Erhaltene Danke: 15
Win 7, *Ubuntu GNU/Linux*
*Anjuta* (C, C++, Python), Geany (Vala), Lazarus (Pascal), Eclipse (Java)
|
Verfasst: So 07.10.07 11:46
Hallo,
nach ein bisschen Spielerei habe ich gesehen, dass SynEdit das #13 als Rechteck darstellt. Standardmäßig nimmt SynEdit ja #10 als Zeilenumbruch (Unix?). Das stört dann bei der Anzeige. Ich denke, das erzeugt auch eine gewisse Inkompatiblität zwischen Windows Notepad und SynEdit. Am Liebsten wäre es ja, wenn jemand antworten könnte, der sowas schon mal gemacht hat. Danke schonmal.
|
|
jaenicke
      
Beiträge: 19312
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: So 07.10.07 17:52
Linux (bzw. Unix) ist das. Da hast du nur #10, also Zeilenvorschub. Unter Windows Wagenrücklauf UND Zeilenvorschub (#13#10) und beim Mac nur den Wagenrücklauf (#13)  .
Und da sonst niemand antwortet probier ich halt selbst mal aus was SynEdit da kann und macht...
(Ich habe für eines meiner Projekte schonmal die Konvertierungen aus und zu DOS, Unicode, etc. gemacht gehabt, kann mich aber nicht mehr daran erinnern  ).
// EDIT:
Also ich hab jetzt 1 oder 2 Minuten oder so gebraucht um die Eigenschaft SynMemo1.Lines.LineBreak zu finden, die ja wohl das sein dürfte, was du suchst...
// EDIT2:
Die Eigenschaft scheint sich nur auf die Eigenschaft Text auszuwirken, nicht aber auf eine mit SaveToFile gespeicherte Datei, d.h. zum Speichern und laden muss wohl .Text verwendet werden. Mal sehen ob ich ne bessere Lösung finde... 
|
|
Jakob_Ullmann 
      
Beiträge: 1747
Erhaltene Danke: 15
Win 7, *Ubuntu GNU/Linux*
*Anjuta* (C, C++, Python), Geany (Vala), Lazarus (Pascal), Eclipse (Java)
|
Verfasst: So 07.10.07 19:03
Sorry, aber bei mir gibt's irgendwie keinLineBreak, weder bei SynEdit, noch bei SynMemo (D5). Oder wurde dann TStrings irgendwie anders definiert? 
|
|
|