#translate/#command mit "->"

Konzeptionelles, Technisches, Termine, Fragen zum Hersteller usw.

Moderator: Moderatoren

Antworten
Benz
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 440
Registriert: Mo, 30. Mai 2011 15:06
Danksagung erhalten: 1 Mal

#translate/#command mit "->"

Beitrag von Benz »

Hi, es gibt ja den binären Operator "->" mit dem man Inhalte aus Datenbankfeldern laden kann, in etwa so:
<AliasName> -> <FieldName>

Code: Alles auswählen

    ? Customer->Name                 // result: Miller
Ich würde gerne mein Programm umschreiben, sodass ich alle "->" ersetze durch einen bestimmten Code, weil ich die komplette Anwendung auf Postgre umbauen will, ohne größeren Aufwand.

Ich habe schon das versucht:

Das hat geklappt (Test):

Code: Alles auswählen

#command msgbox(<db>) => msgbox("ABC")
Das hat nicht geklappt:

Code: Alles auswählen

#command <(db)>-><(feld)> => msgbox("XYZ")
und das hat auch nicht geklappt:

Code: Alles auswählen

#command <(db)>-><(feld)> => msgbox(var2char(<(db)>) + " " + var2char(<(feld)>))
Wie muss ich das denn schreiben, dass ich den "->" per Command umschreiben kann? oder gibt es eine andere Möglichkeit?
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9345
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 359 Mal
Kontaktdaten:

Re: #translate/#command mit "->"

Beitrag von Tom »

Dafür sind #command und #translate nicht gedacht - sie reagieren auf Keywords, also auf Kommandos. Der Alias-Operator ist aber keines. Du müsstest also eher mit der Ersetzungsfunktion eines Editors arbeiten, der Regular Expressions beherrscht. Ich glaube, Georg hatte hier oder im Wiki längere Texte zu diesem Thema gepostet.
Herzlich,
Tom
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Re: #translate/#command mit "->"

Beitrag von Manfred »

es gibt auch einen Vortrag dazu auf der Entwicklerkonferenz in Münster von ihm.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Marcus Herz
1000 working lines a day
1000 working lines a day
Beiträge: 851
Registriert: Mo, 16. Jan 2006 8:13
Wohnort: Allgäu
Hat sich bedankt: 39 Mal
Danksagung erhalten: 192 Mal
Kontaktdaten:

Re: #translate/#command mit "->"

Beitrag von Marcus Herz »

Hallo Manfred

Falls du den -> Pfeil durch ein : ersetzen willst, um dann mir Objekten zu arbeiten, das geht nicht mit Xbase #translate. Hab ich auch schon vor langer Zeit versucht. Wie Tom satge. ein guter Editpr kann das (ich hab immer noch Multi Edit im Einsatz)
Gruß Marcus

Erkenne, was du findest, dann weißt du, wonach du gesucht hast
Benutzeravatar
Marcus Herz
1000 working lines a day
1000 working lines a day
Beiträge: 851
Registriert: Mo, 16. Jan 2006 8:13
Wohnort: Allgäu
Hat sich bedankt: 39 Mal
Danksagung erhalten: 192 Mal
Kontaktdaten:

Re: #translate/#command mit "->"

Beitrag von Marcus Herz »

Es gibt schon ne Lösung, da hab ich vor ca. 15 Jahren schon mal was umgestellt:

Code: Alles auswählen

#xtranslate klib-\><n> => klib:<n>
#xtranslate xlib-\><n> => xlib:fieldget(<"n">)
ob dir das weiterhilft. den alias Bezeichner hab ich nicht geschafft, zu verallghemeinern
Gruß Marcus

Erkenne, was du findest, dann weißt du, wonach du gesucht hast
Benutzeravatar
Marcus Herz
1000 working lines a day
1000 working lines a day
Beiträge: 851
Registriert: Mo, 16. Jan 2006 8:13
Wohnort: Allgäu
Hat sich bedankt: 39 Mal
Danksagung erhalten: 192 Mal
Kontaktdaten:

Re: #translate/#command mit "->"

Beitrag von Marcus Herz »

Dein Beispiel geht so

Code: Alles auswählen

#command (<db>)-\><feld> => msgbox(var2char(<"db">) + " " + var2char(<"feld">))
aus

Code: Alles auswählen

	(klib)->persnr
wird

Code: Alles auswählen

msgbox(var2char("klib") + " " + var2char("persnr"))
Gruß Marcus

Erkenne, was du findest, dann weißt du, wonach du gesucht hast
Antworten