Thema: Briefkasten Parser
- 
	13.07.2012, 23:08 #1Permanent gesperrt  
 - Registriert seit
- 22.05.2012
- Beiträge
- 202
 Thanked 21 Times in 9 Posts Briefkasten Parser Briefkasten ParserHier habt ihr eine Klasse, womit ihr den Inhalt von einer /m parsen könnt. Ist sehr simpel gehalten, nichts besonderes. 
 
 Program.cs
 
 /*
 Briefkasten Parser
 © The Don of NYC - 2012
 */
 
 using KNLib;
 using System;
 using System.Windows.Forms;
 
 namespace Briefkasten_Parser
 {
 class Program
 {
 static void Main()
 {
 Application.EnableVisualStyles();
 Console.Title = "Briefkasten Parser";
 
 KSClient KSC = new KSClient(new Applet("applet.jar"));
 KSC.OnTokenReceived += new KSClient.ReceivedHandler(KSC_OnTokenReceived);
 KSC.Connect(ChatSystem.DE);
 
 Console.ForegroundColor = ConsoleColor.White;
 Console.WriteLine("<ENTER> Knuddes Login");
 Console.ReadLine();
 
 KSC.Login("", "", "");
 }
 
 static void KSC_OnTokenReceived(KSClient KSC, String packet)
 {
 String[] token = packet.Split('\0');
 
 switch (token[0])
 {
 case "u":
 
 Console.WriteLine("Erfoglreich eingeloggt.");
 break;
 
 case "r":
 
 if (token[4].Contains("hat dir gerade"))
 KSC.SendMessage("/m +");
 
 break;
 
 case "k":
 
 if (token[1].Contains("Briefkasten"))
 new MailBox(token[20]).Show();
 
 break;
 }
 }
 }
 }
 
 
 MailBox.cs
 
 using System;
 using System.Windows.Forms;
 using System.Collections.Generic;
 
 class MailBox
 {
 #region Getter
 
 public String Sender
 {
 get;
 private set;
 }
 
 public String Date
 {
 get;
 private set;
 }
 
 public String Content
 {
 get;
 private set;
 }
 
 public List<MailBox> Messages
 {
 get;
 private set;
 }
 
 #endregion
 
 public MailBox(String token)
 {
 Messages = new List<MailBox>();
 
 String[] msg = token.Split(new String[] { "Weiterleiten" }, StringSplitOptions.RemoveEmptyEntries);
 
 for (int i = 0; i < msg.Length - 1; i++)
 {
 Sender = Split(msg[i], "°14°_°BB>_h", 1).Split('|')[0];
 Date = Split(msg[i], "|/w "<°°°_#", 1).Split('#')[0];
 Content = Split(Split(msg[i], "°>left<°°+0011r+509°", 1), "°+5000°°r°°", 0);
 Content = Content.Remove(Content.Length - 1);
 
 Messages.Add(new MailBox(Sender, Date, Content));
 }
 }
 
 public void Show()
 {
 foreach (MailBox mBox in Messages)
 {
 MessageBox.Show(String.Format("Absender: {0}\nDatum: {1}\nNachricht:\n{2}", mBox.Sender, mBox.Date, mBox.Content),
 "Neue Nachricht", MessageBoxButtons.OK, MessageBoxIcon.Information);
 }
 }
 
 private MailBox(String sender, String date, String content)
 {
 this.Sender = sender;
 this.Date = date;
 this.Content = content;
 }
 
 private String Split(String str, String separator, int index)
 {
 try
 {
 return str.Split(new String[] { separator }, StringSplitOptions.RemoveEmptyEntries)[index];
 }
 catch (IndexOutOfRangeException)
 {
 return String.Empty;
 }
 }
 }
 
 
Diese Seite nutzt Cookies, um das Nutzererlebnis zu verbessern. Klicken Sie hier, um das Cookie-Tracking zu deaktivieren.
 
									 
														 
														 
					
					
					
						 Zitieren
  Zitieren