[Allegro] Unbesetzte Satznummern
Bernhard Eversberg
ev at biblio.tu-bs.de
Di Jun 28 13:33:24 CEST 2005
Es trat das Problem unbesetzter Satznummern auf. Solche gibt es nur
dann, wenn man eine "Bereinigung" (DOS: "Entlueftung") durchgeführt hat,
siehe Org-Menue. Dann verschwinden die geloeschten Saetze (//-Einträge
im Reg. 1) und die Nummern der beseitigten Saetze sind frei. Unter
/[0] im Reg. sind sie registriert und werden recycelt, wenn neue Nummern
gebraucht werden.
Im FLEX werden sie eigentlich nur zum Problem, wenn man mit find
#nummer genau auf eine solche stoesst. Mit "if no ..." muss man diese
Bedingung abfangen, wie es in der Beschreibung auch steht.
Mit next # bzw. prev # tritt das Problem nicht mehr auf da jetzt
(V25.6) solche Nummern übersprungen werden. In Ergebnismengen können
solche Nummern nicht auftreten, denn sie haben keine Registereintraege
außer /[0].
Wer, warum auch immer, mal die momentan freien Nummern rauskriegen will,
kann dazu den nachfolgend abgebildeten FLEX einsetzen. Er ist zugleich
ein Muster dafür, wie man die Datenbank als ganzes abarbeiten kann!
(Man beachte dabei auch, wie die Fortschrittsanzeige gelöst ist: es wird
immer nach 100 Saetzen die schon bearbeitete Zahl und die Gesamtzahl im
Schreibfeld angezeigt. Denn der Fortschrittsbalken tut es bei der
Satz-fuer-Satz-Abarbeitung der Gesamtbank nicht.)
----------------------------------------------------------------------
FINDVOID : Finde unbesetzte Saetze
2005-06-28
var "bitte warten..."
sho iv
z=1
Z=0
#uzU
var t
ins #uzG
Schleife arbeitet alle Saetze durch
:loop
Ist eine Hunderterzahl erreicht? Dann im Schreibfeld anzeigen
var z "z"
if %00z% var z " / " #uzG;sho iv
var "#" z
find
Ende erreicht?
if can jump ende
Nummer ungueltig?
if no var #uzU "," z;ins #uzU;Z+1;jump weiter
if del jump weiter
... Und hier
koennten Aktionen stehen, die nur ablaufen, wenn es ein
gueltiger und nicht geloeschter Satz ist!
:weiter
z+1
jump loop
:ende
z-1
var ""
sho iv
var "Es gibt " z " Sätze, unbesetzt sind " Z " Nummern: " n #uzU(f",")
mes
Mehr Informationen über die Mailingliste Allegro