[Allegro] Ersetzung von #

Heinrich Allers allers at t-online.de
Fr Mai 3 22:06:50 CEST 2013


Liebe Kollegen Fischer und Berger:

tf:
> > herzlichen Dank für die Hinweise und den Flex.
> > Das ist allerdings etwas kompliziert, ich hatte das schon befürchtet, muss mir das aber noch im Detail anschauen.

tb: 
> instruktiver duerfte es sein, wenn man nicht die Feinheit
> '"#" kann als Kategoriefolgezeichen oder Indikator vorkommen'
> beruecksichtigt, dann ist (mit k_1 und k_2 statt k1 und k2)
> jegliches "#" ersetzbar und die Sache wird auch unabhaengig
> vom konkreten Kategorienschema.

Stimmt, und Danke für den Hinweis! So läßt sich die FLEX-Datei 
tatsächlich noch etwas vereinfachen:


   // Sätze, aus denen mindestens ein # rausflog,
   // werden hier protolliert:
expo f ersetz.txt
first #
:w000\if cancel jump w001\if del jump w002
   // $put nur dann = "ja", wenn ein # rausflog
   // und drum 'put' fällig ist:
var "nein"\ins $put
var k_1\ins #ux1\perf ersetz
:w004\var k_2\if "" jump w003\ins #ux1
perf ersetz\jump w004
:w003\var $put\if "ja" put;dow
:w002\next #\jump w000
:w001\mes Fertig\close x\erase off\end
:ersetz\var "nein"\ins $ins
var #ux1
if %#% var "ja";ins $put;ins $ins
var $ins
if "ja" var #ux1;ins _#__;ins #ux1;var "#" #ux1;ins
return


tb:
> Allerdings ist es natuerlich so, dass gerade in URLs das
> "#" durchaus ein legales Zeichen ist, bzw. wenn man
> es vernichtet, muss natuerlich der Rest der URL (der
> "Fragment identifier" auch vernichtet werden. Und der
> "Rest der URL" ist normalerweise nicht der "Rest der
> Kategorie" sondern nur der Rest des aktuellen Unterfelds,
> ggfls. auch bloss bis zum naechsten Spatium oder anderen
> Zeichen: Um wirklich zu wissen wo eine URL "aufhoert" muss
> man diese parsen, das erste nicht erlaubte Zeichen markiert
> dann vielleicht den Uebergang von URL zum Rest. Oder die
> URL wurde falsch erfasst oder aus der Adresszeile eines
> Browsers kopiert, der "mehr" als nur URLs kann...

Wohlbegründete (nicht "wohl begründete"!) Überlegungen! An Herrn 
Fischers Stelle würde ich deshalb zuerst diese FLEX-Datei über die 
Datenbank laufen lassen, um die Kategorien zu sehen und überprüfen zu 
können, die betroffen sind (ein # enthalten):


   // Felder mit mindestens einem #
   // werden hier protolliert:
expo f ersetz2.txt
first #
:w000\if cancel jump w001\if del jump w002
var k_1\ins #ux1\perf ersetz
:w004\var k_2\if "" jump w002\ins #ux1
perf ersetz\jump w004
:w002\next #\jump w000
:w001\mes Fertig\close x\end
:ersetz
var #ux1
if %#% wri #ux1 n
return


Dann erkennbar notwendige Manipulationen z.B. von # enthaltenden 
URLs, auf die Herr Berger hinweist, könnte man anschließend in die 
obige (wirklich die Datensätze traktierende) FLEX-Datei einbauen.  


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