# Log-String zusammensetzen



## McNugget (3 Dezember 2009)

Moin allerseits.

Wie lässt sich der folgende Code eleganter/ schlanker/ performanenter/ verschachtelter gestalten?

Die Kanäle 15,16, 21-27, 31,32 gibt es aktuell nicht

Diese sollen aktuell nur mit Platzhaltern aufgefüllt werden, um bereits die Plätze zu reservieren.


Momentan sind sie per Deklaration mit '99.99' gefüllt.



Deklaration:


> PROGRAM Log_String_01
> VAR
> Zeits:STRING;
> 
> ...



Anweisungsteil:


> Timestamps:=CONCAT(DT_TO_STRING(Echtzeit), ';');
> 
> 
> Kanal_01:=
> ...


----------



## Larry Laffer (3 Dezember 2009)

Hallo,
du könntest für die Kanäle auch ein ARRAY of STRING nehmen. Wenn du diese dann alle zu einem Gesamt-String zusammensetzen willst, dann könnte das auch so aussehen :
	
	



```
hString := '' ;
for i := 1 to 32 by 1 do
   hString := concat(hString , Kanal[i]) ;
end_for ;
```
Gruß
LL


----------



## McNugget (3 Dezember 2009)

Danke.

Das probiere ich mal.

Und wie setze ich hinter jeden Wert ein ";"?

Dann kann ich es besser in Excel sparieren.


nachtrag: Hab´s probiert.

CoDeSys will hier eine Deklaration für "Kanal". die kann ich aber ja nicht geben, da sich der Kanalname aus dem Hochzählen des Array ergibt, oder?

Also
for i := 1 to 32 by 1 do
ergäbe dann
, Kanal_) ;
Kanal[1]
Kanal[2]
usw.

Kann ich es auch hinbekommen, dass er 
Kanal_01
bis Kanal_32
zählt??



AARGH.... Arrays hassen mich..... Und langsam hasse ich sie auch..... Wann werde ich sie endlich begreifen?_


----------



## Larry Laffer (3 Dezember 2009)

vielleicht so :
	
	



```
hString := '' ;
for i := 1 to 32 by 1 do
   hString := concat(hString , Kanal[i]) ;
   hString := concat(hString , ';') ;
end_for ;
```


----------



## Larry Laffer (3 Dezember 2009)

McNugget schrieb:


> CoDeSys will hier eine Deklaration für "Kanal". die kann ich aber ja nicht geben, da sich der Kanalname aus dem Hochzählen des Array ergibt, oder?
> 
> ...
> 
> ...


 
Das verstehe ich im Augenblick nicht ...
du mußt natürlich deine Kanäle als ARRAY deklarieren - also statt :
	
	



```
Kanal_01 : string [32] ;
Kanal_02 : string [32] ;
Kanal_03 : string [32] ;
Kanal_04 : string [32] ;
...
```
mußt du es so machen :
	
	



```
Kanal : array [1..32] of string [32] ;
```
dann kannst du es auch so ansprechen :
	
	



```
Kanal[01] := ...
```
war es das ?


----------

