[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