[Allegro] Windows-Fehler bei Indexierung mit kleiner, aber spezieller cat.api
Anando Eger
a.eger at aneg-dv.de
So Feb 7 17:00:49 CET 2010
Hallo Herr Allers,
Herr Berger hat schon recht - es werden unter Umständen zu viele Einträge.
Um das Verfahren etwas zu vereinfachen, habe ich es mal neu umgesetzt.
Der Algorithmus:
+-----------------------------------------------
| ! für alle Token der Zeichenkette
| +-------------------------------------------
| | ! für alle Token der Zeichenkette
| | +---------------------------------------
| | | ? | Glieder gleich
| | |---+-----------------------------------
| | | n | Indexeintrag erzeugen
+-----------------------------------------------
ergibt in allegro Export:
(Ihre api als Vorbild genommen)
----------------------------------------------------------------------------
zl=0
zm=0
ad=0
ag=0
il=150
i0=72
|1="1 : Spezialregister"
|a="Experimentelle DB"
ak=zz+0 zz+a
#-0 Kurztitelindex.
#20 "|0"
#+#
#-a Reg. 1 - Beginn
#nr "1!" dxz axz // Flag: beim ersten Index keinen Code 8 ausgeben
#nr "0!" dxn axn
#uR1 dR1 e0
#20 u F" " =R1
#uR1 +f e0
#+- falls kein #20, hier Schluß
#-f
#20 u F" " dR2 aR2
#-A // aeussere Schleife: erstes Token x1 ermitten
#uR1 e" " dx1 ax1
#ux1 lxl e0 // zu kurze Token raus
#uxl +E x"<2" e0
#-I // innere Schleife: zweites Token x2 ermitteln
#uR2 e" " dx2 ax2
#ux2 lxl e0 // zu kurze Token raus
#uxl +G x"<2" e0
#ux2 dxy axy
#ux1 =xy+G e0 #zz 0 // Fall: gleiche Token auslassen
#uxz +#ux1 e0 // Index bilden
#t{ 8 }
!ux1 "|1"
!ux2 " "
#uxz dxz e0
#uxn x"+1" dxn axn
#uxn +# x">100" e0 // hier Abbruchkriterium bei zu vielen
// Elementen ##!!##
#-G
#uR2 +I b" " dR2 aR2 // Ende innere Schleife
#-E
#20 u F" " dR2 aR2 // Ende der aeußeren Schleife
#uR1 +A b" " dR1 aR1
#uR1 dR1 e0 // aufraeumen
#uR2 dR2 e0
#ux1 dx1 e0
#ux2 dx2 e0
#uxy dxy e0
#+#
ti
to
----------------------------------------------------------------------------
Jetzt können Sie mal mit dem Wert bei ##!!## spielen ;-)
vg1
On 6 Feb 2010 at 23:35, Heinrich Allers wrote:
> Lieber Herr Berger:
>
> ich beschrieb meinen Indexschlüsselerzeugungsalgorithmus so:
>
> > > Alle möglichen Permutationen von je 2 durch Leerzeichen getrennten Zeichenfolgen sollen also in Register 1 eingetragen
> > > werden.
>
> und Sie geben mit Recht zu bedenken:
>
> > das sind bei folgender #20 aus der Demodatenbank ganz schoen viele:
> >
> > Bachman Turner Overdrive : you ain't seen nothing yet. Lookin' out for no. 1.
> > Four wheel drive. Shotgun rider. My wheels won't turn. Thank you for the
> > feelin'. Jamaica. Hey you. Roll on down the highway. Freeways. Takin' care of
> > business. Down down. Let it ride. Rock and roll nights. Flat broke love. Can we
> > all come together.
> >
> > (etwa 41kB in > 3000 Schluesseln werden durch ein einziges ak-Statement erzeugt)
>
> und fahren fort:
>
> > Entferne ich den obigen Titel,
>
> dessen #20 sich durch 57 die Permutationszahl hochtreibende Leerzeichen auszeichnet
>
> > sowie
> >
> > 10'000 [Tenthousand] Miles : Queen of hearts. Wagoner's land. Black is the color
> > of my true love's hair. House of the rising sun. Henry Martin. All my trials.
> > 10'000 miles. John Riley. Go 'way from my window. Mary Hamilton. Once I had a
> > sweetheart. Silver dagger. Railroad boy. Old Blue. East Virginia. Lily of the West.
>
> mit nur 2 Leerzeichen weniger
>
> > aus der Datenbank, so laeuft die Indexierung durch ...
>
> Bei mir mußte ich dafür noch den Titel vom Autor Quincy Jones mit 45 Leerzeichen in #20 löschen, aber
> dann lief die Indexierung auch bei mir "crashfrei" durch.
>
> Besten Dank erst einmal für diesen Hinweis auf die Grenzen - der Blick dafür war mir zwischendurch
> vollkommen verlorengegangen.
>
> ###
>
> Andererseits: Ich schaute mir (Allegros Hilfedatei) grenzen.htm an, und dort steht unter "Indexeinträge":
>
> Das Programm INDEX allerdings kann beliebig viele
> beliebig umfangreiche Einträge je Satz erzeugen:
> siehe Vb154a, 25.4.2002.
>
> So besehen frage ich mich immer noch, warum Indexierungslauf "crasht"!
>
>
> Mit besten Grüßen von
>
> Heinrich Allers
>
> allers at t-online.de * http://www.h-allers.de
> Netztagebuch: http://heinrich-erlo-ger.blogspot.com/
> Bitácora: http://heinrich-erlo-spa.blogspot.com/
>
Mehr Informationen über die Mailingliste Allegro