AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Suche TMemo für gemischte Zeilenumbrüche (DOS, UNIX, Mac)
Thema durchsuchen
Ansicht
Themen-Optionen

Suche TMemo für gemischte Zeilenumbrüche (DOS, UNIX, Mac)

Ein Thema von anse · begonnen am 25. Feb 2009 · letzter Beitrag vom 25. Feb 2009
Antwort Antwort
Benutzerbild von anse
anse

Registriert seit: 30. Okt 2006
Ort: Neuenkirchen
194 Beiträge
 
Delphi 11 Alexandria
 
#1

Suche TMemo für gemischte Zeilenumbrüche (DOS, UNIX, Mac)

  Alt 25. Feb 2009, 19:50
Das Standard TMemo und auch Fremdkomponenten können eigentlich immer nur mit den Windows-Zeilenumbrüchen umgehen, also #13#10 . Ich möchte gern einen Mini-Text-Editor so umbauen daß das enthaltene TMemo auch Unix- und Mac-Umbrüche (#10 bzw. #13) nicht als Font-Kästchen sondern als Umbrüche darstellt. Dabei will ich vermeiden daß bei einem Misch-Inhalt am Ende alles einfach zu Windows-Umbrüchen konvertiert wird, weil das zwar sehr einfach wäre aber eine Art Datenverlust bedeuten würde und es Fälle gibt bei denen das unerwünscht ist.

Die meisten Quelltext-Editoren beherrschen den oben gemeinten "Misch-Inhalt". Also muß das doch irgendwie hinzukriegen sein? Mir fällt bloß nichts ein.

Was ich probiert habe ist
memoText.Lines.LineBreak := #10; um zumindest mal einen reinen Unix-Text richtig darzustellen, aber nicht mal das funktioniert.
Ansgar Becker
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke
Online

Registriert seit: 10. Jun 2003
Ort: Berlin
9.353 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Suche TMemo für gemischte Zeilenumbrüche (DOS, UNIX, Mac

  Alt 25. Feb 2009, 20:16
Zitat von anse:
Die meisten Quelltext-Editoren beherrschen den oben gemeinten "Misch-Inhalt". Also muß das doch irgendwie hinzukriegen sein? Mir fällt bloß nichts ein.
Ich benutze meistens TSynEdit, das kann das AFAIK und zudem auch Syntaxhervorhebung und einiges mehr.

Ansonsten: Was spricht gegen eine Erkennung des Umbruchs, Umwandlung in das Standardwindowsformat und vor dem Speichern eine Rückumwandlung?

Ich biete z.B. ohnehin bei mir im Speicherndialog verschiedene Formate an.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

Re: Suche TMemo für gemischte Zeilenumbrüche (DOS, UNIX, Mac

  Alt 25. Feb 2009, 20:31
also D4/D7 verstehen beides ... wandeln es aber intern in die Windowsversion (#13#10) um.

bei D2009 weiß ich es jetzt nicht, da es intern anders arbeitet und ich keine Datei zum Testen zu Hand hab.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von anse
anse

Registriert seit: 30. Okt 2006
Ort: Neuenkirchen
194 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: Suche TMemo für gemischte Zeilenumbrüche (DOS, UNIX, Mac

  Alt 25. Feb 2009, 20:39
Zitat von jaenicke:
Ich benutze meistens TSynEdit, das kann das AFAIK und zudem auch Syntaxhervorhebung und einiges mehr.
TSynEdit wandelt intern alle unterschiedlichen Umbrüche in Windows-Linefeeds um bevor es den Text anzeigt. Ist also nicht ganz das was ich mir erhoffte zu finden.

Zitat von jaenicke:
Was spricht gegen eine Erkennung des Umbruchs, Umwandlung in das Standardwindowsformat und vor dem Speichern eine Rückumwandlung?
Eine Rückumwandlung funktioniert nur solange keine gemischten Umbrüche vorkommen.

Bin aber mittlerweile auch schon fast der Meinung daß man das mit einer Option beim Speichern - wie du vorschlägst - löst.
Ansgar Becker
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

Re: Suche TMemo für gemischte Zeilenumbrüche (DOS, UNIX, Mac

  Alt 25. Feb 2009, 20:45
Fänd es eh eigenartig, wenn innerhalb einer Datei mehrere Arten von Zeilenumbrüchen gleichzeitig coexistieren würden.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von anse
anse

Registriert seit: 30. Okt 2006
Ort: Neuenkirchen
194 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: Suche TMemo für gemischte Zeilenumbrüche (DOS, UNIX, Mac

  Alt 25. Feb 2009, 20:53
Klar ist das eigenartig, aber strenggenommen nicht unmöglich. Wahrscheinlich ist wohl daß eine Vereinheitlichung des Linefeed Styles in fast allen Fällen etwas gutes ist, Datenverlust hin und her.

Werde wohl den Weg gehen:
* Linefeed style feststellen
* Alles in Windows Linefeeds umwandeln
* Beim Speichern wieder in den festgestellten Linefeed umwandeln, evtl. sogar mit einer Combobox-Option
Ansgar Becker
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke
Online

Registriert seit: 10. Jun 2003
Ort: Berlin
9.353 Beiträge
 
Delphi 11 Alexandria
 
#7

Re: Suche TMemo für gemischte Zeilenumbrüche (DOS, UNIX, Mac

  Alt 25. Feb 2009, 20:57
Dann ist die Datei fehlerhaft, wenn die dann fehlerhaft angezeigt und dann evtl. mit einheitlichen Umbrüchen gespeichert würde, dann ist das finde ich kein falsches Verhalten.

Ich habe das so gelöst beim Einlesen:
Delphi-Quellcode:
function GetFileContentsAsString(uFilename: String;
  var uFileFormat: T...FileFormat; var uCharSet: T...CharacterSet): String;

  function DetectUnicode(var uSize: Integer; var uBigEndian: Boolean): Boolean;
  ...
  function DetectUTF8(uText: String): Boolean;
  ...
  function DetectAnsi(uText: String): Boolean;
  ...
  function DetectAscii(uText: String): Boolean;
  ...

  function DetectFileFormat(uText: String): TScribaFileFormat;
  begin
    if Pos(#13#10, uText) > 0 then
      Result := ffPC
    else if Pos(#10, uText) > 0 then
      Result := ffUnix
    else if Pos(#13, uText) > 0 then
      Result := ffMac
    else
      Result := ffPC;
  end;
...
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:22 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz