Wie stelle ich es an das ich einen Wert aus einer Nachricht
auslese?
ich gebe in einer Textbox "ID 1111" und möchte das wenn
ich auf OK klicke er mir eine MsgBox anzeigt in der NUR die Zahl
angezeigt wird...
Bitte helft mir 🙁
Naja laut deiner Angabe funktioniert es folgendermaßen:
string input= textBox1.Text;
string output = input.Remove(0,2);
MessageBox.Show(output, "Nur die Zahl", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
Wenn du allerdings meinst, dass eine beliebige Länge von Zeichen gefolgt von einer Zahl gegben sein können, dann musst du eben die Position der ersten Zahl herausfinden, und und alles was davor steht löschen.
Grüße
oder wenn das Leerzeichen dazwischen immer vorganden ist Split
Wir Arbeiten eigendlich nicht wir nehmen nur das geld
also ich möchte das jetz lieber so machen:
if (Message == "/AddItem")
{
int x = Message.Remove(0,9);
Client.SendData(PacketBuilder.GiveItem4(x));
}
allerdings funktioniert das leider nicht so wie ich es mir erhofft hatte,
denn ich möchte den wert X (die ID in dem fall) an die GiveItem4 Funktion
übergeben jedoch bekomme ich dann jedes mal den fehler:
Cannot implicitly convert type 'string' to 'int'
und ich weiß nicht wie ich das beheben kann
ich versuche ein Onlinespiel-Server zu programmieren und die dazu
gehörigen GM Commands, und wenn ein GM /AddItem XXXX eingibt
soll er das entsprechende Item erhalten was soweit auch funktioniert
nur leider kann er keinen Wert für die ID eingeben da diese Funktion
nicht funktioniert...
du musst den string erst in einen int parsen.
aber was du vorhast geht doch garnicht du läst deinen Code ja nur ausführen wenn Message == "/AddItem"ist aber dann ist ja keine ID da
Wir Arbeiten eigendlich nicht wir nehmen nur das geld
sorry ich bin relativ neu in C# und versuche so etwas zu lernen, wäre wirklich lieb wenn mir vielleicht n beispiel zeigen könntest wie das aussehen müsste 🙁
Hallo StarboyCelli.
int.Parse => siehe SDK-Doku
herbivore
und wie soll das dann bitte aussehen?
if (Message == "/AddItem3")
{
X = Message.Split(' ');
int.Parse = X;
Client.SendData(PacketBuilder.GiveItem4());
}
so?
zum Parsen
string t = "ID 123";
t = t.Substring(3);
int x = int.Parse(t);
MessageBox.Show(x.ToString());
und Deine Methode
int x = 0;
Message = Message.Substring(3);
if (int.TryParse(Message,out x))
{
Client.SendData(PacketBuilder.GiveItem4(x));
}
Wir Arbeiten eigendlich nicht wir nehmen nur das geld
aber nach deiner methode S.H. weiß er doch garnicht WANN er die if anweisung starten soll (da fehlt doch der befehl /AddItem)?!? oder versteh ich (wieder) was nicht?
in meinem Code Wird
Client.SendData(PacketBuilder.GiveItem4(x));
nur aufgerufen wenn ab dem 3. Zeichen zahlen stehen.
wenn dein String anderst aussieht zb. So "/AddItem 123" aussieht würde ich dir empfehlen es nach diesem muster zu machen
string t = "/AddItem 123";
char[] c = new char[1];
c[0] = ' ';
string[] s = t.Split(c);
if(s[0] == "/AddItem")
{
int x = int.Parse(s[1]);
MessageBox.Show(x.ToString());
}
Wir Arbeiten eigendlich nicht wir nehmen nur das geld
ich habs versucht aber aus irgendeinem unerfindlichen grund klappts noch nicht..
aber vielen vielen dank erstmal für eure hilfe 🙂
Probier es mal mit diesem Code vieleicht bringt dich das ja weiter 😉
string t = "/AddItem 123";
char[] c = new char[1];
c[0] = ' ';
string[] s = t.Split(c);
int x = 0;
if(s[0] == "/AddItem")
{
if (int.TryParse(s[1],out x))
{
Client.SendData(PacketBuilder.GiveItem4(x));
}
}
und wenn noch fragen sind dann melde dich einfach
Wir Arbeiten eigendlich nicht wir nehmen nur das geld