[Allegro] Zusammenfassung von Kategorien

Fischer, Thomas fischer at sub.uni-goettingen.de
Fr Feb 26 16:07:13 CET 2016


Hallo Herr Berger,

wie immer sind Ihre Hinweise sehr hilfreich.

>> 1. Wenn ich "Global" -> "Globale Manipulationen" aufrufe, sollte ich
>> eine Exportparameterdatei wählen können, diese werden aber nicht
>> angezeigt. Erst wenn ich deren Namen oder etwas wie "*.hpr" in die
>> Namenszeile eingebe, kann ich die Datei auswählen.
> 
> Es werden fuer globale Manipulationen nur g-*.?pr angeboten. Und da
> die Dateiauswahlbox zunaechst das Datenverzeichnis anbietet, taucht da
> normalerweise nichts auf…

Aha, das wusste ich nicht, hilft aber weiter. So etwas könnte an passender Stellt (z.B. in 1.5.4) auch in der Dokumentation stehen.

>> 2. Wenn man "Globale Manipulationen" erneut aufruft, wird die letzte
>> gewählte Exportparameterdatei angeboten, aber nicht neu eingelesen, dazu
>> muss sie neu ausgewählt werden. In Verbindung mit 1. macht das das
>> Testen mühsam. (Das wäre vielleicht überall eine Erleichterung, da das
>> Auswählen heutzutage immer aufwändiger ist als das neu Einlesen. Andere
>> Exportparameterdateien kann man per FLEX neu laden, geht das hier auch?)
> 
> Es *ist* die aktuelle Exportparameterdatei, die fuer Globale
> Manipulationen benutzt wird.

Hier gibt es wohl ein Missverständnis. Ich teste mein Skript, indem ich es verändere und immer wieder auf dieselbe Ergebnismenge loslasse. Bei jedem Testlauf muss ich die Datei neu auswählen, sie könnte aber – das war mein Vorschlag – auch immer wieder neu eingelesen werden, denn sie wird beim Aufruf ja angeboten.
Die andere Situation, dieselbe globale Manipulation auf immer neue Ergebnismengen anzuwenden, würde kaum Schaden nehmen, wenn die Exp.-Param.-datei immer neu eingelesen würde.

>> 3. Das überwindend erscheint es einfach, ein kleines Skript zu erstellen:
>> 
>> #-#
>> #uxy dxy
>> #uyz dyz
>> #451. ++ P>X
>> #uyz p'#080p' t2 M
>> #uxy p'#451 ' M
>> #+#
>> #(X
>> #cc +x c'Nachlass' Axy
>> #cc P'; ' Ayz
>> #-x
>> #cca e5 P'  ' M
>> #)X
>> 
>> Leider leistet das nicht ganz das gewünschte:
>>>> es wird nur jede *zweite* Folgekategorie angesprungen und
>> ausgewertet. Warum dies? Steckt in meinem Skript ein Gedankenfehler oder
>> fehlt vielleicht eine strategische Null an geeigneter Stelle?
> 
> Der "Iterator", der durch die Fortsetzungen von #451 haspelt,
> wird durch die parallel dazu erfolgenden Aenderungen am
> Kategorienspeicher massiv beeintraechtigt (Ihr Rueckspeichern
> #cca e5 P'  ' M
> im Unterprogramm #(X).

Das sehe ich ein, das hängt natürlich daran, dass die Veränderung direkt wirkt und nicht erst am Ende der Bearbeitung in die Datei übertragen wird. Ich hatte erwartet, dass mit einer Kopie gearbeitet wird, hätte das am Ergebnis aber erkennen können.

> Sie *muessen* zuerst alle Aenderungen *und* geplanten Loeschungen
> ueber die von Ihnen skizzierte Schleifenkonstruktion in einer
> Anwendervariablen sammeln, und anschliessend koennen Sie die dann
> in den Kategorienspeicher zurueckspeichern.
> 
> [Das Problem ist nicht spezifisch fuer die Exportsprache oder
> fuer die allegro-Sprachen, in allen Programmiersprachen kann
> das analoge u.U. tueckisch werden]

Ja, in anderen Programmiersprachen kann man da dann rückwärts zählen.
Da das hier nicht geht, wird es etwas komplizierter. Falls jemand interessiert ist, hier die funktionierende Variante (vielleicht geht es ja auch eleganter):

#-#
#uxy dxy
#uyz dyz
#451. ++ P>X
#-y
#451. ++ P>Y
#451. +y e0

#uyz p'#080p' t2 M
#uxy p'#451 ' M
#+#

#(X
#cc +- c'Nachlass' Axy
#cc P'; ' Ayz
#)X

#(Y
#cca e5 M
#)Y


Mit besten Grüßen
Thomas Fischer

-------------- nächster Teil --------------
Ein Dateianhang mit Binärdaten wurde abgetrennt...
Dateiname   : signature.asc
Dateityp    : application/pgp-signature
Dateigröße  : 842 bytes
Beschreibung: Message signed with OpenPGP using GPGMail
URL         : <http://bibservices.biblio.etc.tu-bs.de/pipermail/allegro/attachments/20160226/6c988254/attachment.sig>


Mehr Informationen über die Mailingliste Allegro