[Allegro] Provozierte Verhinderung des Index-Zugriffes

Bernhard Eversberg ev at biblio.tu-bs.de
Fr Sep 2 08:15:06 CEST 2005


Heinrich Allers schrieb:
> 
> Wenn ich bei der Demo-Datenbank sowohl in i.apt die Zeile
> q é e
> (é = e mit accent aigu) als auch in o.apt die Zeile
> o .130 233
> (130 ASCII-Code von é) deaktiviere, dann ist über
> balzac, honor...
> in Reg. 1 kein Zugriff auf den Datensatz mit dem Titel "Die menschliche 
> Komödie" mehr möglich!
> 
> Warum ist das eigentlich so? Mag ja sein, daß mein Problem etwas 
> konstruiert und praxisfern ist, aber die theoretischen Hintergründe für 
> die Nichtzugriffsmöglichkeit unter den genannten Bedingungen würde mich 
> interessieren.
> 
Wir haben es mit strenger Logik zu tun:

1. Man gibt ein:  Balzac, Honoré
    (Läßt man den Akzent weg, klappt der Zugriff übrigens immer!)
    Man sieht es nicht, aber das é hat den Code 233

2. Per o.apt macht daraus das Programm  Balzac, Honoré, aber mit
    einem DOS-é, also 130
    (denn die Eingabe ist automatisch ANSI, daraus wird dann ASCII)

3. Der Abschnitt #-1 in den Indexparametern (denn die Suche geht ja
    über den Index 1) macht aus dieser Eingabe  balzac, honore
    Und genau das steht ja im Index und wird ergo gefunden.
    (Denn i.apt macht aus DOS-é dann das e: aus 130 die 101 = e)

Schritt 2 ist nötig, weil die Daten nun mal DOS-Code sind - anders würde
PRESTO nicht mehr funktionieren, die Eingabe an einer Windows-Oberfläche
ist aber ANSI (é = 130 bzw. 233)

Schritt 3 ist nötig, weil im Index nun mal e steht und nicht é. Stünde
da é, würde das alphabetische Ordnen des Index nicht korrekt klappen, 
denn das Ordnen geht numerisch nach dem Code, und 130 ist eben groesser
als 101.

Alles das sollte vollkommen transparent sein? Ist es ja auch,
wenn man nichts an den genannten Dateien verändert. Aber irgendwo
stattfinden MÜSSEN diese Dinge, in JEDEM System, das ist hoffentlich
klar. allegro legt das nur alles offen und macht es zugänglich.


MfG B.E.




Mehr Informationen über die Mailingliste Allegro