1. #1
    Permanent gesperrt

    Registriert seit
    22.05.2012
    Beiträge
    203
    Thanked 21 Times in 9 Posts

    Standard Briefkasten Parser

    Hier 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;
    }
    }
    }
    Angehängte Dateien Angehängte Dateien

Diese Seite nutzt Cookies, um das Nutzererlebnis zu verbessern. Klicken Sie hier, um das Cookie-Tracking zu deaktivieren.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191