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
|