[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