AW: [Allegro] A99-Grenze

Fischer, Thomas fischer at sub.uni-goettingen.de
Mi Jul 18 14:33:43 CEST 2012


Hallo Herr Eversberg,

> Am 18.07.2012 13:55, schrieb Fischer, Thomas:
> >
> > Den Flex sieht so aus:
> >
>  > ...
> > var z (r8,0)
> > ins #00
> > //      save edit
> > z+1
> > if z>250000 jump abbruch
> > :weiter
>
> Nicht "save edit" ist hier der Befehl der Wahl, sondern "put".
>
> Mit "save edit" wird jedesmal der (ständig anwachsende) Reservespeicher
> von vorn bis hinten durchgeschaut, ob irgendwelche bearbeiteten und
> noch nicht gespeicherten Sätze da sind. Das ist dann bei Ihnen jedesmal
> nur der allerletzte.
> (Machen Sie einen Formulierungsvorschlag für xsave.rtf, damit da
> keiner mehr drauf reinfällt.)

Wenn das hinter jedem einzelne " ins #00" steht, sollte das doch (wiewohl ineffizient) gespeichert werden. Wird aber nicht.
Für xsave fände ich eine Ergänzung
"Zum Speichern einzelner Datensätze wird der Befehlt "put" verwendet."
hilfreich, wobei "put" mit xput verlinkt (verflippt?) sein sollte.

(Bei "verflippt" fällt mir ein: ließe sich der Index des Online-Systemhandbuchs mit dem Online-Systemhandbuch verlinken? Derzeit muss man versuchen, über die Seitenzahl einen Zusammenhang zu finden. Mir ist auch klar, dass das Arbeit bedeutet...)

> Außerdem: Mit  next #  kommen Sie ins Gedränge, weil ja die
> Sätze jeweils verlängert werden. Die Gesamtzahl der Sätze wächst
> also an. Mit  next #  wird aber nicht bemerkt, daß man die
> Grenze überschreitet, die anfangs in der letzten Satznummer
> bestand, denn die ist ja inzwischen gewachsen...
> Besser wäre also, zumindest bei jedem Satz erst zu prüfen, ob er
> schon eine #00 hat, bevor man ihm eine neue verpaßt.

Ja, das hatte ich schon drin, dann aber darauf verzichtet. Ändern sich die Nummern von Datensätzen während so eines Vorgangs? Ich hatte mir ja Nummer 10.00 bis 250.000 vorgenommen, danach der Abbruch. Wenn die Nummern dann nicht konstant sind, kann es wohl Probleme geben, dass also Datensätze mehrfach nummeriert werden.
Allerdings sehe ich nicht, wie daraus ein Absturz entstehen könnte.

> Sie haben sich also insgesamt zwei Beine gestellt mit diesem FLEX.
> Es kommt erschwerend hinzu, daß wohl die bei Ihnen vorliegende Version
> beim "next #" das Ende nicht korrekt erkennt, falls es denn wirklich
> erreicht wird, weil der Befehl "if cancel" (hatten Sie den überhaupt
> drin?) bei V32.4 wahrscheinlich nicht klappte, was Herrn Oberfell gerade
> heute auch zu schaffen machte.
> Mit V32.6 sollte das aber vorbei sein.

"if cancel" hatte ich nicht, weil ich nicht *aus* der Schleife, sondern nur im Fall "if del" und "if yes" wieder *in* die Schleife springen wollte. Eine längliche Schleife ohne Abbruchmöglichkeit wäre da wohl bei gelöschten Sätzen möglich, aber keine, die eine Stunde lang mit A99 die CPU zu 100% beschäftigt.

Mein Eindruck ist sehr stark (auch bei einigen Beispielen so erfahren), dass die Schleife bis zur Meldung "Fertig! Nächste Nummer: ..." durchläuft, dann das Speichern aber nicht funktioniert, das ja von dem Flex erst einmal unabhängig ist.

Mit freundlichen Grüßen
Thomas Fischer





Mehr Informationen über die Mailingliste Allegro