(Gelöst) Var Parameter Wert übergeben (CC)

1. März 2013 13:36

Hallo bin neu hier
Ich hoffe Ihr könnt mir helfen.

Wie kann ich einem Parameter wo Var auf True ist Werte übergeben ?

Also ich will Text1 (Text,1024, var ist auf true) einen Wert für die Maximale Textlänge geben den ich von MaxLänge1 (int) bekomme. Das alles geschieht in einer Codeunit.
Zuletzt geändert von Sparrrow1992 am 1. März 2013 14:06, insgesamt 1-mal geändert.

Re: Var Parameter Wert übergeben (CC)

1. März 2013 13:48

Könntest du das Problem etwas genauer beschreiben? Möchtest du einer Variable eine Länge geben oder hapert es bei der Übergabe des Textes als Parameter?¿

Re: Var Parameter Wert übergeben (CC)

1. März 2013 13:50

Ich möchte der Variable eine Länge geben die ich Mir von MaxLänge1 holen.

Re: Var Parameter Wert übergeben (CC)

1. März 2013 14:00

Sparrrow1992 hat geschrieben:Also ich will Text1 (Text,1024, var ist auf true) einen Wert für die Maximale Textlänge geben den ich von MaxLänge1 (int) bekomme. Das alles geschieht in einer Codeunit.

Ungefähr so?
Code:
DeineFunktion(VAR Text1 : Text[1024]; MaxLänge1 : Integer)
Text1 := COPYSTR(Text1,1,MaxLänge1); 

Re: Var Parameter Wert übergeben (CC)

1. März 2013 14:05

Vielen Dank für die schnelle Hilfe es sollte so klappen :-D

Re: (Gelöst) Var Parameter Wert übergeben (CC)

1. März 2013 14:08

Ein bisserl kürzer geht's mit PADSTR.

Re: (Gelöst) Var Parameter Wert übergeben (CC)

1. März 2013 14:23

McClane hat geschrieben:Ein bisserl kürzer geht's mit PADSTR.


Meinst du so:

Text1 := PADSTR(Text1,MaxLänge1);

Re: (Gelöst) Var Parameter Wert übergeben (CC)

1. März 2013 14:27

McClane hat geschrieben:Ein bisserl kürzer geht's mit PADSTR.

Wenn ich mich recht entsinne, dann füllt PADSTR eine Zeichenfolge auf, sofern sie die erforderliche Länge nicht erreicht.
Sollte sie also länger als gewünscht sein, macht PADSTR nichts (also auch nicht kürzen).
Daher ist der COPYSTR der richtige Befehl.

Es sei denn, der Text soll immer exakt so lang wie angegeben sein, dann muss eine Kombination aus COPYSTR und PADSTR verwendet werden:
Code:
DeineFunktion(VAR Text1 : Text[1024]; MaxLänge1 : Integer)
IF STRLEN(Text1) = MaxLänge1 THEN
  EXIT
;  // Text ist bereits so lang wie gewünscht
IF STRLEN(Text1 > MaxLänge1 THEN
  Text1 
:= COPYSTR(Text1,1,MaxLänge1)  // Text muss gekürzt werden
ELSE
  Text1 := PADSTR(Text1,MaxLänge1); // Text muss verlängert werden 

Re: (Gelöst) Var Parameter Wert übergeben (CC)

1. März 2013 14:35

Nocheinmal vielen Dank für diese Schnelle Hilfe :D

Re: (Gelöst) Var Parameter Wert übergeben (CC)

1. März 2013 14:58

PADSTR kann auch kürzen :)

Re: (Gelöst) Var Parameter Wert übergeben (CC)

1. März 2013 15:07

Alternativ geht auch:
Code:
Text1:=FORMAT(Text1,MaxLänge1); 


[EDIT]: Nur eine Länge von 0 klappt nicht, da würde er den ganzen String verwenden.[/EDIT]

mfg,
winfy