[Allegro] Re: index -fa1

Anando Eger a.eger at aneg-dv.de
Do Feb 2 14:15:32 CET 2012


Liebe Listenleserinnen und -leser,

ich hatte folgendes irrtümlich an die Allegro-OEB-Liste geschickt:

| ist es so, dass "übriggebliebene" Ersetzungsschlüssel
| mit index -fa1 nur aufgelöst werden, wenn das Ersetzungs-
| steuerzeichen an erster Position im Index steht?
| 
| Beispiel:
| 
| In einem Datensatz steht:
| #70 _xxx
| 
| Stammsatz dazu: 
| #00 a12345
| #8n Testquelle
| #8na xxx
| 
| (alle V14-Schlüssel werden richtig erstellt, Primärschlüssel 
| aus #00, Ersetzungschlüssel aus #8na)
| 
| Im Index soll daraus entstehen: Quelle: Testquelle 
| 
| Mit a99 funktioniert das, mit index.exe (aktuelle Version)
| entsteht nur 
| 
|   Quelle: _xxx
| 
| Lasse ich den Vorsatz "Quelle: " weg, wird _xxx in a99
| als auch per index.exe richtig aufgelöst.
| 
| Warum erstellt a99 den Schlüssel richtig, index.exe nicht?


Herr Eversberg antwortete:

> a99 hat in dem Moment des Speicherns nur den einen Satz vor sich und
> den kompletten Index und kann daher die V14-Ersetzungen während der
> Prozedur der Schlüsselerzeugung alle auflösen.
> 
> Aber stellen Sie sich vor, was index tun müßte, um solche Ersetzungen
> aufzulösen, die Sie im Auge haben: Es müßte den gesamten Index
> durchfilzen, jede einzelne Zeile. Das ist prohibitiv. Realistisch ist
> nur - und genau das tut es - in jedem Register die Zeilen aufzusuchen,
> die mit _ beginnen, das geht schnell, und diese dann bearbeiten.
> M.a.W., es gibt keine Medhode, schnell alle Indexzeilen zu finden, in
> denen etwas bestimmtes irgendwo mittendrin vorkommt.
> 
> Theoretisch könnten Sie sich mit  qrix -fd ...  den gesamten Index in
> eine Textdatei wandeln, diese mit Perl so bearbeiten, daß alle
> betroffenen Zeilen selektiert und behandelt werden, und dann diese so
> umwandeln, daß a99 sie mit  xadd  einfügen kann. acon kann das aber
> nicht.

Inzwischen habe ich einen workaround für das oben beschriebene Problem:
(der Primärschlüssel muss dazu aus der #8na gebildet werden)

#70 +X y0 b"_" e" " |90   // greift nur, wenn Ersetzung nicht erfolgte
!70 y0 u p"|9Quelle: "    // für a99      
#+#

#-X                       // für index.exe
#8n y0 u p"|9Quelle: " 
#<
#+#

Scheint zu funktionieren.

Viele Grüße
Anando Eger

---------------------------------------------------------------------
Anando Eger Datenverarbeitung
Herr Dipl.-Ing. Anando Eger
Gustav-Voigt-Str. 24
01156 Dresden
Tel.: +49 (0)351 454 1236  http://www.aneg-dv.de
Fax: +49 (0)351 454 1238  mailto:a.eger at aneg-dv.de
---------------------------------------------------------------------





Mehr Informationen über die Mailingliste Allegro