Welche Datenstruktur würdet ihr für einen Editor wählen?
-
Christoph schrieb:
Die Zeilen in einer Text-Datei sind oft unterschiedlich lang.
Nicht zu vergessen die unicode-Unterstützung.
-
witte schrieb:
Christoph schrieb:
Die Zeilen in einer Text-Datei sind oft unterschiedlich lang.
Nicht zu vergessen die unicode-Unterstützung.
Und eventuell den Umbruch am Fensterrand mit einer Schriftart nicht-fixer Breite.
-
asddd schrieb:
witte schrieb:
Christoph schrieb:
Die Zeilen in einer Text-Datei sind oft unterschiedlich lang.
Nicht zu vergessen die unicode-Unterstützung.
Und eventuell den Umbruch am Fensterrand mit einer Schriftart nicht-fixer Breite.
Das sollte in der Datenhaltung nicht interessieren. Das berücksichtigt man erst beim Zeichnen.
-
Moin,
von dem Thema verstehe ich nichts.
Aber ich glaube, hier ist etwas Interessantes zu lesen zu dem Thema.
http://dhaumann.blogspot.com/2010/02/kate-internals-text-bufferu.htmlDas ist einer der Kate-Entwickler (KDE-Texteditor); ist auf Englisch.
MfG
-
Tim schrieb:
asddd schrieb:
witte schrieb:
Christoph schrieb:
Die Zeilen in einer Text-Datei sind oft unterschiedlich lang.
Nicht zu vergessen die unicode-Unterstützung.
Und eventuell den Umbruch am Fensterrand mit einer Schriftart nicht-fixer Breite.
Das sollte in der Datenhaltung nicht interessieren. Das berücksichtigt man erst beim Zeichnen.Bezog sich aufs vertikale Scrollen.
-
zwutz schrieb:
ich kenne diese Technik bisher nur aus reinen Read-Only-Programmen.
Bei einem Editor dürfte es ungleich schwerer werden, da du ja nicht aus der Datei bei Bedarf nachladen kannst, sondern sowieso alles zwischenspeichern musst
Jeder von euch hat doch sicher schonmal vi probiert?
Da muß es so sein, denn es gab damals schlichtweg kaum Speicherplatz um den ganzen Text ins RAM zu laden.
-
websuche nach
+multicians +mepap
da steht auch was über Datenstukturen, redisplay Strategien etc. speziell für Emacs.
-
std::rope
-
std::rope scheint einige "Disadvantages" zu haben, über die man sich aber im Klaren sein sollte:
Single character replacements in a rope are expensive. A character update requires time roughly logarithmic in the length of the string. It is implemented as two substring operations followed by two concatenations.
MfG SideWinder
-
Hi,
WordStar hat damals mit zwei Stapelspeichern gearbeitet, zumindest im 3.0 noch als getrennte Dateien, die zum einen den Teil vom Beginn bis zum Kursor und die Andere den Teil vom Kursor bis zum Ende (invers gespeichert) enthielten. Beim durch die Datei gehen wird dann von dem einen Stapel genommen und auf den anderen gepackt. Beim Einfügen wird einfach auf dem Beginnstapel was dazugeschrieben.
Hex-Editoren funktionieren (meist) ein wneig anders, da bei ihnen kein Einfügen oder Löschen zwischendurch unterstützt wird, sondern nur die reine Manipulation einzelner Bytes, allenfalls noch Anfügeoperationen. Bei ihnen stellt das aktuve Fenster nur so etwas wie eine große Lupe dar, die über die Datei geschoben wird.
Sicher auch mal ansehenswert aus dem Buch Entwurfsmuster das Fliegengewicht. Dort ist vorgegeben, wie sich der Verfasser das Innere eines Texteditors vorstellt.
Gruß Mümmel