vorschlag: benutzereingabe in exportparametern, war: Re: F: Teilf

Lutz Kotoll lutz.kotoll at tu-clausthal.de
Di Mai 27 14:49:40 CEST 1997


Hi,

> >Ihre Ueberlegungen sind vermutlich ziemlich "quer" zu dem, wie
> >die PV meiner Meinung nach implementiert ist und gehen ja eher
> >in die Richtung, mit Mitteln der Exportsprache den Ablauf der
> >Abfragemaske zu beeinflussen.
> >
> Stimmt, weil es so wenige Moeglichkeiten gibt, dies innerhalb der
> Abfrageliste zu tun. 
[...]
> Waere aber viel praktischer als alles, was ich mir bisher dazu ueberlegt
> habe. Und wenn der Ablauf der Abfrageliste so kompliziert ist und am
> liebsten nicht mehr angefasst werden soll: [...]

diese s"atze aus der diskussion von frau koczian und herrn berger erinnerten
mich an einen gedanken, den ich vor einer weile schon hatte, als ich mich
selbst "uber die (trotz aller funktionalit"at) unflexible abfrageliste
ge"argert hatte.

vielleicht k"onnte man auch mit den mitteln der exportsprache eine
eingabem"oglichkeit einrichten. zu diesem zwecke w"aren (soweit ich das
"uberhaupt beurteilen kann) nur wenige erg"anzungen der exportsprache
n"otig.

hier folgen meine ideen dazu (als grundlage f"ur eine hoffentlich fruchtbare
diskussion):

1. es gibt einen weiteren abschnitt in der indexparameterdatei (oder eine
neue parameterdatei, in der dieser abschnitt steht - evtl. kann dann auch der
pv-abschnitt heir drin stehen - dann m"u"ste nat"urlich die
indexparameterdatei zus"atzlich geladen werden).
dieser abschnitt wird angesprungen, sobald die abfrageliste aus der .cfg
fertig abgearbeitet wurde (oder sofort, falls es dort kein gibt).
dieser abschnitt k"onnt z. b. 'E' hei"sen (falls E nicht schon belegt ist).

dieser abschnitt k"onnte so aussehen (vgl. Systemhadbuch (v14), Anh. A.2
'schleifen in der abfrageliste'):

('$' ist wie "ublich das teilfeld-trennzeichen ascii 31)

beispiel 1 (ohen indikator, t2, k4, $A)

E
#-A
?85: v" Serie ; Band "
#85- +D =!"" Z
?85- $  v" Koerperschaft : "
      ^ leerzeichen als teilfeldkennung
?85- $i v"          ISSN : "
#+A
#-D

erl"auterungen:

2. die mit '?' beginnenden zeilen bewirken eine abfrage, allerdings wird im
gegensatz zu '#q' der bereits produzierte text ausgegeben und die abfrage
erscheint nicht in einem eingabefenster, sondern wie in der abfrageliste
regul"ar im ausgabetext. im gegensatz zu '#' und '!' als erstem zeichen, die
ja f"ur unterschiedlich umcodierung sorgen, erfolgt hier keinerlei
umcodierung.

3. analog zu zeilen wie '#30. ...' oder '#30. ++ ...' bewirkt das ':' in
'?85: ...', da"s nach dem ersten *noch nicht belegten* wiederholungszeichen
gesucht wird und dies benutzt wird (es wird au"serdem als
standard-wiederholungszeichen gemerkt).

4. der manipulationsbefehl 'v' gibt den vorlagetext (prompt) aus. dieser
wird nicht in die kategorie mit aufgenommen. anschlie"send wird auf eine
eingabe gewartet, die mit *enter* abzuschlie"sen ist. die eingabe wird in
die kategorie "ubernommen.

3a. wie bei punkt 3. wirkt auch das '-' hinter einer kategorienummer: diesmal
wird das letzte durch ein ':' als standard-wiederholungszeichen gemerkte
zeichen benutzt (also dieselbe kategorie wie bei vorhergehenden '..-' zeilen
bis zur"uck zur letzten '..:' zeile).

5. der manipulationsbefehl '=' erh"alt eine zweite bedeutung: folgt keine
benutzerkategorie sondern ein ausdruck der form '"..."' oder '!"..."' (also
als ganzer befehl '="..."' oder '=!"..."'), wird ein vergleich mit diesem
vorgegebenen string durchgef"uhrt (im ersten fall test auch gleichheit, im
zweiten auf ungleichheit). f"allt der test positiv aus, wird die exportzeile
fortgesetzt und ggf. ein bedingter sprung ausgef"uhrt, sonst erfolgt der
abbruch der zeile.

6. der manipulationsbefehl '$' (ascii 31, teilfeldtrennung) bewirkt in einer
'?...'-zeile, da"s die eingabe im entsprechenden teilfeld abgespeichert
wird, der rest der kategorie aber unver"andert bleibt.

mehr "anderungen sollten nicht n"otig sein um das oben angegebene beispiel
ablaufen lassen zu k"onnen.

gibt es indikatoren wie in beispiel 3 an der angegebenen stelle, k"onnte man
statt
600 10$$x" Subdivision: "
schreiben:
?600- j10 $x v" Subdivision: "

7. der manipulationsbefehl 'j' gibt an, unter welchem indikator der text
abgespeichert werden soll.

falls ein teilfeld mehrfach vorkommen darf, mu"s auch daf"ur eine
unterscheidung sein.
beispiel ($A):

#-A
?35: $$a v" Verfasser: "
#35- +A $$ =!""
#35- +D =""
?35- $t v" Titel: "
 ...
#+A
#-D

6a. der manipulationsbefehl '$$a' in einer '?'-zeile bewirkt, da"s im
gegensatz zu '$a' ein weiteres teilfeld a angeh"angt wird anstatt ein evtl.
vorhandenes teilfeld a zu ersetzen.

6b. der manipulationsbefehl '$$' in einer '#'- oder '!'-zeile bewirkt, da"s
die letzte eingabe zum arbeitstext gemacht wird (das kann auch eine leere
eigabe sein!).

das beispiel oben besteht aus zwei geschachtelten schleifen. (1) die
schleife, die '35' wiederholt und (2) die schleife, die '$a' wiederholt. die
erste '#35-'-zeile wiederholt die innere schleife ('$a'), wenn die lezte
eingabe nicht leer war. die zweite '#35-'-zeile beendet die "au"sere
schleife ('35'), wenn die letzte 35er kategorie noch leer ist.

schlie"slich noch die '"ubersetzungen' einiger anderer formen:

xxf"Text"+M
xxfabc"Text"
xxf"Text"abc<
xxf"Text".

wird zu

?xxf +M v"Text"
?xxf p"abc" v"Text"
?xxf v"Text" p"acb" <
?xxf v"Text" .

8. ein bedingter sprungbefehl wird nach einem 'v'-manipulationsbefehl genau
dann auch ausgef"uhrt, wenn die eingabe nicht leer war.

8a. ein pr"afix vor der eingabe erscheint als unver"anderlicher text am
anfang der kategorie.

8b. ein pr"afix nach dem 'v'-befehl erscheint als editierbare vorgabe bei
der eingabe (d. h. die eingabeaufforderung erscheint erst nach abarbeitung
der zeile.

9. der manipulationsbefehl '<' bewirkt, da"s die unter 8b gemachte vorgabe
ohne eingabe "ubernommen wird (hierf"ur reicht aber auch der
manipulationsbefehl 'M' mit anschlie"sender kontrollausgabe)

10. der manipulationsbefehl '.' bewirkt, da"s diese kategorie aus dem
hintergrundspeicher geholt wird und als eitierbare vorgabe vorgelegt wird.

f"ur die 'typ'-abfrage habe ich noch keinen vorschlag, scheue mich aber auch
ein bischen, diesen einzuf"uhren, da die dortige eingabe als sprungmarke
interpretiert wird und bei vielen (oder bei nachtr"aglich eingef"uhrten)
solchen abfragen zu sehr kryptischen einzugebenden zeichen f"uhrt.

viele dieser manipulationen lassen sich sicher auch "uber den 'M'-befehl
und andere l"osen, das w"are aber sehr umst"andlich und un"ubersichtlich.


diese vorschl"age sehen zwar nach sehr viel aus, sollten aber (soweit ich
das beurteilen kann) noch einigerma"sen einfach implementiert werden
k"onnen.

die vorteile dieses vorgehens sind, da"s die funktionallit"at der
abfrageliste in der exportsprache repliziert wird mit der gleichzeitigen
m"oglichkeit, die volle m"achtigkeit der exportsprache nutzen zu k"onnen.
au"serdem l"a"st sich diese funktionalit"at gewinnen, ohne in die (offenbar
schwer zu wartenden) abfrageliste eingreifen zu m"ussen.

all diese punkte stelle ich hier offen zur diskussion. alle vorschl"age zur
benutzung bestimmter zeichen sollten auch nur als solche betrachtet werden
und k"onnen gerne durch besser geeignete zeichen ersetzt werden. erst recht
gilt das f"ur konzeptuelle verbesserungen!


ich hoffe ich habe nicht zu viel ihrer zeit und bandbreite verbraucht

\bye{Lutz}

-- 
Lutz.Kotoll at tu-clausthal.de

There is ONE reason to use Windows95 -- it has multitasking:
you can boot the system and crash it simultaneously!




Mehr Informationen über die Mailingliste Allegro