Übersetzung
Von:Thomas Geissler softart@t-online.de
An:Franz-Dietrich Frhr.v.Recum fdvrecum@gmx.de :gelesen
erstellt am:23.10.2019 10:56:48 - #24004 in section Antworten     Antworten mit Zitat
So sollte es gehen:

update text set text = IIF(AT("SPRE",Text)=0,STRTRAN(STRTRAN( Text,"troncato","get:",-1,-1,1),"parti","get:",-1,-1,1),Text)

Gruß
Thomas


 

hier ein ganz einfaches Beispiel
die Datensätze:

Bazzini (LOM) (Lovere (Bergamo)). (IT) partito: al 1º di rosso; al 2º partito, di nero e di porpora col capo di porpora all'aquila d'oro coronata dello stesso (citato in SPRE – Vol. I pag. 536) (IT) rosso pieno - partito di nero e di viola - aquila coronata di oro su viola in capo (citato in LEOM)

Bazzini (LOM) (Lovere (Bergamo)). (IT) Partito di rosso e ripartito di nero e di oro - aquila di nero su oro in capo (citato in LEOM)

gesucht:
("partito" OR "Partito") and NOT "SPRE"






Von:Franz-Dietrich Frhr.v.Recum fdvrecum@gmx.de
An:Thomas Geissler softart@t-online.de :gelesen
erstellt am:23.10.2019 14:33:32 - #24006 in section Antworten     Antworten mit Zitat
wunderbar, vielen Dank
****************
hoffentlich komme ich, wenn ich diesen Algorythmus fürderhin benutze nicht gemäß EUVAS für 10 Jahre in die Sibirei !

Von:Thomas Geissler softart@t-online.de
An:Franz-Dietrich Frhr.v.Recum fdvrecum@gmx.de :gelesen
erstellt am:23.10.2019 14:52:47 - #24008 in section Antworten     Antworten mit Zitat
In meinem Beispiel muss das auszuschließende in der AT()-Funktion auch in Großbuchstaben vorhanden sein. Kleingeschrieben oder gemischte Schreibweise würde so nicht gehen. Hier müsstest Du noch mit UPPER() oder LOWER() ergänzen.

Gruß
Thomas

Von:Franz-Dietrich Frhr.v.Recum fdvrecum@gmx.de
An:Thomas Geissler softart@t-online.de :gelesen
erstellt am:23.10.2019 23:03:43 - #24008 in section Antworten     Antworten mit Zitat
Vielen Dank für den Hinweis, in meinem Beispiel ist es aber eindeutig.

Von:Bernhard Sander dfpug@individsoft.de
An:Thomas Geissler softart@t-online.de :gelesen
erstellt am:24.10.2019 11:56:14 - #24010 in section Antworten     Antworten mit Zitat
Hallo Thomas, hallo Franz-Dietrich,


 

In meinem Beispiel muss das auszuschließende in der AT()-Funktion auch in Großbuchstaben vorhanden sein. Kleingeschrieben oder gemischte Schreibweise würde so nicht gehen. Hier müsstest Du noch mit UPPER() oder LOWER() ergänzen.




Wenn man statt AT() ATC() benutzt wird Groß/Kleinschreibung ignoriert.

Gruß
Bernhard Sander

Von:Bernhard Sander dfpug@individsoft.de
An:Thomas Geissler softart@t-online.de :gelesen
erstellt am:24.10.2019 12:04:02 - #24011 in section Antworten     Antworten mit Zitat
Hallo,


 

So sollte es gehen:

update text set text = IIF(AT("SPRE",Text)=0,STRTRAN(STRTRAN( Text,"troncato","get:",-1,-1,1),"parti","get:",-1,-1,1),Text)





Oder man macht die Ausschlüsse über SQL-WHERE:

UPDATE armit
SET text = strtran(strtran(text, ....))
WHERE text NOT LIKE "%SPRE%"

Gruß
Bernhard Sander

Von:Bernhard Sander dfpug@individsoft.de
An:Thomas Geissler softart@t-online.de :gelesen
erstellt am:24.10.2019 12:20:06 - #24012 in section Antworten     Antworten mit Zitat

 

So sollte es gehen:

update text set text = IIF(AT("SPRE",Text)=0,STRTRAN(STRTRAN( Text,"troncato","get:",-1,-1,1),"parti","get:",-1,-1,1),Text)

Gruß
Thomas


 

hier ein ganz einfaches Beispiel
die Datensätze:

Bazzini (LOM) (Lovere (Bergamo)). (IT) partito: al 1º di rosso; al 2º partito, di nero e di porpora col capo di porpora all'aquila d'oro coronata dello stesso (citato in SPRE – Vol. I pag. 536) (IT) rosso pieno - partito di nero e di viola - aquila coronata di oro su viola in capo (citato in LEOM)

Bazzini (LOM) (Lovere (Bergamo)). (IT) Partito di rosso e ripartito di nero e di oro - aquila di nero su oro in capo (citato in LEOM)

gesucht:
("partito" OR "Partito") and NOT "SPRE"









Ich merke schon wieder an

Strtran kann so ohne weiteres keine Wortgrenzen berücksichtigen.
Daher wird im 2. Beispiel mit StrTran(text, "partito", "get.",-1,-1,1) nicht nur das einzelne Wort "Partito" ersetzt sondern auch "ripartito" in "riget." umgewandelt.
Sowas müsste man wohl ausprogrammieren.
Oder wie kriegt man RegEx in Foxpro hin?
Ah, so: http://fox.wikis.com/wc.dll?Wiki~RegExp

Gruß
Bernhard Sander


Von:Thomas Geissler softart@t-online.de
An:Bernhard Sander dfpug@individsoft.de :gelesen
erstellt am:24.10.2019 18:04:10 - #24013 in section Antworten     Antworten mit Zitat
Stimmt, noch besser. Ich hatte vergessen, das es ein UPDATE SQL und kein einfaches REPLACE ist.


 

Hallo,

Oder man macht die Ausschlüsse über SQL-WHERE:

UPDATE armit
SET text = strtran(strtran(text, ....))
WHERE text NOT LIKE "%SPRE%"

Gruß
Bernhard Sander






Von:Thomas Geissler softart@t-online.de
An:Bernhard Sander dfpug@individsoft.de :gelesen
erstellt am:24.10.2019 18:13:00 - #24014 in section Antworten     Antworten mit Zitat
Wenn man es 100% richtig machen wollte, kommt man da nicht drumherum.

Gruß
Thomas