Re: Unkontrolliertes Einfuegen -> Omegafehler

Re: Unkontrolliertes Einfuegen -> Omegafehler tom_tom schrieb am 20.02.2008 15:01 Uhr :

Hallo,

Ich habe beim Bearbeiten eines  Rechenblattes folgendes Problem:

Ab einem vollkommen wilkuerlichen Zeitpunkt erscheint am Ende des Inhalts einer Zelle ein zusaetzlicher Buchstabe, den ich nicht loeschen kann. Wenn ich dann diese Zelle verlasse und wieder betrete (mit dem Cursor anklicke) fuegt sich automatisch der letzte ueber copy&paste kopierte Textbereich ein. Wenn ich die Cursorposition in dieser Zelle mehrmals veraendere wird bei jeder Cursorbewegung der exakt gleiche Inhalt wieder und wieder eingefuegt (dies passiert jedoch nur in der "infizierten" Zelle).

Hallo tom_tom,

Das ist ein Fehler in RagTime, der in dieser Liste schon mehrfach Thema war.
(Such mal nach Omega- Fehler.)
Wenn Du so ein kaputtes Dokument hast, laß Dir mal die Sonderzeichen anzeigen. (Apfel+J)
Du wirst sehen, daß hinter dem Omega, daß eigentlich das Textende markiert, weitere Zeichen kommen.
Diese Zeichnen sind für Dich nicht erreichbar und können weder ausgewählt, noch gelöscht werden.
Die Zeichen, die hinter dem Omega angezeigt werden, stammen bei mir meist aus dem Anfang eines Textes einer anderen Zelle.
Nach meiner Erfahrung stürzt RagTime bald ab, wenn Du mit einem derartig verwirrten Dokument weiterarbeitest.

RagTime hat die Ursache für den Fehler bislang nicht gefunden und bittet um ein Dokument, in dem diese Situation reproduzierbar hergestellt werden kann. (So eine Dokument habe ich bislang nicht; dafür aber mehrere Dokumente, in denen der Fehler reproduzierbar vorhanden ist)

Vermeiden kann man diesen Fehler nicht.

Nachstehend ein Auszug aus meiner email vom 25.09.2006:

Aus der Diskussion über das Verdichten von Dokumenten aus 2001 füge ich hier
mal ein Zitat von Jürgen Schell ein:

> Während der Arbeit dupliziert RagTime Objekte, an
> denen man gerade arbeitet. Das Original bleibt in dem Zustand
> erhalten, in dem die Datei zuletzt gesichert wurde. Solche
> Arbeitsduplikate werden laufend in die Datei gesichert. Damit ist es
> möglich, in einem Dokument größere Bereiche zu ändern als in den
> Hauptspeicher passen. Die Änderungen, an denen gerade nicht
> gearbeitet wird, sind auf die Festplatte ausgelagert. Wenn man das
> Dokument sichert, werden die Arbeitsduplikate zu den gültigen
> Objekten erklärt und die ehemaligen Originale werden ungültig.
> Irgendwann später werden die Speicherbereiche der ungültigen
> Varianten entweder für andere Dinge neu benutzt oder beim Verdichten
> entfernt.

Wenn ich die Beschreibungen von damals richtig in Erinnerung behalten habe,
werden in den Dokumenten "Zeiger" verwendet, die innerhalb der Datei auf die
Fortsetzung des Inhaltes an anderer Stelle verweisen. Wenn man also irgendwo
etwas löscht, entfernt RagTime nicht den gelöschten Inhalt aus der Datei
sondern markiert nur Anfang und Ende und zeigt diesen Weg über eine solchen
Zeiger.
Dadurch werden Dokumente, an denen viel geändert wird, mitunter recht groß
und können durch die Option "verdichten" beim sichern wieder kleiner gemacht
werden. Da wird sozusagen aufgeräumt und die Datei wird neu hintereinander
ohne Leerbereiche oder verzeigerten Inhalt angelegt.

Wenn ich mir dann beim Arbeiten so anschaue, was manchmal im Dokument
passiert, dann drängt sich da einfach die Vermutung auf, daß wohl ein Zeiger
verrutscht ist. Vielleicht wird er ja auch falsch oder doppelt angelegt...
Jedenfalls wäre das für mich eine Erklärung, warum man eine Zelle plötzlich
nicht mehr aktivieren kann: da zeigt vor der Zelle der Text auf eine andere
(eingentlich falsche) Stelle. Klickt man dann auf die falsche Stelle, um von
hier aus den Text zu löschen und löscht dabei über die Zeigerstelle hinweg,
ist man wieder in der alten Stelle von hinten angekommen. Leider führt das
aber auch zu Abstürzen und ist außerdem zu umständlich.
Daher ist in solch einem Fall (Omega- Fehler) der bessere Weg, den Inhalt
der fehlerhaften Zelle nur auszuwählen, dabei das letzte Zeichen nicht mit
auszuwählen, den Text zu kopieren, die Zelle komplett als solche auszuwählen
und zu löschen und danach den ausgewählten Inhalt einzufügen sowie das
letzte Zeichen zu ergänzen.
Das ist mein -funktionierender- workaround.

Offensichtlich ist bei tief verschachtelten oder häufig veränderten
Dokumenten für RagTime irgendeine Barriere vorhanden, die die Zeiger auf
unsinnige Stellen weisen läßt.
Da sind wir als Anwender nicht in der Lage, etwas zu verändern. Wir können
den Fehler auch nicht vermeiden oder umgehen. Wir können nur fehlerhafte
Dokumente an RagTime schicken und dabei hoffen, daß sich für die Entwickler
der Fehler nachvollziehen läßt.
Offensichtlich  ist das äußerst schwierig:
Zitat aus einer email von Robert Buchloh (RagTime) aus August 2005:

> dieser Fehler ist uns schon seit RagTime 5
> bekannt. Leider können wir ihn bis heute nicht
> einkreisen. Wenn Sie einen reproduzierbaren Weg
> gefunden haben, das Verhalten zu erzeugen, wäre
> ich für eine detaillierte Beschreibung dankbar.
>
Also mail mal Dein Beispieldokument an RagTime; schaden kann es sicherlich
nichts..



 
--
mit freundlichem Gruß

Mathias Milchmeyer