1. #1
    Avatar von JackThursby
    Registriert seit
    11.12.2011
    Beiträge
    108
    Thanked 11 Times in 8 Posts

    Standard C# Freundesliste auseinandernehmen?

    Hey
    Hab grade n kleines Problem. Ich brauche aus der /F jeden Nickname, am besten in nem array.
    Das Problem ist, vom Server bekomme ich folgende Tokens gesendet:
    Code:
    OUTPUT: e\0/sleep\0/F
    INPUT: k\0Friendlistõsfriendõ-õf\0\0\0h¾¼ûãEl         õcgFh¾¼ûãWl         õcgFh¾¼ûãCpBNpBNl õcgFh¾¼ûãClFriendlistõblgQf\0\0\0hååÿãSl õcgFh¾¼ûããCc°>{overlaypositioning}left<°#°>py_r.gif<°°%06°_°>_hHolgi|/serverpp "|/w "<°_ war vor _35 Minuten_ im Channel _?_°%00°#°>py_r.gif<°°%06°_°>_hKolloid|/serverpp "|/w "<°_ war vor _38 Minuten_ im Channel _?_#"auf Wiedersehen °>/hi|http://forum.knuddels.de/ubbthreads.php?ubb=showflat&Number=2210637<°"  °>_h[His]|/readmehis Kolloid<r°°%00°#°>py_r.gif<°°%06°_°>_hPlex|/serverpp "|/w "<°_ war vor _2 Tagen 6 Stunden 29 Minuten_ im Channel _?_#"°>{smstart|814}<°°>{smdata|1}<°°>sm_boombox-boy_none1_bg...b.my_5.h_35.mx_-17.w_66.png<>sm_boombox-boy_none1_ani...b.my_5.h_35.mx_-83.w_0.gif<°°>{smend}<°"°%00°##\Auf deiner Liste stehen im Moment _3_ von 40 möglichen Freunden.#õ~tpõsN@f\0\0\0h¾¼ûipics/cloudsblue.gifõ\0ãSpFb   OK   õdpgQf\0\0\0h¾¼ûãbsortiert nach NicknameõsdpgQf\0\0\0h¾¼ûãl õcgKh¾¼ûãbletzte DialogeõsdpgQf\0\0\0h¾¼ûãl õcgKh¾¼ûãããã
    Wie ihr im Beispiel sehen könnt brauche ich jetzt die drei nicknames
    -Holgi
    -Kolloid
    -Plex

    Wie kann ich jetzt jeden Nick in den Array legen?
    Bzw, eigtl muss ich nur wissen wie ich den Nick aus den Tokens filtern kann ~

  2. #2
    Avatar von Diebspiel
    Registriert seit
    18.11.2011
    Beiträge
    311
    Thanked 191 Times in 102 Posts

    Standard C# Freundesliste auseinandernehmen?

    Am besten mit Regex.Matches und einer MatchCollection. Da hast du dann auch ein Array.

  3. #3

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

    Standard C# Freundesliste auseinandernehmen?

    Hab ich bei meinem StayOnlineBot drin und funktioniert ganz gut.


    private void getFriends(String token)
    {
    String[] friendlist = token.Split('#');

    foreach (String _friendlist in friendlist)
    {
    if (_friendlist.Contains("°>_h"))
    {
    String x = _friendlist.Substring(_friendlist.IndexOf("°>_h"));
    bool isOnline = false;

    if (_friendlist.Contains("ONLINE"))
    {
    isOnline = true;
    }

    if (!x.Contains(".gif"))
    {
    if (isOnline)
    {
    ListViewItem lw = new ListViewItem();
    lw.Text = x.Substring(4).Split('|')[0].Replace("\", String.Empty);
    lw.ImageIndex = 0;

    if (lw.Text != "[His]")
    this.listView1.Invoke((MethodInvoker)delegate() { listView1.Items.Add(lw); });
    }
    else
    {
    ListViewItem _lw = new ListViewItem();
    _lw.Text = x.Substring(4).Split('|')[0].Replace("\", String.Empty);
    _lw.ImageIndex = 1;

    if (_lw.Text != "[His]")
    this.listView1.Invoke((MethodInvoker)delegate() { listView2.Items.Add(_lw); });
    }
    }

    }
    }

    Regex R = new Regex(@"Auf deiner Liste stehen im Moment _(\d+)_ von (\d+) möglichen Freunden.");
    String _friends = R.Match(token).Groups[1].Value;
    String _friendsMax = R.Match(token).Groups[2].Value;

    this.lbl_friends.Invoke((MethodInvoker)delegate()
    {
    lbl_friends.Text = String.Format("Auf deiner Liste stehen im Moment {0} von {1} möglichen Freunden.", _friends, _friendsMax);
    });
    }


    Credits nicht vergessen.

  4. #4
    Avatar von JackThursby
    Registriert seit
    11.12.2011
    Beiträge
    108
    Thanked 11 Times in 8 Posts

    Standard C# Freundesliste auseinandernehmen?

    Ich glaub irgendwie keines meiner tools wird jemals ohne Credits an dich gehen
    hb mir jetz folgenden Code abgeleitet (nur um mein mitteilungsbedürfniss etwas zu stillen ;D) :


    if (token[1].Contains("Friendlist"))
    {
    String[] FriendlistServ = token[7].Split('#');
    foreach (String _FriendlistServ in FriendlistServ)
    {
    if (_FriendlistServ.Contains("°>_h"))
    {
    string RohesZeug = _FriendlistServ.Substring(_FriendlistServ.IndexOf("°>_h"));
    string FriendsServCut = RohesZeug.Substring(4).Split('|')[0].Replace("\", String.Empty);
    if (FriendsServCut != "[His]")
    {
    Console.WriteLine("{0}", FriendsServCut);
    }
    }
    }


    }


    P.S.
    Jaaa... Schon wieder Konsole ;P

  5. #5
    Avatar von Diebspiel
    Registriert seit
    18.11.2011
    Beiträge
    311
    Thanked 191 Times in 102 Posts

    Standard C# Freundesliste auseinandernehmen?

    Schade, dass du nur Copy&Paste betreibst. Sonst hätte ich eben mit Dir die Schritte durchgemacht, die nötig sind und du hättest alles verstanden und kannst es beim nächsten Mal auch anderweitig auswendig anwenden.

    Grüße~

  6. #6
    Avatar von JackThursby
    Registriert seit
    11.12.2011
    Beiträge
    108
    Thanked 11 Times in 8 Posts

    Standard C# Freundesliste auseinandernehmen?

    C&P war das nicht, auch wenns eventuell so aussieht. Don's Code war eher n Ansatz. Habe das ja auch von Anfang an mit RegEx gelöst, allerdings bin ich durch Don's Code erst auf die Idee gekommen wie ich [His] entferne, da das ja auch wie ein Nickname übergeben wird. Hatte während meiner Tests anfangs als Ausgabe nur die Anzahl an gefundenen Nicks, und da diese immer etwas höher war, dachte ich lese das ganze einfach nur falsch aus. Sicher, beim zweiten Drchlauf hab ich mich schon an Dons Code orientiert, allerdings war meiner auch deutlich "chaotischer" und machte ewig an den Strings rum.

  7. #7
    Avatar von DMW007
    Registriert seit
    15.11.2011
    Beiträge
    6.236
    Thanked 9.136 Times in 3.010 Posts
    Blog Entries
    5

    Standard C# Freundesliste auseinandernehmen?

    Kürzer und sauberer

    PHP-Code:
    if(token[1].contains("Friendlist")) {
        
    String[] raw token[7].split("°_°>_");
        for(
    int i 1raw.lengthi++){
            
    String friend raw[i].substring(1raw[i].indexOf("|"));
            
    System.out.println(friend);
        }

    Ist Java, is aber in C# dasselbe, musst nur die Namen der Funktionen am Anfang groß schreiben.

    Siehe auch http://it-repo.net/2011/04/19/progra...liste-auslesen


Ähnliche Themen

  1. Freundesliste wichtig?
    Von Kennstdu im Forum Fragen & Probleme
    Antworten: 4
    Letzter Beitrag: 17.02.2013, 14:42
  2. Mehrere Leute von Facebook Freundesliste löschen
    Von Prinz of Love im Forum Internet und Technik
    Antworten: 4
    Letzter Beitrag: 13.02.2012, 21:43
Diese Seite nutzt Cookies, um das Nutzererlebnis zu verbessern. Klicken Sie hier, um das Cookie-Tracking zu deaktivieren.