[Allegro] acon: Magische Umcodierung

Bernhard Eversberg ev at biblio.tu-bs.de
Mo Jan 5 10:38:44 CET 2015


Allen Anwendern und Lesern ein gutes Neues Jahr!

Und gut anfangen tut es denn auch für uns:

Am 19.12.2014 18:51, schrieb Thomas Berger:
>
> hier ist unbedingter Handlungsbedarf:
>
> http://d-nb.info/gnd/118585525/about/marcxml enthaelt in datafield 670
> eine Wikipedia-URL mit einem korrekt codierten Umlaut:
>
>   <subfield code="u">http://de.wikipedia.org/wiki/Gabriele_M%C3%BCnter</subfield>

>
> fuehre ich in acon folgenden Job aus,
> acon -jtest.job -bdemo2/cat  > otto.txt
>
> wobei test.job:
>
> var "http://d-nb.info/gnd/118585525/about/marcxml"
> get I
> write
>
> ...
> in otto.txt steht dann die URL als
>
> http://de.wikipedia.org/wiki/Gabriele_M*3*Cnter
>
> dabei ist das "*" in Wirklichkeit ein ASCII-1
>
> das "%C" und "%B" aus den gelesenen Daten ist also irgendeiner
> Magie unterzogen worden, die erstens nicht erwuenscht ist und
> zweitens wohl ziemlich entgleist.
>
Das liegt ausnahmsweise nicht an einem Bug von uns, sondern an einem
in der Funktion  gethttp()  in gethttp.cpp, die wir aus freier Quelle
übernahmen.

Versuchen Sie es so, indem Sie das freie Hilfsprogramm "curl"
einspannen:

set c0
var "c:\curl\curl http://d-nb.info/gnd/118585525/about/marcxml >otto.xml"
call

dann klappt's.

Was nicht heißt, daß wir uns der fehlerhaften Fremdfunktion nicht auch
noch annehmen sollten, aber eins nach dem andern - das Jahr ist ja noch 
lang.

B.E.



> Das passiert bereits beim Einlesen, wie man durch ergaenzen von
>
> ins _%_XXX_
> ins _^A_YYY_
>
> hinter dem "get I" verifizieren kann (und sowohl die iV als auch
> die Kopie in der iV2 haben das Problem).
>
>
> 2.
> write Fhttp://d-nb.info/gnd/118585525/about/marcxml
>
> oder
>
> var Fhttp://d-nb.info/gnd/118585525/about/marcxml
> write iV
>
> holen zwar die Daten von der URL, wie ich von der Laufzeit
> schliessen kann, schreiben aber nichts in die Ausgabe
>
> (etwas ungluecklich ist, dass dieser spezielle cString
> auch noch in xwrite.rtf aufgefuehrt ist, als sei es
> eine Kommando-Variante wie "write ^" oder "write external"
>
> 3.
> open http://d-nb.info/gnd/118585525/about/marcxml
>
> ist fuer acon nicht implementiert (auch so dokumentiert), die
> Frage ist allerdings, warum: Immerhin ist das die zwar umstaendlichste
> Methode fuer den Zugriff auf Daten, im Zweifelsfall aber die
> kontrollierbarste und in Job-Dateien, die erfahrungsgemaess seltener
> und weniger laessig als Flex-Dateien programmiert werden, lohnt
> sich der Aufwand sauberster Loesungen durchaus manchmal...
>
> viele Gruesse
> Thomas Berger
>
> _______________________________________________
> Allegro mailing list
> Allegro at biblio.tu-bs.de
> http://sunny5.biblio.etc.tu-bs.de/mailman/listinfo/allegro
>




Mehr Informationen über die Mailingliste Allegro