Entwickler-Ecke

Basistechnologien - String Array lesen


ffprogramming - Di 12.05.09 15:52
Titel: String Array lesen
Hi! Ich melde mich mal wieder! Ich hoffe ihr könnt mir helfen:

Ich habe folgendes Problem:
Ich möchte einen Text analysieren. Am Ende jeder Zeile des Textes steht ein ;
Ich nehem den Text und zerlege ihn in Zeilen mittels .Split
Nun möchte ich jede Zeile nochmals in Wörter zerlegen.

Jetzt hab ich ein Problem.
Ich weiß nicht wieviel Zeilen der User eingeben wird.
Ich möchte nun jede Zeile mit if Bedingungen interpretieren.
Das ginge auch wenn nur eine Zeile eingegeben würde gut
Ich möchte aber jede Zeile durch diese Lange Liste von IF Bedingungen schicken.


C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
static void Main(string[] args)
        {
            string first = Console.ReadLine();
            string[] zeilen;
            char[] trennzeichen = { ';' };
            zeilen = first.Split(trennzeichen);
            char[] trennzeichen2 = { ' ' };
            string[] command;
            command = zeilen[0].Split(trennzeichen2);
            if(command[0]=="txt")
            {
            if (command[1] =="schreiben")
            {
             //tue was
            }
            }


Mein Problem ist jetzt wie kann ich jede Zeile so analysieren ohne für jede Zeile schon vorher ein Array festzulegen.

Wenn noch fragen da sind ruhig nachfragen!!


jaenicke - Di 12.05.09 15:59

Du kannst das ganze ja in eine while-Schleife setzen.


ffprogramming - Di 12.05.09 16:07

nur wie lange soll die while schleife laufen


Th69 - Di 12.05.09 16:19

Einfacher geht es mit einer foreach-Schleife:

C#-Quelltext
1:
2:
3:
4:
foreach(string zeile in zeilen)
{
  ... // evtl. dasselbe für die 'commands'
}

Als weitere Hilfe kann ich dir das OpenBook http://openbook.galileocomputing.de/visual_csharp/ empfehlen (konkret dazu dann Kapitel 2.7 "Programmschleifen" ).


ffprogramming - Di 12.05.09 16:25

jo ich programmiere schon seit etwa einem Jahr und habe mir schleifen immer noch meine Probleme
Aber Danke!


jaenicke - Di 12.05.09 16:32

foreach hilft dir hier wohl wenig, da es ja um Benutzereingaben geht.

Du kannst eine while-Schleife so lange laufen lassen bis die Benutzereingabe "stop" ist oder so. Das kannst du ja bei first abfragen.


JüTho - Di 12.05.09 17:48

Hallo Sebastian,

user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:
foreach hilft dir hier wohl wenig, da es ja um Benutzereingaben geht.

Das geht trotzdem. Durch Console.ReadLine wird ein String eingelesen, der durch String.Split in ein Array zeilen aufgeteilt wird. Die Größe dieses Arrays wird durch die Benutzereingabe festgelegt und ist von vornherein variabel. Dieses Array kann durch foreach bearbeitet werden - genauso, wie es Th69 skizziert hat.

Jürgen


jaenicke - Di 12.05.09 18:43

Ja, dafür ja. Ich hatte das falsch verstanden und auf die Anzahl der Eingaben bezogen, weil es darum direkt davor ging. :oops:


JüTho - Mi 13.05.09 08:47

Alles klar. Ich hatte mich schon gewundert, dass du so eine Aussage über foreach gemacht hast. Jürgen