Import aus Directory-Format

Sibylle.Koczian Sibylle.Koczian at Bibliothek.uni-augsburg.de
Mi Nov 15 00:59:59 CET 1995


Liebe Liste,

das Problem ist immer noch ungeloest, und jeder neue Versuch, es ganz anders
zu machen, gibt neue Raetsel auf.

>> > Leider kenne ich mich mit D, D0 und Konsorten nicht aus. Bei meinen
>>   > Importen mit dem s-Befehl mache ich es so:
>>   >>
>>   > #93
>>   > s 0 "904 "         Das Leerzeichen am Ende ist hier entscheidend,
>>   > eventuell vorher durch globale Ersetzung einfuegen.
Genau das geht beim Directory doch mit Sicherheit nicht - da geht doch das
Programm davon aus, dass jeder Eintrag insgesamt 12 Byte lang ist, und davon
stehen die ersten drei fuer die Kategorienummer. Wenn man darin aendert,
kann das doch nur ein Unglueck geben!

>>   > ..                    Der Suchtext muss laenger sein, als beim 2.
>>   > Durchlauf!
>>   > m" ; "
>>   >
>>   > #33
>>   > s 0 "904"            Jetzt ein Zeichen kuerzer, ohne Leerzeichen.
>>   > i32
>>   > ..
>>   > m". - "
>>   >
> Wenn Sie statt i32 den Befehl }1 einsetzen, muesste es gehen, denn das
> Leerzeichen wird beim ersten Durchlauf intern durch Code 255 ersetzt,
> wenn ich es richtig erinnere.
>
Aber auf welche Weise wird eine Kategorienummer im Directory veraendert? Bei
mir geht es nicht mit

D "904" (oder D0 "904")

los, sondern mit

D "940"

Und hinterher, bei D "???" findet sich die nicht ungueltig gemachte (weil
beim zweiten Paragraphen nicht wiedergefundene) Kategorie wieder in der Form

#96 (90) ...

Da waere also die mittlere Stelle verschwunden??? Eine Suche mit

D "90"

hat es auch nicht gebracht - kann ja eigentlich nicht, es muss ja etwas
Dreistelliges sein, bloss was? "9<255>0"???

Ich habe noch anderes versucht:

Import in eine Mehrfachkategorie, dann mit m-Befehl aus dieser Kategorie
dorthin, wo ich das Zeug eigentlich hinhaben moechte:

#96
D0 "940"
m

#33
k96
m"; "
...

Das gibt Fehlermeldungen beim Import: "Eingabe/Aenderung unzulaessig", und
ein leeres Import-Ergebnis. Offensichtlich ist die Kombination von kxxf und
m"xyz" verkehrt.

Und bei der zunaechst einmal naheliegendsten Loesung mit Anwendervariablen
bekomme ich auf keine Weise mein Trennzeichen zwischen die per
Konkordanzliste erzeugten Werte, und das ist ueberhaupt das Raetselhafteste
von allem:

  Blackwell-Daten (mit Directory) -> A.CFG

al=5          1st 5 bytes hold the rec length
am=1          in decimal digits

  do the following replacement while reading input:

y .30 0      replace 1E = MARC field terminator by zero (allegro field end)
             it's also the last byte of directory!

fs=4         field start = 4 bytes after position given in directory
             (all fields start with 2 indicators + a)
fc=5         field length correction: subtract fc from directory length

  do the following replacements during transfer:

    replace Ša by ä etc.:

p Š aouAOU ä÷üÄÖÜ
p ƒ aeiouE ÿé­›œÉ
p   aeiou àèìòù
p ã aeiou âêîôû
p … nN ±
p ð cC çÇ
p  b  

#33        Blackwell-Schlagworte
D0 "940"
{ 2        Teilfeldkennung mitnehmen
m"¶"

#93         Aus Thesaurus Fachkuerzel ableiten
V t=0       Erster Durchlauf (t=0 wurde bei Primaerschluessel-Erzeugung
(           gesetzt): Ganze #33 in uth schreiben
k33
Kth
v t=1
l 0
)
V t=1      Jeder weitere Durchlauf: Aus uth erstes Teilfeld a holen, per
(          Konkordanzliste umsetzen, an #93 anhaengen - und da sollte ein
kuth       Trennzeichen dazwischen.
b 31 "a"
e 31 "b"
@A
kuth       Jetzt das vordere, bearbeitete Stueck von uth abschneiden und den
b "¶"      Rest wieder speichern.
Kth
)
l 0        Damit jetzt nicht noch der aktuelle Stand von uth ausgegeben
m";"       wird. Und das Ganze von vorn, solange uth noch existiert
           (Endlosschleife gibt es keine; ohne m wird nur das erste Stueck
           von uth ausgewertet).

@@A
"01"
"10; " 0

"0"
"74; " 0
...

"9"
0

@

Das funktioniert fast, aber eben nur fast: obwohl die Trenner zwischen den
einzelnen Werten sowohl in der Konkordanzliste selbst, als auch nochmal im
m-Befehl stehen, erscheinen in der Kategorie #93 Eintraege der Art "1074"
usw. Das gibt's doch einfach nicht!

Hilfe! Gruesse, Koczian
+----------------------------------------------------------------------------+
| Dr. Sibylle Koczian       Tel.: (0821) 598-5361                            |
| - Abt. Naturwiss. -                       -2404                            |
| Universitaetsbibliothek   Fax :           -5354                            |
| D-86135 Augsburg       e-mail : Sibylle.Koczian at Bibliothek.Uni-Augsburg.DE |
+----------------------------------------------------------------------------+



Mehr Informationen über die Mailingliste Allegro