2012-04-04 6 views
-3

Ich habe diesen Code, den ich gerne analysieren würde ":" es ist schwer zu erklären, so schwer zu suchen, so entschieden, um meine erste zu fragen Frage hierParse bei ":" - Nicht einmal sicher, wie man fragt .. also hier ist ein EX

if (command == "hi") 
{ 
    MessageBox.Show(command); 
    skype.SendMessage(msg.Sender.Handle, nick + " Says: " + "what"); 
} 
else { } 
if (command == "what's up?") 
{ 
    MessageBox.Show(command); 
    skype.SendMessage(msg.Sender.Handle, nick + " Says: " + "nothing much"); 
} 
else { } 

Nun, was ich mit dem oben wollen, ist eine richtextbox Art eine Zeile zu einem Zeitpunkt zu haben, so für EX:

hi:what 
what's up?:nothing much 

Und ist es möglich, jede Zeile, die es gemacht wird, die Anzeige neue if-Anweisung, anstatt Benutzer auf einen bestimmten Betrag zu beschränken?

Edit: Ich brauche es so zu arbeiten-
Nachricht | Antwort
hallo: was ist los?

Die Art und Weise der aktuelle Code funktioniert, ist:

//if message "hi" 
    if (command == "hi") 
    { 
     //return this message if message "hi" 
     skype.SendMessage(msg.Sender.Handle, nick + " Says: " + "what"); 
    } 

Stattdessen würde ich einen richtextbox mag es zu analysieren, zu „:“ und jede Zeile eines if-Anweisung neu.

danke!

+4

Dies ist eine sehr schlecht ausgedrückte Frage. Denken Sie, dass Sie ein paar Minuten brauchen, um genau zu sortieren, was Sie wollen? –

+2

@Boo Ich habe es ein paar Mal gelesen. Ich bin verwirrt – Kevin

+0

Ich bin mir nicht sicher, ich verstehe, was Sie fragen. Sie möchten, dass der Benutzer einen mehrzeiligen Text in ein Textfeld eingibt, jede Zeile in der Form "question: answer", und dann sollte der Code diese Zeilen lesen und für jede von ihnen eine "if" -Anweisung wie die in Ihrer ausführen Beispiel? – MiMo

Antwort

0

Es ist mir nicht ganz klar, was Sie fragen, aber wenn ich Sie richtig verstehe, haben Sie eine Zeichenfolge, die wie "command:some other stuff" aussieht und Sie die beiden Teile trennen möchten. Wenn mein Verständnis richtig ist, ist es sehr einfach:

var originalString = "command:some other stuff"; 
var parts = originalString.Split(new[] {':'}); 
var command = parts[0]; 
4

Ich bin wirklich nicht sicher, was Sie fordern, aber meine Vermutung ist, dass Sie einen Befehl erhalten möchten und wissen, wie man diesen Befehl zu reagieren.

Eine einfache Möglichkeit, das zu tun ist mit einem Dictionary<string, string>.

Dictionary<string, string> commandsAndResponses = new Dictionary<string, string>(); 
commandsAndResponses.Add("hi", "what"); 
// Add the rest 

if (commandsAndResponses.ContainsKey(command)) 
{ 
    MessageBox.Show(command); 
    skype.SendMessage(msg.Sender.Handle, nick + " Says: " + commandsAndResponses[command]); 
} 

UPDATE

Wenn Sie Ihre Befehle und Antworten von einem RichTextBox als immer „:“ getrennte Liste von Strings, können Sie string.Split() verwenden Ihr Wörterbuch zu bauen.

0

Es sieht nicht so aus, als ob Sie wirklich Aussagen wollen. Man könnte so etwas tun:

string[] lines = richTextBox1.Text.Split('\n'); // split on line 
foreach(string ln in lines) 
{ 
    string[] commands = ln.Split(':'); 
    if(commands.Length == 2) 
    { 
     // first statement 
     skype.SendMessage(msg.Sender.Handle, string.Format("{0} Says: {1}",nick, command[0]); 
     // second statement 
     skype.SendMessage(msg.Sender.Handle, string.Format("{0} Says: {1}",nick, command[1]); 
    } 
} 

Diese Schleife wird über jede Zeile in der Textbox und dann auf beiden Teilen des Kommandos arbeiten, wenn es da ist es nur ein „:“. Ich werde es Ihnen überlassen, ob Sie Benutzern erlauben, ":" in Text zu verwenden.

+0

Kleiner Buggy, ich denke, ich weiß warum ... weil ich nicht viel Platz habe hier zu posten ist ein Pastebin Link von meinem Kommentar http://pastebin.com/a8pFMexc – TomSwoobs

+0

@TomDoobies was verursacht Sie Probleme speziell?Ich sehe keinen Hinweis darauf, wo Sie Probleme mit dem Pastebin haben. – Jetti

+0

Schauen Sie: Nachricht | Antwort Hallo: Hey Mann es einfach senden beide Nachrichten einzeln, wenn egal was gesagt wird. – TomSwoobs

Verwandte Themen