[gelöst] Abfrage/Vergleich mit 'begint mit'

13. März 2008 14:00

Hallo,

ich suche nach einer Möglichkeiten bei einem Text abzufragen ob er mit einem bestimmten Zeichen beginnt. Gibt es da Platzhalter wie * oder ?

mfg Harrison
Zuletzt geändert von Harrison am 14. März 2008 00:08, insgesamt 1-mal geändert.

13. März 2008 14:26

Wenn gefiltert werden soll ist das Sternchen in der Tat das richtige Zeichen. Wenn eine Text-Variable abgefragt wird, kann mit COPYSTR gearbeitet werden.

13. März 2008 15:39

Hallo,
habe es noch nicht hin bekommen. ich möchte gerne am Anfang der Beschreibung prüfen ob der String mit einem # beginnt und darauf hin reagierren können.

Code:
if "Sales Line2".Description ='#*' then
...


klappt aber so noch nicht.

mfg Harrison

13. März 2008 15:44

Wie MrBurns schon sagte gilt das * nur für Filterung. Du machst eine Abfrage und keine Filterung. Hier musst du mit Copystring arbeiten.

Ich hatte ein ähnliches Problem. Hier mal ein Beispiel:

Code:
IF COPYSTR("Sales Line2".Description,1,1)= '#' THEN
...

13. März 2008 16:33

Hi,

so koenntest du mit einem Filter alle Records rausfiltern, bei denen das Feld mit # anfaengt.

Code:
Tabelle.SETFILTER(Feld,'%1','@' + '#' + '*');



zur Info: auf <> abfragen geht leider nicht :-(
Code:
Tabelle.SETFILTER(Feld,'<>%1','@' + '#' + '*');



Gruesse
feri

13. März 2008 16:51

Also wenn du dirket auf das 1. Zeichen scharf bist, dann würde ich folgendermaßen vorgehen:

Code:
STRPOS('*HALLO','*');


Dieses Beispiel gibt dir also die Position des gesuchten Zeichens zurück.

Also Anschauungsbeispiel würde folgender Ausdruck dienen

Code:
MESSAGE(FORMAT(STRPOS('*HALLO','*')));


Du könntest dann also ganz einfach mit IF abfragen, ob die Position 1 ist.

Gruß Schaarschi

13. März 2008 23:35

Wenn du immer nur das erste Zeichen abfragen willst, dann wäre auch folgender Weg möglich:
Code:
IF "Sales Line2".Description[1] = '#' THEN
  [...]


Wie du siehst: "Viele Wege führen nach Rom."

14. März 2008 00:07

Danke für die zahlreichen Lösungswege

mfg Harrison