Analyze

Thomas Berger ThB at gymel.com
Do Aug 8 15:01:02 CEST 2002


Liebe Frau Koczian,

am 30.7. schrieben Sie:
 
> ich versuche mich durch Analyze durchzukaempfen. Zuerst mal bekomme ich
> eine Menge Fehlermeldungen, die sich anscheinend auf das Skript selbst
> beziehen:
> 
> Das ist der Aufruf:
> 
> C:\Allegro\ANALYZE\APIDEMO>perl ..\analyze.pl -src -o cat.api ./src/catoalf.api
> 
> und das kommt heraus:
> 
> Unrecognized escape \T passed through at ..\analyze.pl line 6.
> Ambiguous call resolved as CORE::index(), qualify as such or use & at
> ..\analyze
> .pl line 2001.
> Ambiguous call resolved as CORE::index(), qualify as such or use & at
> ..\analyze
> .pl line 2179.
> Schalter: -2 -index -mute -var -src
> Optionen:
> Undefined value assigned to typeglob at ..\analyze.pl line 1572.

...

> Ist die Version auf dem FTP-Server aktuell?

Nein, die ist noch aelter, als die auf meiner Homepage (von 1998, bringt
die meisten von Ihnen reklamierten Warnungen nicht mehr). Ich habe das
zum Anlass genommen, meine diversen "Privatversionen" noch einmal zu
vereinheitlichen und noch einen Fehler (Indexierung von "Zwischenteil"
0 in indirekten Postfixen) herauszubauen und sowohl die interaktive
Version <URL: http://www.gymel.com/cgi-bin/anaserv.pl> als auch die
zum Download <URL: http://www.gymel.com/tools/analyze.html> zu 
aktualisieren.

Die Version auf dem Braunschweiger ftp-Server (und auf den
Allegro-CD's?)
habe ich naturgemaess nicht aktualisiert, das dortige ANALYZE.ZIP oder
ANALYZE.LZH entspricht dem "Beispielpaket Generierungsoptionen"
anademo.zip
auf meiner Website.


>                                              Mit der interaktiven Version
> habe ich es auch versucht, aber da ist das Speichern der Ergebnisse arg
> umstaendlich. Ausserdem gelingt es mir da nicht, die Analyse der
> Anzeigeparameter im Datenverzeichnis zu erzwingen, wenn es gleichnamige
> Parameter in dem als Parameterverzeichnis genannten Verzeichnis gibt. Nenne
> ich aber das Datenverzeichnis als Parameterverzeichnis, dann werden die
> Hilfstabellen im Programmverzeichnis nicht gefunden.

anaserv.pl verlaesst sich hier auf die Avanti-Befehle "help index", 
"help param <name>" und "help table <name>". Ich hatte auch immer
angenommen, fuer Avanti sei das Verzeichnis mit der Datenbank das
Datenverzeichnis; dasjenige, wo avanti-w gestartet wurde, sei
das Arbeitsverzeichnis und dementsprechend sei das explizit angegebene
Verzeichnis "Parameterpfad" hinter "&" am Anfang des Jobs soetwas
aehnliches wie das Programmverzeichnis. Ich habe das aber nie 
nachgeprueft und es ist auch irgendwie logisch, die Dateien im 
vom Benutzer angegebenen Verzeichnis nicht erst nach zwei Fehlversuchen
zu nehmen.

Ich selber achte stets darauf, keinen Parameterpfad anzugeben:
Erst einmal sollte der Client nichts ueber die Verzeichnisstruktur
des Servers wissen und zum anderen finde ich es schick, durch ein
bischen Redundanz in den Dateien dafuer zu sorgen, dass sie nie
vergeblich gesucht werden. Zum Dritten werden in der Praxis meistens
Datenbanken von einem Ort zum anderen (auf dem Server mit avanti)
verschoben, wenn relevante Dateien in zwei Verzeichnissen sind,
klingelt meistens zwischendurch das Telefon und dann hat man eine
merkwuerdig inkonsistente Installation...


> Zu den Meldungen, die das Skript selbst erzeugt: was ist ein "langer Sprung"?

Um Sprungmarken #-M zu sparen, kann man ja auch statt +M einen
Sprung +#kkf einsetzen. Der ist nach meiner Erinnerung sogar
schneller, weil die Parameterdatei von allegro dann nur von der
Aktuellen Stelle an nach dem Sprungziel durchsucht wird und nicht 
vom Anfang an. "analyze" bemerkt den Sprung +#kkf und liest dann
mit, wenn vor Erreichen der Sprungmarke #kkf ein t-Befehl (Inklusion
einer Zwischentabelle) kommt, gibt es die Warnung bezueglich "langer
Sprung", desgleichen wenn ein solcher Kategoriesprung aus einer
Inklude-Tabelle herausspringt. Ich finde die Warnung gerechtfertigt,
weil man in dieser Situation durch Aenderungen in einer Datei
u.U. die Sprungstruktur einer anderen Datei zerstoert, ohne dass
man das bemerken kann.


> Und schliesslich: das Ganze gehoert in den Kontext meines Problems mit
> Schreibschutz und Anzeige: die Anzeigeparameter funktionieren nicht
> korrekt, wenn eine Datenbankdatei schreibgeschuetzt ist. Kann da analyze
> ueberhaupt helfen?

Unwahrscheinlich, aber nicht auszuschliessen. Syntaxfehler in 
Parameterdateien haben meistens ueberhaupt keinen Effekt, manchmal
aber ganz vertrackte, "globale".

viele Gruesse
Thomas Berger




Mehr Informationen über die Mailingliste Allegro