Geschachtelte IF-Bedingung?

Nephelion

Grünschnabel
Hallo an alle,

ich habe folgendes Problem:

Ich habe eine kleine Tabelle mit acht Variablen, sehr übersichtlich.
Zur besseren Darstellung in einem Bericht möchte ich nun diese acht Variablen zu einer Zeichenkette verbinden. Das konkatenieren an sich funktioniert auch ohne weiteres, nur steht nicht in jeder Variable was und das sieht etwas merkwürdig bei der Ausgabe aus. Ich könnte sicher die Leerzeichen mittles trimmen entfernen, nur sind dann alle Begriffe wieder aneinander "geklatscht".

Ich möchte nur die Variablen zu einer Zeichenkette verbinden, in denen auch was steht.
In meinem Verständnis überprüfe ich die Variablen mittles einer IF-Bedinung auf Inhalt und würde dann, wenn diese Variable Text enthält einer Hilfsvariable zuweisen. So würde ich die ganzen acht Variablen durchgehen, nur das ich das eben von einander abhängig machen muss.

Um aber sehr tief geschachtelte IF-Bedinungen zu vermeiden nun meine Frage, ob jemand auch eine andere Idee wie ich die einzelnen Variablen zu einer Zeichenkette verbinden kann?

Falls jetzt jemand sich fragen sollte mit welcher Programmiersprache ich das ganze mache, kann ich nur sagen, das spielt so keine Rolle (aber falls es jemanden was sagt, ich arbeite mit SAS, was auf C basiert.), weil um die genau Syntax geht es mir nicht.
Bin für jeden Tip dankbar.

So long
Diana
 
Also wenn ich Dich richtig verstanden habe, dann hast Du acht Zellen, die nacheinander auf Inhalt geprüft und gegebenfalls an einen String angehangen werden sollen?!
Wenn es das ist, würde ich das etwa wie folgt lösen:

Code:
For i = 1 to 8
   If Not IsEmpty(Zelle(i)) Then String = String & Zelle(i)
Next i
 
Hi,

ich wusste das ich was vergessen habe. Nein es sind nicht 8 Zeilen, sondern 8 Spalten und ingesamt sind es 14 Zeilen. Den Teil der Schleife den du gepostet hast, muss 14 mal durchlaufen werden und dabei muss in jedem Schleifendurchlauf eben diese acht Variablen überprüft werden.

Danke für den Tip, der hat mich schon ein ganzen Stück weiter gebracht. Ich habe jetzt zwei in einander geschachtelte Schleifen, mal schaun ob es so funktioniert.
 
Du hast also eine Matritze?

Sprich
Code:
[2][4][ ][5][6]
[ ][3][2][0][0]
... weitere 6 zeilen

meintest du das?

ich schreibs in Java was deinem C ähnlich sein sollte

Code:
List matritze ...
String result = "";
foreach(matritze : List row) {
   foreach(row : String field)
     if(field!=null) ? result+= field : continue;
}

ist nicht allzugross ;)
 
Original von Nephelion
Hi,

ich wusste das ich was vergessen habe. Nein es sind nicht 8 Zeilen, sondern 8 Spalten und ingesamt sind es 14 Zeilen. Den Teil der Schleife den du gepostet hast, muss 14 mal durchlaufen werden und dabei muss in jedem Schleifendurchlauf eben diese acht Variablen überprüft werden.

Danke für den Tip, der hat mich schon ein ganzen Stück weiter gebracht. Ich habe jetzt zwei in einander geschachtelte Schleifen, mal schaun ob es so funktioniert.

Zweidimensional also - nun, solch eine Info musst du mir schon zuspielen ;)

Dann einfach zwei Schleifen:


Code:
For i = 1 to 14
   For j = 1 to 8
      If Not IsEmpty(Zelle(i, j)) Then String = String & Zelle(i, j)
   Next j
Next i
 
Guten Morgen,

danke euch beiden.
Das hat mir beides geholfen, einzig die Umsetzung in SAS gestaltet sich ein wenig schwieriger, da hier einige grundsätzliche Regeln der Programmierung scheinbar aufgehoben sind. Aber das ist etwas SAS typisches...

Grüße
Diana
 

Neue Beiträge

Zurück