[Gelöst] Prüfen der Anzahl der Stellen innerhalb eines Strin

21. März 2006 11:49

Da bin ich schon wieder :-)

Ich möchte einen String wie folgt verändern:

Code:
BuHaPauschale2005."Gliederung Nr." := COPYSTR('0' + (BuHaPauschale2005."Gliederung Nr.",1,8) + 'BP')



Mein Problem. Der zu ändernde String besteht manchmal aus 7 und manchmal aus 8 Ziffern. Ich möchte eine IF Bedingung voranstellen, die prüft (wenn String aus 7 Ziffern besteht, dann '0' + Nr + 'BP', wenn String aus 8 Ziffern besteht, dann nur Nr + 'BP')

Hat jemand eine Idee?
Zuletzt geändert von mgerhartz am 10. April 2006 13:31, insgesamt 1-mal geändert.

21. März 2006 11:52

Dafür kannst Du den Befehl STRELN() verwenden

AnzahlStellen := STRLEN(StringVariable)

21. März 2006 11:55

sollte gehen mit :

Code:
BuHaPauschale2005."Gliederung Nr." := COPYSTR('00000000',8-strlen(BuHaPauschale2005."Gliederung Nr.")
+ BuHaPauschale2005."Gliederung Nr."
+ 'BP');

21. März 2006 11:55

hallo mgerhartz

ich würde den mit STRLEN(String) arbeiten:
in deinem Fall
IF STRLEN(BuHaPauschale2005."Gliederung Nr.") = 8 then
...
else
...

21. März 2006 11:56

ops war ein bischen langsam :-D

21. März 2006 12:00

... oder mit :

Code:
BuHaPauschale2005."Gliederung Nr." := padstr('0',8-strlen(BuHaPauschale2005."Gliederung Nr.")
+ BuHaPauschale2005."Gliederung Nr."
+ 'BP');


es ist dann auch egal, wieviel zeichen BuHaPauschale2005."Gliederung Nr." hat, sollte immer klappen. :wink:

21. März 2006 12:04

Wow, Ihr seid wirklich schnell. 1000 Dank dafür. Werde es gleich ausprobieren und Bericht erstatten.

Gruß an Alle!

Markus

21. März 2006 12:13

Jo, hat funktioniert. Wen es interessiert, ich habe mich für folgende Variante entschieden:

Code:


IF BuHaPauschale2005.Gliederungsnummer <> '' THEN BEGIN
  IF STRLEN(BuHaPauschale2005.Gliederungsnummer) = 7 THEN
    BuHaPauschale2005.VALIDATE(Gliederungsnummer,'0' + Gliederungsnummer + 'BP')
  ELSE
    BuHaPauschale2005.VALIDATE(Gliederungsnummer, Gliederungsnummer + 'BP');
END;



Gruß

Markus