![]()  | 
      allegro-C BlueChyp V27.2  | 
      ![]()  | 
    
| 
       Neuer-
und Verbesserungen 
      7. Mai 2007 
       | 
      
       | 
    
| 
       Mehr zu den Themen:  | 
      
      
  
      Der Befehl   fetch eN  
      kann dies.          
      Beispiel: Die Sätze sind
durch zwei Leerzeilen getrennt, das entspricht einer Zeichenkombination
13 10 13 10.          
      Man schreibt dann:          
      var 13
10 13 10       
      fetch e4       
      ins #uzy         
      und es wird alles eingelesen bis zum
nächsten Auftreten dieser Kombination aus 4 Zeichen. Der
eingelesene Satz wird als Ganzes kopiert in #uzy zur weiteren
Verwendung.  
         
      Beispiel: Das Feld "Verlag"
befindet sich in den Fremddaten im Feld 260 und beginnt mit $b, endet
mit $c Man
schreibt dann, wenn man vorher den ganzen Fremddsatz wie oben
eingelesen hat:          
      var
#uzy(b"260 " b"$b" e"$c")       
      ins #75          
      und es wird der Inhalt des Fremdfeldes isoliert und
in #75 kopiert.          
      In den Importparametern hätte man dasselbe
so ausgedrückt:       
      #75       
      s "260 "       
      b"$b"       
      e"$c"  Hier werden
nun zwei Fälle dargestellt, in denen die FLEX-Technik neue
Leistungen erbringt, und das ganz ohne Importparameter. Der  Fall
2  ist noch schneller und
direkter!  1.
Der Fall OHIOLINK  Als Beispiel
kann der Fall von MARC-Daten dienen, wie man sie aus dem System
OHIOLINK, einem sehr großen Zentralkatalog, leicht kopieren
kann. Sie können sofort per ISBN selber einen solchen Satz
 original aus
OHIO abrufen ! Es erscheint ein JanaS-Fenster, in
dem der Datensatz mit MARC-Nummern zu sehen ist. Achtung: Wenn das
System den richtigen Datensatz nicht hat, kommt ein anderer, in der
Regel unpassender, bei dem ein Anfangsteil der ISBN
übereinstimmt.)  Dann:  1. Mit der
Maus den ganzen MARC-Satz markieren, mit Alt+c
in die Zwischenablage kopieren  2.
JanaS/Fenster verlassen, in dieses Anzeigefeld klicken, hintereinander Alt+a und Alt+v  
               
      Der MARC-Satz erscheint. Auf Wunsch kann man mehrere
Datensätze untereinander einkopieren. Dann:  3. Im
Schreibfeld  X
ohio  eingeben.
Anzeigefeld wird verarbeitet.  Anschließend
hat man den umgewandelten Satz so vor sich, als hätte man ihn
selber eingegeben.  Der Datensatz
ist aber noch nicht gespeichert, d.h. man kann vorher noch
ändern oder löschen.  Der FLEX ohio.flx liest in
einer Schleife jeweils einen Abschnitt bis zum nächsten
"LEADER" und macht aus den so eingelesenen Daten einen allegro-Datensatz.
Diese Datensätze kommen in den Offline-Speicher und
können dann mit Alt+q besichtigt werden.  Besonders
attraktiv bei den Ohio-Daten ist, daß in vielen
Sätzen die Inhaltsverzeichnisse der Bücher enthalten
sind! Das gibt es bei keiner anderen Datenbank, und hier bekommt man
sie nicht als PDF, sondern als strukturierte Texte in der
wiederholbaren MARC-Kategorie 970.  So sehen
diese Daten aus:  LEADER 00000pam  2200000
a 4500  001    30811572
       003    OCoLC
       005    19950423121748.0
       008    940630s1995   
      nyu          
      000 1 eng    010   
      94027510  020   
      0449225550  040   
      DLC|cDLC|dndc/sfd  043   
      e-uk-en  050 00 PR6058.O912|bA63 1996  100 1  Howatch,
Susan.  245 10 Absolute truths /|cby Susan Howatch.  250    1st
Ballantine Books domestic ed.  260    New
York :|bFawcett Crest,|c1996.  300    624
p. ;|c18 cm.  610 20 Church of
England|zEngland|xClergy|xFiction.  650  0
Cathedrals|zEngland|xFiction.  650  0
Bishops|zEngland|xFiction.  LEADER 00000pam  2200000
a 4500  001    9066419
       008    821119s1982   
      caua    
      b    000
0 eng    010    82022697
       020    0913890545
(pbk.) :  020    |z093179045X
(pbk.)  040    DLC|cDLC|dKSU
       050 0  TJ163.2|b.T656
1982  082 0  333.79|219
       245 00 Tools for the soft path /|cby the
International Project        
      for Soft Energy Paths ; Jim Harding ... [et al.]  260    San
Francisco :|bFriends of the Earth,|cc1982  300    288
p. :|bill. ;|c28 cm  504    Includes
bibliographical references  650  0 Power
resources  650  0
Energy conservation  650  0
Energy policy  700 10 Harding, Jim  710 20 International Project for Soft Energy
Paths  LEADER 00000pam  2200000
a 4500  001    40964731
       003    OCoLC
       005    19991025121013.0
       008    990223s1999   
      gw a    
      b    101
0 eng    010    99020159
       020    3540657029
(acid-free paper)  040    DLC|cDLC|dOHX|dC#P|dCWR
       050 00
QB843.E2|bI28 1998  072 
      7 QB|2lcco  082 00
523.8/8|221  111 2  IAU
Colloquium|n(169th :|d1998 :|cHeidelberg, Germany)  245 10 Variable and non-spherical stellar winds
in luminous hot        
      stars :|bproceedings of the IAU Colloquium no. 169,
held        
      in
Heidelberg, Germany, 15-19 June 1998 /|cB. Wolf, O.        
      Stahl, A.W. Fullerton (Eds.)  260    Berlin
;|aNew York :|bSpringer,|cc1999  300    xx,
424 p. :|bill. ;|c24 cm  440  0
Lecture notes in physics,|x0075-8450 ;|v523  504    Includes
bibliographical references and index  650  0 Early
stars|vCongresses  650  0
Stellar winds|vCongresses  700 1  Wolf,
B.|q(Bernhard),|d1935-  700 1  Stahl,
O.|q(Otmar),|d1955-  700 1  Fullerton,
Alexander W.,|d1959-  970 11 |tObject Index|p423  970 21 |tRotationally Modulated Winds of O
Stars|cAlex W.        
      Fullerton|fFullerton, Alexander W., 1959-|p3  970 21 |tRotationally Modulated Winds of
BA-Type Supergiants        
      |cAndreas Kaufer|fKaufer, Andreas|p11  970 21 |tUsing Spectropolarimetry to Determine
Envelope Geometry        
      and Test Variability Models for Hot Star
Circumstellar        
      Envelopes|cKaren S. Bjorkman|fBjorkman, Karen S.|p19
       970 21
|tConference Summary: The Demise of Spherical and        
      Stationary Winds|cImmo Appenzeller|fAppenzeller, I.
(Immo),        
      1940-|p416  971   
      |d19990923  Die
Zeichenfolge am Satzanfang ist LEADER. Das Lesen bis zum
nächsten LEADER sieht in FLEX so aus:  var
"LEADER"   // damit
fängt jeder Satz an!  fetch e6      
      // Daten lesen bis zu dieser Zeichenfolge  Danach steht
der Datensatz in der iV bereit. Zweckmäßig ist, ihn
zuerst in eine #u-Variable zu kopieren, z.B. #uzz.  Durch diese
Syntax wird es auch ganz einfach, Steuerzeichenfolgen als Begrenzung
vorzugeben. Wenn etwa das Satzende durch die Sequenz 
      13 10 13 10 (zwei Leerzeilen) gekennzeichnet ist,
dann:  var 13
10 13 10  fetch
e4  =======================================================
       2.
zDirect : Die Direktabfrage über Z39.50 Gut und
schön, wird man sagen, aber muß das so
umständlich sein? Es gibt Protokolle, mit denen man solche
Sachen automatisieren können sollte, wie es ja auch EndNote
u.a. tun. Das ist wahr, aber ausgerechnet OHIOLINK hat keinen
Z39.50-Service, deshalb wurde die oben beschriebene Methode erdacht.
Die Library of Congress dagegen und MELVYL (ebenfalls ein
großer Zentralkatalog) haben einen, desgl. der GBV, der SWD,
HEBIS und ein paar andere. Und dafür gibt es ab V27.2 eine
noch schnellere Methodik. Mitgeliefert werden dafür zwei neue
Module: zc.exe und z39.dll. Sie beruhen
auf der YAZ-Softwarebibliothek (Open Source). Das Programm zc.exe kann in
einem Zuge von mehreren Servern quasi gleichzeitig per ISBN
Sätze abrufen und diese dann in eine Datei schreiben. Ein FLEX
kann das Programm zc.exe starten und
dann sofort die Ergebnisdatei einlesen und umwandeln. Meistens dauert
das nur wenige Sekunden je Server.  Nutzung ·        
      Will man die
Funktion routinemäßig sehr oft nutzen, legt man sie
am besten auf einen Flip-Button und schreibt in die Datei _start.flx diese Zeile:
            
      flip 3&3: ZDirect=X zc ·        
      Zur
gelegentlichen Nutzung gibt man ein:  X zc. 
      Der Aufruf des Programms  zc.exe 
      ist darin eingebaut.  ·        
      Will man
gelegentlich unterschiedliche Server einzeln nutzen, macht man sich
Kopien von zc.flx und
aktiviert darin die Zeilen für die betreffenden Server. Dann
ruft man diese FLEXe selektiv auf, z.B. mit  X zc2 .  Was steckt
dahinter? Der FLEX
für die Z39-Suche heißt   zc.flx  (Z-Client).
Darin steht eine  Liste
der Server , die abzufragen sind. Die
Einträge dieser Liste haben eine festgelegte Form. In
derselben Form kann man dort weitere Einträge für
andere Server anlegen. Eine Serverzeile sieht so aus:  wri '
UBBS;usmarc ubsun02.biblio.etc.tu-bs.de:2020/opac' 
      // UB BS Die
Kommentare in zc.flx
erklären alles weitere.  Eingebunden
wird z39m.inc, darin
werden die Suchergebnisse dann umgewandelt und in den Arbeitsspeicher
geholt. Im Anzeigefeld erscheinen alle gefundenen Sätze schon
gleich in der umgewandelten Form. Die Originalform kann man sich mit 
      h zilist 
      zeigen lassen.  In  z39m.inc  steckt das
Unterprogramm :z39m, welches die
eigentliche Arbeit macht. Wenn man die Umwandlung verbessern will,
muß man nur in diese Datei eingreifen. Auch diese Umwandlung
kommt ohne Importparameter aus, es wird alles mit FLEX gemacht.  Ablauf: zc.flx: nimmt ISBN
vom Nutzer entgegen, setzt damit einen Aufruf von zc.exe zusammen und
startet diesen dann  ==> zc.exe fragt die
Server ab und schreibt die Ergebnisse in Datei zilist         
      ==> zc.flx startet
Unterprogramm :z39m (in z39m.inc)                    
      ==> Unterprogramm liest zilist und holt die
Daten in den Arbeitsspeicher  Was ist zu
tun? ... wenn man
zDirect für eine eigene, Nichtstandard-Datenbank nutzen will?
Nur das Unterprogramm z39m.inc ist
spezifisch für das Zielformat. Ausgeliefert werden zwei
Versionen: eine für das A-Format (DOS-Code), die zweite
für das N-Format (ANSI-Code). Man kopiert die passende z39m.inc am besten in
das eigene Datenverzeichnis und kann es dort frei modifizieren. Dabei
braucht man sich nur um die Datenfelder zu kümmern, also
hauptsächlich die Feldnummern durch die eigenen zu ersetzen,
alle anderen Probleme der Umwandlung sind in zc.flx erledigt.  Die
größte Besonderheit ist: Es werden Daten aus
unterschiedlichen Quellen umgewandelt, die sich im Format und sogar in
der Zeichencodierung unterscheiden. Im Falle der DNB bekommt man keine
MARC-Daten, sondern ISBD! Und im Falle der polnischen
Nationalbibliothek sind es Unicode-Daten, beim GBV und DNB
unterschiedliche ANSI-Codierungen. Wichtig sind dabei die neuen
Möglichkeiten der  Umcodierung:  Zeichenumcodierung
über Tabellen  
      
      Grundprinzip ist,
daß der momentane Text in der internen Variablen mit Hilfe
einer Tabelle umcodiert wird. Es gibt bei den classico-Programmen
zwei Arten der tabellengesteuerten Umcodierung, die beim Export bzw.
beim Import zum Einsatz kommen. Beide Arten können ab V27.2
auch in a99 verwendet werden.  A. Exporttabellen xcode ab 
            avanti   
      (ab V27) Codiere den in der iV stehenden
Text um, und zwar mit der Tabelle p bzw. q  Das ist auch ein Testbefehl
für Experten, zum
Testen der diversen Umcodiertabellen!  Folgende Werte kann man setzen:  a = i d x  
           
      Index-, Display-, Exportparameter, und darin:  Hinweis: Für 
      avanti 
      gelten nur i und x  b = p q              
      p- bzw. q-Tabelle  Anschließend steht in der
iV der entsprechend umcodierte Text.  B. Importtabellen  Ab
V27.2 gibt es noch weitere Möglichkeiten, Umcodierungen
vorzunehmen. Diese sind besonders hilfreich beim Einlesen von  Fremddaten ,
die ja nicht selten anders codiert sind, als man es braucht. Es wird
keine Import-Parameterdatei herangezogen, aber deren Technik wird genau
nachgebildet (siehe Handbuch Kap.11.2.2 ). xcode
y 
          [dahinter
kommt weiter gar nichts!] Zur Umcodierung wird eine Tabelle
benutzt, die man vorher mit Hilfsbefehlen der Form 
       y x ... und  p x ...    anlegen kann.  Die Hilfsbefehle gelten
alle für die gesamte Sitzung, müssen also
nicht in jedem FLEX erneut gegeben werden. Sie sehen
folgendermaßen aus:  y
      x u 
       Ersetzt beim Befehl 
      xcode y  jedes
      x durch ein  u.  Beispiel:  y A a 
      : ersetzt das große A
durch das kleine  y
      a/z A 
       Ersetzt beim Befehl 
      xcode y  jedes
      a durch ein  A., jedes b durch ein B usw.  Damit kann man ganze Zeichenfolgen
mit einem Befehl definieren, falls es sich um aufeinanderfolgende
Zeichen handelt.  y
      a/z =A 
       Ersetzt beim Befehl 
      xcode y  jedes
      a durch ein  A., jedes b  auch
durch ein A usw.  Damit kann man ganze Zeichenfolgen
in denselben Code umwandeln.  y
.nnn
mmm 
       Diese Variante ersetzt beim Befehl 
      xcode y  jeden
Dezimalcode nnn durch den Code mmm.
       Sonderfall: 256 an der Stelle von mmm
bedeutet: Code nnn ignorieren.  Beispiel:  y .13 32   bzw. 
      y .13 256 
      : ersetzt Code 13 durch das
Leerzeichen bzw. beseitigt ihn ersatzlos.  p
      x abc
ABC   Sog. Protyp-Ersetzungen.
Damit kann man Doppelcodes ersetzen: wenn xa auftritt, wird es durch A ersetzt, xa dagegen durch B usw. Solche Codierungen treten
z.B. in MARC-Daten auf, auch wenn diese per Z39 zum Zweck des Imports
gewonnen werden.  Hinweise:  1.
Eine andere Art der Umcodierung macht man mit den Befehlen  asci/ansi . Dabei werden die umkehrbaren
o-Tabellen benutzt, die in die Anzeige- oder Indexparameter eingebunden
sind. Normalerweise ist dies die Tabelle o.apt.  2.
Wenn man oft mit dem write-Befehl Daten ausgibt, ist es
bequemer, die automatisch Umcodierung mit  exp wX  einzuschalten. 
      Vorher die geeigneten Exportparameter laden!  3.
Für die Umwandlung von  Unicode-Daten 
in den Standard-DOS-Code gibt es eine weitere Methodik: sie arbeitet
mit einer Tabelle, die man mit u-Befehlen in die Indexparameter
einbaut. Eine komplette Liste findet man in der Datei 
       ucodes.apt .
       Beispiel:  In
den Exportparametern sind p-Umcodierbefehle für ASCII
-> UTF-8. Wenn nun ein Text in #uxy steht und in UTF-8 umzuwandeln ist,
macht man das so:  var #uxy
       xco xp  ins #uxy
        |