IMPORT bugs & wishes

Winfried Goss goss at ifs.th-darmstadt.de
Do Jul 4 22:53:52 CEST 1996


Hallo allerseits,

hier ein paar Bugs, die allerdings eher unter die Kategorie Fehler-
fortpflanzung fallen (nicht 14c-spezifisch):

  Globale Ersetzungen funktionieren nicht bei ISO-Datensaetzen (Typ D):
  IMPORT.EXE haengt sich ohne Abbruchsmoeglichkeit auf.

  Mehrfachbesetzung m"xyz":
   * hier darf zwischen  m  und  "xyz"  kein Leerzeichen stehen;
     m "xyz"  wirkt wie  m .
   * folgt der Befehl  m"xyz"  einem Postfix-Speicherbefehl  W CS ,
     so werden Folgekategorien ohne "xyz" aneinandergehaengt. 
   * folgt der Befehl  m"xyz"  einem Praefix-Speicherbefehl  w CS ,
     so wird den Folgekategorien kein CS vorangestellt.

Und hier zwei Erweiterungsvorschlaege fuer die Import-Sprache:

1.
Bei der Komposition einer Kategorie aus mehreren (Teil-)Feldern ist es
oftmals wuenschenswert, das Vorhandensein eines (Teil-)Felds zu pruefen
und dessen Inhalt ggf. zu uebernehmen, ohne die Abarbeitung des Para-
graphen bei Nichtvorhandensein abzubrechen. Positionierungs- und Pruef-
befehle gibt es hierfuer genuegend, was macht man aber, wenn die Pruefung 
fehlschlaegt? Dann hat man statt des Teilfeldes den kompletten Arbeitstext
vorliegen, den man gar nicht haben will, der sich aber nicht unbedingt
von dem Text eines Teilfeldes erkennbar unterscheiden muss.

Hier kann man tricksen: z. B. ein Sonderzeichen bei der Teilfeldmanipula-
tion einfuegen, anschliessend den Arbeitstext auf dieses Sonderzeichen 
pruefen, bei Nichtvorhandensein die Laenge des Arbeitstextes auf Null
setzen bzw. anderenfalls das Sonderzeichen mittels lokaler Ersetzung
wieder rausfiltern.

Oder man positioniert doch z. B. mit 'b', beginnt anschliessend einen
neuen Paragraphen derselben Kategorie und uebernimmt den bisherigen
Kategorietext mit 'kxxf'. Dann kommt man aber ins Schleudern, wenn man
Mehrfachbesetzungen ermoeglichen will. Der Befehl 'm' ist dann nicht
mehr benutzbar, man muss ggf. manuell eine Wiederholungsschleife pro-
grammieren.

In jedem Falle 'ne Menge fehlertraechtiger Arbeitsaufwand, der zudem
der Transparenz nicht unbedingt zutraeglich ist. Wie waere es also,
den Vergleichsbefehlen einen ELSE-Operator beizugesellen (z. B. '\')?
Hiermit waere alles ganz einfach zu loesen:
  c"^_x"        kommt Teilfeld x im Arbeitstext vor?
  ...           dann
  \             sonst:
  l 0           setze Laenge des Arbeitstextes auf Null


2.
Ist es moeglich, die Funktionalitaet lokaler bzw. globaler Ersetzungs-
befehle dergestalt zu erweitern, dass Ersetzungen am Ende des Arbeits-
textes vorgenommen werden koennen?
_ "xyz" 0       Ersetze ggf. "xyz" am Ende des Arbeitstextes durch
_ "abc"         "abc"
Ich zumindest haette hierfuer Verwendung.

Viele Gruesse,
W. Goss
--
Winfried Goss                              Technische Hochschule Darmstadt
                                           Institut fuer Soziologie
Email: goss at ifs.th-darmstadt.de            Residenzschloss
Phone: +49/6151/16-5266 / Fax: -6042       D-64283 Darmstadt
WWW:   http://www.ifs.th-darmstadt.de      Germany



Mehr Informationen über die Mailingliste Allegro