2 strings in ein Array + return

Fridulin

Erfahrenes Mitglied
Hallo,

Ich habe folgendes Problem ich hoffe ihr könnt mir Helfen.

meine strings sind folgendermaßen aufgebaut: \Begriff1\Inhalt1\begriff2\inhalt2\ Wie kann man das jetzt am besten inhalt1 und inhalt2 ausgeben lassen, wenn sie dich string[nummer] mit verändert. Kann man irgendwie nach, sag ich mal, Begriff1 suchen und sich dann den nächsten Inhalt1 ausgeben lassen bzw. in eine neue Variable eintragen?
Ich habe schon folgendes gemacht:

Code:
Code:
auswerten string[] inhalt = string1.Split(new char[] {'\'})




Wie gesagt ich hätte es ja sonst inhalt[2] Konstant ausgegeben aber ich bin mir nicht sicher ob die Positionen sich nicht ändern(weil sie von einem Programm erzeugt werden)

In PHP sieht es folgendermaßen aus:

PHP-Code:
PHP:
$variable = $string["Begriff1"];




Oder muß ich die Auswertung (auswerten String[]) noch verändern.

Oder mache ich das ambesten in 1 Array, weil ich es noch in eine andere Funktion zurückgeben muß.
Am Ende soll es so aussehen, daß ich ein return habe in eine andere Funktion und denn die Inhalte der Strings in Labels ausgeben lassen kann.

Grüße, für eure Hilfe bin ich dankbar!

</FONT></FONT>
 
Ich würde an deiner Stelle für jedes Element ein Array mit der Dimension 2 erstellen, und diese dann einer ArrayList hinzufügen.

Code:
string[] inhalt = new string[2];
ArrayList inhalte = new ArrayList();

inhalt[0] = "Begriff";
inhalt[1] = "Wert";

inhalte.Add(inhalt);

Da du die Werte dynamisch auslesen (und wahrscheinlich auch speichern) willst, kannst du das mit Schleifen (z.B. foreach) realisieren.

Wenn du z.B. von jedem Element den Begriff wissen willst.
Code:
foreach (string[] feld in inhalte)
{
      MessageBox.Show(feld[0]);
}
 
Hi,

danke für deine Antwort, leider Funktioniert es nicht ganz so wie ich es mir erhofft hatte. Ich habe jetzt folgendes:

Code:
void form_start(object sender, System.EventArgs e)
 
{
 
string[] inhalt = starten(); 
 
 
 
 
 
ArrayList inhalte = new ArrayList();
 
//inhalt = "Begriff";
 
//inhalt = "Wert";
 
inhalte.Add(inhalt);
 
 
 
foreach (string[] feld in inhalte)
 
{
 
MessageBox.Show(feld[1]);
 
//label1.Text(feld);
 
}
 
 
 
label1.Text = inhalt[0];
 
inhalt_form.Text = inhalt[1];
 
//string[] inhalt = new string;
 
//label1.Text = starten();
 
//inhalt_form.Text = starten();
 
//string inhalt1 = inhalt + "";
 
//label1.Text = inhalt1;
 
 
 
 
 
inhalt_form.Text = inhalt[1];
 
}


und natürlich diese Funktion wo die beiden strings gesetzt, automatisch gesetzt werden:


Code:
private string[] starten()
 
{ 
 
 
 
.....
 

udp.Close(); 
 
 
string antwort_status = Encoding.ASCII.GetString(server_empfang_status);
 
string antwort_players = Encoding.ASCII.GetString(server_empfang_players);
 
//string[] inhalt = antwort_status.Split(new char[] {'\'});
 
return new string[]{antwort_status, antwort_players};
 
}


Wie kann ich das jetzt genau bewerkstelligen, wenn meine beiden strings so aufgebaut sind:
.... \team_9\2\ping_9\244\score_9\0\deaths_9\4\frags_9\0\player_9\nick ....
und ich gerne jeden Inhalt also sag ich mal team_9 habe, dann der Inhalt 2 in einem Label ausgegeben wird.

Grüße und danke!


--- Edit ---

Ich habe es jetzt gelöst mit der Fixen Nummer in Array. Es währe zwar anders besser gewesen, aber so geht es auch mit ein wenig um Herumprogrammieren

Code:
string team_9 = array;
....

Grüße und Danke für eure Hilfe
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück