Durchbl"attern in intern. Satznummernfolge und 'fam'

Allers Heinrich allers at goethe.de
Do Nov 22 17:44:43 CET 2001


Ich möchte eine komplette Datenbank abgrasen und in jeder Aufnahmegruppe (=
Hauptsatz und über Identif.-Nrn. mit ihm verknüpfte Bandaufführungssätze)
gucken, ob es eine Signatur (#90) gibt und dann was damit machen; aber
letzteres tut hier nichts zur Sache, denn mir geht es hier einzig um die
Technik des Abgrasens.

Ich durchlaufe die Datenbank in der Folge der internen Satznummern, und
immer dann, wenn ich auf Anhieb keine #90 finde, bilde ich mittels 'fam' die
Aufnahmegruppe und blättere die durch auf der Suche nach einer #90.

Und wenn dann eine gefunden ist, dann kehre ich zum Ausgangssatz zurück
(dem, der in der internen Satznummernfolge gerade dran war), "setze mich
wieder drauf" (mache ihn zum aktuellen Satz) und greife dann den zur
folgenden internen Satznummer gehörenden Satz.

Klingt schon ziemlich gewagt, immerhin handelt es sich um eine etwas
verschachtelte Angelegenheit, funktioniert aber meinem Eindruck nach mit
dieser Flexdatei:


  Datensatz mit int. Nr. 1 greifen
find #1
:bearb
if #90 jump sigvhd
 Aktuelle interne Satznr. festhalten in #uy6:
var i\ins #uy6
fam
first
if #90 jump sigvhd
  Nächster Satz innerhalb der Aufnahmegruppe:
:naechst
next
if yes jump weiter
  Rückschalten auf Satz, der in Satznummernfolge dran ist:
var "#" #uy6
find
var ""\ins #uy6
jump naechster
:weiter
if #90 jump sigvhd 
jump naechst
:sigvhd
var i " / " #00 " / " #90 " / " #20
write
write n
  Rückschalten auf Satz, der in Satznummernfolge dran ist,
  aber nur, wenn 'fam' wirkte, es also #uy6 gibt:
if #uy6 jump weiter1
jump naechster
:weiter1
var "#" #uy6
find
var ""\ins #uy6
:naechster
keychk\if yes jump ende
  nächsten Satz in Satznummernfolge greifen:
next #
if cancel jump ende
if no jump naechster
jump bearb
:ende


Es funktioniert auf der Demo-Datenbank bis zum Ende. Es funktioniert aber
nicht auf einer Datenbank von mir. Da ich mittels 'write' das Geschehen im
weentlichen mitprotokollieren lasse, sehe ich hinterher, wo der Prozeß
abbricht und sich mit dem Dr.-Watson-Fehler verabschiedet: es ist ein Werk
mit fast 50 Bandaufführungssätzen.

Kann es sein, daß es bei der Operation 'fam' eine obere Grenze für die damit
induzierte Ergebnismenge gibt, bei deren Überschreiten die Fehlerprozedur in
Gang gesetzt wird?


Mit freundlichen Grüßen:

Heinrich Allers

Goethe-Institut / Inter Nationes, Postfach 19 04 19
D-80604 München, Tel. ++89 / 15921 -471 (Telefax: -435)
allers at goethe.de; http://home.t-online.de/home/allers
------------------------------------------------------
Gegen unseren Krieg / contra nuestra guerra:
http://www.9-11peace.org/index.php3

-------------- nächster Teil --------------
Ein Dateianhang mit Binärdaten wurde abgetrennt...
Dateiname   : SCHL.FLX
Dateityp    : application/octet-stream
Dateigröße  : 795 bytes
Beschreibung: nicht verfügbar
URL         : <http://bibservices.biblio.etc.tu-bs.de/pipermail/allegro/attachments/20011122/3ba125b0/attachment.obj>


Mehr Informationen über die Mailingliste Allegro