[Allegro] f1nd

Hilger Weisweiler hilger.weisweiler at ub.uni-tuebingen.de
Do Mär 10 10:33:12 CET 2005


Liebe Kolleginnen und Kollegen,

mit untenstehendem Flex moechte ich unsere Datenbank auf fehlende 
Schlagwortstammsaetze durchsuchen. Dazu soll der Flex eine vom 
Anzeigeparameter uebergebene Variable (#ugc) Stueck fuer Stueck in 
einer Schleife abarbeiten. Mit "f1nd" soll er den jeweils 
zugehoerigen Stammsatz finden. Wenn er keinen Stammsatz findet, soll 
er den Text exportieren, nach dem jeweils gesucht wurde (die ad hoc 
gebildete Variable #ugd).

Die Sache funktioniert dann einwandfrei, wenn der Flex direkt beim 
ersten Durchlauf durch die Schleife das Fehlen eines Stammsatzes 
bemerkt. Fehlt jedoch der Stammsatz zum ersten Glied der Variable 
#ugc NICHT, so funktioniert die Sache auch fuer die weiteren Glieder 
nicht: Das Fehlen des Stammsatzes wird dann NICHT bemerkt, es wird 
nichts ausgegeben.

Das schrittweise Kappen der Variable und der Ruecksprung 
funktionieren einwandfrei, was ich mittels der eingerueckten Passagen 
getestet habe. Die Sache haengt also "irgendwie" an der Verwendung 
von "f1nd". Kann mir jemand sagen, wo mein Denkfehler liegt?

Dankbar fuer Hinweise, gruesst
H. Weisweiler


---------------------
      NOREFREC.FLX
      Findet Schlagwoerter, zu denen kein Stammsatz existiert
      H. Weisweiler:    07.03.2005
      Letzte Aenderung: 09.03.2005

var ""
ins #ugd

var D
if "~t:" jump nixda
disp p d-wnoref

var M "sauber.bat"
xport f
write "if exist c:\\temp\\test.txt del c:\\temp\\test.txt" n "exit"
call

var "+C:\\TEMP\\TEST.TXT"
ins #uef

ask Buchstabe?=a
ascii
if "" end
if c end
ins #ult

var "swk " #ult "? not (typ schlagwort or notation or internet?)"
find
order 0
var last
Z=
ins #utn

var #utn " Datens„tze werden geprft. - Weiter?"
ansi
yesno
if no end
if c end

first
deposit

:nochmal

  var "Weiter?"
  yesno
  if no end
  if c end

var #ugc(e"$")
ins #ugd

var #ugd(e";")
ins #ugd

var "swk '" #ugd " *'?"
f1nd

  var "Weiter?"
  yesno
  if no end
  if c end

if not #700 jump export
jump weiter

:export
var #uef
open x
var #ugd
ansi
write
var " * " n
write

:weiter
var #ugc(b"$")
ins #ugc

  var #ugc
  ansi
  sho iV
  var "Weiter?"
  yesno
  if no end
  if c end

if not #ugc jump naechster
jump nochmal

:naechster
next
if no jump erledigt
deposit
jump nochmal

:erledigt
var "C:/TEMP/TEST.TXT"
fsize
if no jump keininhalt

var M "anzeige.bat"
xport f
write "start wordpad.exe " M "test.txt"
Call

:keininhalt
exec recdisp.flx
end

:nixda
mes Auf der Originaldatenbank? Sie sind ja wohl nicht zu retten!
end
---------------------
---------------------------------------------------
Dr. Hilger Weisweiler
Leiter der Theologischen Abteilung
Universitaetsbibliothek Tuebingen
Tel. +49 (0)7071/297 2835




Mehr Informationen über die Mailingliste Allegro