  xref.flx
  2018-06-08
  2021-11-01
    Auf dem OCLC-Server findet man im Ordner  xfer/metacoll/reports
    Die Dateien dort haben extrem lange Namen, wichtig ist das Ende:
    Die jeweils aktuelle Datei vom letzten Upload, z.B. update14:
      sieht am Ende so aus:  ...update14.mrc.BibCrossRefReport.txt
      (es ist die 4. von unten in der Liste)
      Diese in das DbDir kopieren, aber so nennen:  xrefrpt.new
       (weil die anderen Teile des langen Namens nicht relevant sind)  

  Dann Aufruf: X oclc-num  :  wandelt DbDir\xrefrpt.new   ==> xrefrptN.adt
                          mit der naechsten Nummer N
  Die .adt hat nur 2 Zeilen je Titel 
  #00 allegro-IdNr 
  #89W OCOLC-Nr.
  Diese könnte man mit  update -fm40  einmischen, z.B. N=17:
    acon -jupdate -fm30 -d.... -bcat -uDbDir\xrefrpt17.adt -F

  ! Dieser FLEX macht aber das Einmischen selber und wandelt vorher die Datei
    mit .new in die Form .adt um

  *** Hier beginnt der eigentliche FLEX ***

  Zuerst wird naechste Dateinummer N ermittelt. Dazu:
  Liste der bisherigen .txt-Dateien in xref.lst schreiben, Ordnung nach Datum
var "dir /OD " D "*xrefrpt*.txt >xref.lst"
dos

  letzte Zeile mit "xrefrpt" aus xref.lst
var Fxref.lst
var (T"xrefrpt")
  daraus die letzte (=neueste) Nummer entnehmen, 1 addieren
z=
eval z+1
z=
  jetzt ist z die naechste Nummer
  in $n sichern
var z
ins $n

  Dateinamensliste weg
 del xref.lst

  Datei .new umbenennen in .txt mit der neuen Nummer
var D "xrefrpt.new " D "xrefrpt" z ".txt"
rename

var D "xrefrpt" z ".txt = Neue xref-Datei." n "Umwandeln und einspeisen?"
yes
if yes jump umwand

  nein, dann Datei rueck-benennen
var D "xrefrpt" z ".txt " D "xrefrpt.new" 
rename
var "xrefrpt.new wurde nicht eingespeist" n "Erneut starten mit  X oclc-num
mes

end

:umwand

  Datei hat je Titel eine Zeile,
  Struktur der Zeilen:
  ebc3004457   1223111593   (getrennt durch TAB = 09)

  Die Datei lesen:
var D "xrefrpt" $n ".txt"

open 
if no jump nof

 die neue .adt schreiben
var D "xrefrpt" $n ".adt"
ins $adt

  nochmal fragen
var $adt " jetzt erstellen?"
yes
if yes jump do
close
end

  .adt erstellen

:do
var $adt
open x
if no  mes Oeffnung misslungen;end

  erste Zeile lesen
get

     TAB (=09 = ^I) ist Trennzeichen zwischen den zwei Nummern 
:loop
ins #unu
wri "#00 " #unu(e"^I") n
wri "#89W" #unu(b"^I") n n
get

if not "" if not cancel jump loop
close
close x

var "Datei " $adt " ist erstellt. anzeigen?"
  wenn man die Datei sehen will
yes
if yes var $adt;help

  soll sie wirklich rein?
yes Daten einmischen?
if not yes end

var $adt
open
:rloop
get
if cancel jump ende

  die 2 Zeilen je Satz sehen so aus:
  #00 9413734
  #89W1057054966

var (4,0)
ins $id
  2. Zeile
get 
var (4,0)
ins $wc
  naechste Zeile ist leer
get
  den Satz holen  (prefix _ damit in .api nicht bei #-9 umcodiert wird)  //2022-05-22
var "|9 _" $id
find
if no jump rloop
  #89W reinschreiben
var $wc
ins #89W
  Satz speichern
put
jump rloop

  das war's
:ende
mes done
end
  

  die neue Datei ist nicht vorhanden
:nof
var D "xrefrpt" $n ".txt nicht gefunden"
mes
