[Allegro] avanti-x->FLEX: find ( CLA 27.3.2 ) geht nicht, warum?
Alexander Jahnke
jahnke at mail.sub.uni-goettingen.de
Mi Nov 9 08:21:41 CET 2005
Hallo Herr Jakobza,
mein erster Verdacht ist, dass es sich um ein Problem der Zeichenersetzung handelt,
denn die Suche mit dem Punkt ist - vorausgesetzt, Sie benutzen die die $A-
Kofiguration, so wie sie standardmäßig ausgeliefert wird - auch mit a99 in Register 7
nicht möglich (Probieren Sie mal "f CLA &17.82?" in der Demo-Datenbank, eigentlich
sollten 19 Treffer kommen)
Der Hund liegt in der cat.api begraben:
#-7
#u1 +# y0 i4,G
#u1 +# y0 i4,H
#u1 +# y0 i4,S
!u1
#+#
sorgt dafür, dass die Eingabe des Benutzers vor der Suche umkodiert wird und zwar
nach der q-Tabelle (durch "!u1"). Eingaben, die mit G,H oder S anfangen werden nicht
umkodiert (wg. "y0", stünde y0 nicht da, würden sie nach der p-Tabelle umgesetzt).
Die Tabellen finden Sie in der Datei i.apt. Dort heisst es
q !// =1 delete all codes from ! to /
q & + but reactivate a few:
q + +
q , ,
q - -
q / 47
was bewirkt dass alle Zeichen von 0x21 bis 0x2F ersatzlos gestichen werden, wobei
&,+,# und / dann doch wieder aktiviert werden. Der Punkt (0x2E) kommt also gar nicht
beim Avanti-Server an, steht aber im Index (Zeile 478 in der cat.api: !u1 f"?" y0 p"|7",
sorgt dafür, dass Kategorie #30k ohne Umkodierung in den Index geschrieben wird ).
Dh entfernen Sie aus der cat.api in Zeile 478 das "y0" (dann neu indexieren) oder
fügen Sie in i.apt eine Zeile q . 46 ein (ich weiß allerdings nicht, ob das dann
anderswo zu unerwünschten Effekten führen kann).
Das wäre meine Idee zu Ihrer Frage, allerdings kommt es mir merkwürdig vor, dass
bislang noch niemand sonst das Problem bemerkt hat, will sagen: möglicherweise
befinde ich mich hier auf dem Holzweg, dann würde ich mich auch über ein Bisschen
Nachhilfe aus der Liste freuen.
Herzlichen Gruß,
Alex Jahnke
Am 8 Nov 2005 um 13:43 hat Fred Jakobza geschrieben:
> Hallo Listenteilnehmer,
>
> ich habe ein Problem mit der Umsetzung des "find" Befehles in den
> Perlscripten für die Kommunikation mit dem avanti-x.
>
> Es geht speziell auf den Zugriff des Registers 7 (Klassifikation =
> CLA). Unter FLEX gehen folgende Befehle nicht:
>
> find ( CLA 27.3.2 ) oder find ( CLA |27.3.2| ) oder in ".." oder '..'
> find ( CLA 27.3.2! ) oder find ( CLA 27.3? )
>
> Es geht aber folgendes:
> find ( CLA 27? )
>
> Also nehme ich an, daß für die Abfrage der Punkt "." substituiert werden
> muss. Sehen Sie da eine Möglichkeit?
>
> Vielen Dank und viele Grüße
>
> Fred Jakobza
>
> --
> Fred Jakobza
> Software Development
> EsPresto AG
> Breite Str. 30-31
> 10178 Berlin/Germany
> Tel: +49.(0)30.90 226.750
> Fax: +49.(0)30.90 226.760
> jakobza at espresto.com
> _______________________________________________
> Allegro mailing list
> Allegro at biblio.tu-bs.de
> http://sun250.biblio.etc.tu-bs.de/mailman/listinfo/allegro
Mehr Informationen über die Mailingliste Allegro