Empfangene Daten auf programmtechnischem Wege in Dictionary nach und nach einfügen

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Empfangene Daten auf programmtechnischem Wege in Dictionary nach und nach einfügen

    Hallo!

    wenn ich die nachstehenden Daten als PList einlade, ist das ja kein Problem. Ich empfange diese
    Daten aber wenn "nach und nach", und möchte Sie nicht erst in einem plist schreiben, sondern direkt
    in ein NSMutableDictionary auf programmtechn. Weg einfügen. 8)

    Wie erstelle ich im NSMutableDictionary einen key, der wiederum die selben Schlüssel
    mit Daten wie im nachstehenden PList-Beispiel beinhalten soll. Ich weiß nicht,
    wie ich das programmtechn. umsetzen soll. Habe zwar schon viele Beispiele für die
    Darstellung mit einem UITableCellView gefunden, aber keines in der die Daten nicht
    schon in einer plist zu finden sind. Ich müsste diese erst in einem NSMutableDictionary
    "sammeln", bevor ich diese speichern kann... :(

    Wenn ihr mit ein Beispielgeben könntest, wie ich Daten in diesem Format "von Hand"
    sammeln könnte? - Danke schon mal vorab für eure Hilfe im voraus!

    Quellcode

    1. <dict>
    2. <key>server1</key>
    3. <dict>
    4. <key>serveripandport</key>
    5. <string>88.198.180.49:28960</string>
    6. <key>servername</key>
    7. <string>ETHost @gameserver-discount.de</string>
    8. <key>serverslots</key>
    9. <string>12</string>
    10. <key>useronline</key>
    11. <string>0</string>
    12. <key>gametyp</key>
    13. <string>DM</string>
    14. <key>map</key>
    15. <string>mp_paintball</string>
    16. <key>game</key>
    17. <string>RTCW-ET</string>
    18. </dict>
    19. <key>server2</key>
    20. <dict>
    21. <key>serveripandport</key>
    22. <string>88.198.180.49:28961</string>
    23. <key>servername</key>
    24. <string>CoD2 @gameserver-discount.de</string>
    25. <key>serverslots</key>
    26. <string>14</string>
    27. <key>useronline</key>
    28. <string>1</string>
    29. <key>gametyp</key>
    30. <string>TDM</string>
    31. <key>map</key>
    32. <string>mp_bullshit</string>
    33. <key>game</key>
    34. <string>Call of Duty 2</string>
    35. </dict>
    36. <key>server3</key>
    37. <dict>
    38. <key>serveripandport</key>
    39. <string>213.238.33.138:29960</string>
    40. <key>servername</key>
    41. <string>CoD4 Grufties</string>
    42. <key>serverslots</key>
    43. <string>14</string>
    44. <key>useronline</key>
    45. <string>1</string>
    46. <key>gametyp</key>
    47. <string>TDM</string>
    48. <key>map</key>
    49. <string>mp_bullshit</string>
    50. <key>game</key>
    51. <string>Call of Duty 2</string>
    52. </dict>
    53. </dict>
    Alles anzeigen


    Hier das "kleine" Projekt, was doch größer geworden ist als gedacht:
    [Blockierte Grafik: http://bilder.clansurf.de/cms/images/GSS.jpg]
    so long,
    MasterBlaster.
  • Hi,

    ehrlich gesagt ich weiss es selbst nicht. ?(

    Weiss halt immer noch nicht so recht, wie ich letzendlich die "Unterscheidung" der einzelnen
    verschiedenen "Datensatzpaar" beim hinzufügen auf programmtechnischen Weg hinzufügen
    kann. Weitere Informationen welche ich als Daten via TCP/IP nur in Form von "NSString" in
    Sachen "Daten" erhalte, möchte ich einfach nur hinzufügen. Wie muss ich was mit diesen
    NSStrings machen, damit diese in das Dict entsprechend aufgenommen werden. ;(

    Ich empfange ja quasi immer nachfolgende Strings zu einer Serverinformation:

    Quellcode

    1. NSString *IP=@"88.198.180.49:28960";
    2. NSString *Hostname=@ETHost @gameserver-discount.de";
    3. NSString *Slots=@"12";
    4. NSString *Online=@"0";
    5. NSString *Gametyp=@"DM";
    6. NSString *map=@"mp_paintball";
    7. NSString *game=@"RTCW-ET";

    Wie würden die Programmzeilen dazu lauten, die zuvor aufgelisteten Daten z.B. als
    Position "server4" letztendlich ins Dict aufnehmen und speichern zu können? :thumbup:
    so long,
    MasterBlaster.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von MasterBlaster ()

  • Nicht getestet und bestimmt buggy, nur fürs Verständnis:

    Quellcode

    1. NSMutableArray *myCollectedDataArray = [NSMutableArray array];
    2. // Du hast bestimmt voll die gute Methode um festzustellen, ob die eintreffenden Daten gerade zu Server 1, Server 3 oder Server 13 gehören
    3. // und weißt natürlich auch ganz genau, wann ein Server aufhört und der Nächste beginnt...
    4. // Dein serverData-Objekt ist natürlich so geil gestaltet, dass -hasObject das aktuell markierte Objekt abfragt,
    5. // bei Existenz 'true' zurück gibt und das nächste Objekt markiert.
    6. while([serverData hasObject])
    7. {
    8. id someString;
    9. NSMutableDictionary *currentServer = [NSMutableDictionary dictionary];
    10. foreach([serverData currentObject] as someString)
    11. {
    12. // deine supergeile Methode stringValue holt die Zeichenkette (alles nach '=')aus der Serverantwort und keyValue alles vor '='
    13. [currentServer addObject:[someString stringValue] forKey:[someString keyValue]];
    14. }
    15. [myCollectedDataArray addObject:currentServer];
    16. }
    Alles anzeigen

    Du kannst gern Dictionaries an Stelle des Arrays nehmen. Oder auch Sets.
    Ich mag da Arrays lieber, weil ich mir in dem Fall keinen Kopp um die Keys für die Server machen muss.
    Ist aber auch kein großes Problem, du musst nur die Nummern der Durchläufe irgendwo vorhalten und machst dann in Zeile 15 einfach

    Quellcode

    1. [myCollectedDataDict addObject:currentServer forKey:[NSString stringWithFormat:@"server%d",durchlauf]];


    ehrlich gesagt ich weiss es selbst nicht.

    Ich habe so das Gefühl, dass da das Hauptproblem liegt. ;)

    Woher und in welchem Format beziehst du deine Daten?
    Wie kommen sie an? Was tust du da eigentlich?
    «Applejack» "Don't you use your fancy mathematics to muddle the issue!"

    Iä-86! Iä-64! Awavauatsh fthagn!

    kmr schrieb:

    Ach, Du bist auch so ein leichtgläubiger Zeitgenosse, der alles glaubt, was irgendwelche Typen vor sich hin brabbeln. :-P
  • Hi,

    Lucas de Vil schrieb:

    --> "ehrlich gesagt ich weiss es selbst nicht."
    Ich habe so das Gefühl, dass da das Hauptproblem liegt. ;)
    ...genau DA liegt das Problem - da hast Du recht - ICH bin mehr das Problem.... ;( 8|

    Lucas de Vil schrieb:

    Woher und in welchem Format beziehst du deine Daten?
    Wie kommen sie an? Was tust du da eigentlich?
    Die Daten liegen wenn in Textform an (ASCII), und diese erhalte ich vom Server selbst. Nachdem
    ich mir dessen IP:Port Adresse wie auch immer "besorgt" habe (meißt sind es eigene oder
    halt angemietete Game- und Voiceserver, kann ich via TCP/IP (meißt UDP) sowie als auch
    bei dem zu dem Spiel zugehörigen "Verzeichnisserver" mir die Detailinformationen auf
    Anfrage holen. Das kann unter Umständen für einen Gameserver oder dergleichen recht
    viel auf einmal sein. Die Daten erhalte ich Zeilenweise oder in Strukturen, je nach Spiel
    bzw. Hersteller, und muss diese dann "zerpflücken", entsprechend also aufbereiten.
    Was tust du da eigentlich?
    Wer weiß das schon, wenn ich das noch nicht mal weiß. Keiner weiß, was er soll,
    keiner weiß, was er will, aber alle machen mit. Ist doch toll... 8o

    So wie es ausschaut wird, sobald ich die Genehmigung für eine Veröffentlichung
    bekomme (wegen der Nennung eingetragener Warenzeichen), als App für iPad
    und für's iPhone geben. Mehr Gedanken habe ich noch nicht daran verschwendet... 8)
    so long,
    MasterBlaster.
  • Hi,

    wollte das Beispiel von Dir gerade mal umsetzen, kennt aber leider nicht die genannte Funktion:

    Quellcode

    1. [myCollectedDataDict addObject:currentServer forKey:[NSString stringWithFormat:@"server%d",durchlauf]];


    Es kommt dann halt beim compilieren die Fehlermeldung:

    Quellcode

    1. FirstDetailViewController.m:206: warning: 'NSMutableDictionary' may not respond to '-addObject:forKey:'

    Ich habe es dann mit:

    Quellcode

    1. [md setObject:mdtemp forKey:[NSString stringWithFormat:@"server%d",nCounter]];

    versucht, aber leider ist dies wirklich nur als Referenz auf ein bestehenden Dict zu verstehen.Im Prinzip bräuchte ich aber eine Art wie "AddObject"
    So funktioniert es zwar wie gedacht, nur leider enthält jeder Eintrag dann die zuletzt im Dict "mdtemp" eingetragenen Daten, da dies nur als
    eine Art "Referenz" wohl gedacht ist. :huh:

    Gibt es da was in der Richtung, da ich nichts finde (zumindest dem möglich verständlichen Namen nach)?
    so long,
    MasterBlaster.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von MasterBlaster ()

  • MasterBlaster schrieb:

    wollte das Beispiel von Dir gerade mal umsetzen, kennt aber leider nicht die genannte Funktion:

    Du hast den Punkt mit dem 'Buggy' aber schon gelesen?
    Ja, es heißt '-setObject:forKey:'. Mein Fehler.

    Du hast offenbar wirklich keine Ahnung, was du da tust.
    Weißt du, was ein Dictionary ist? Weißt du, wie es aufgebaut ist? Weißt du, wie es funktioniert?

    Für mich liest es sich so als läge dein Fehler in dem Zusammenbau deines mdtemp-Dictionaries.
    «Applejack» "Don't you use your fancy mathematics to muddle the issue!"

    Iä-86! Iä-64! Awavauatsh fthagn!

    kmr schrieb:

    Ach, Du bist auch so ein leichtgläubiger Zeitgenosse, der alles glaubt, was irgendwelche Typen vor sich hin brabbeln. :-P
  • Hi,

    also grundsätzlich erst einmal ein Dankeschön vorab für deine/eure Geduld hier mit mir... :) .

    Ich wühle mich hier seit Tagen durch mehrere Bücher bezüglich Objective-C und iPhone/iPad
    durch, um Lösungen für solche Dinge zu finden, die unter anderen Betriebssystemen und anderen
    Frameworks innerhalb kürzester Zeit umsetzbar sind (z.B. Windows-Mobile) - aber hiermit
    können mir diese Bücher nicht wirklich helfen.

    Quellcode

    1. Du hast den Punkt mit dem 'Buggy' aber schon gelesen? Ja, es heißt
    2. '-setObject:forKey:'. Mein Fehler.

    Jo, habe ich schon gelesen... Muß aber erst einmal das vorhandene als Basis nehmen und alles weitere davon
    ableiten, bevor ich den "Bug" selbst herausfinden kann.

    Quellcode

    1. Du hast offenbar wirklich keine Ahnung,
    2. was du da tust.


    Hatte ich bis jetzt auch nie behauptet... irgendwann muß jeder mal mit etwas anfangen - so ist es auch beim Sex! :D

    Quellcode

    1. Weißt du, was ein Dictionary ist? Weißt du, wie es
    2. aufgebaut ist? Weißt du, wie es funktioniert?

    Bin mir nicht sicher, alles was ich bisher herausfinden konnte bzw. gelesen habe erklärt im Groben und Ganzen
    halt nur, das man dort eben halt geordnet, oder sage ich einfach mal "indiziert", "Daten" ablegen kann. Und
    dies soll auch in mehreren Ebenen möglich sein.

    Quellcode

    1. Für mich liest es sich so als läge dein Fehler in dem Zusammenbau deines mdtemp-Dictionaries.


    Ich werde das abermals bei den nächsten "Durchläufen" prüfen und das Ergebnis hier posten... ;(
    so long,
    MasterBlaster.
  • MasterBlaster schrieb:

    Ich wühle mich hier seit Tagen durch mehrere Bücher bezüglich Objective-C und iPhone/iPad
    durch, um Lösungen für solche Dinge zu finden, die unter anderen Betriebssystemen und anderen
    Frameworks innerhalb kürzester Zeit umsetzbar sind (z.B. Windows-Mobile) - aber hiermit
    können mir diese Bücher nicht wirklich helfen.

    Das liegt daran, dass du einfach nicht weißt, wie du anfangen willst.
    Bevor du bei der Vorbereitung zur Penetration das Kondom überrollst ziehst du dir im Allgemeinen auch erst einmal die Hose(n) aus.

    MasterBlaster schrieb:

    Hatte ich bis jetzt auch nie behauptet... irgendwann muß jeder mal mit etwas anfangen - so ist es auch beim Sex!

    Sicherlich.
    Wunder dich aber nicht, wenn dir die Damen und Herren davonlaufen, weil du permanent an deren Ohr rumfuhrwerkst.
    Eine Grundidee dessen, was du vor hast, sollte schon vorhanden sein.


    MasterBlaster schrieb:

    Weißt du, was ein Dictionary ist? Weißt du, wie es
    aufgebaut ist? Weißt du, wie es funktioniert?

    Bin mir nicht sicher, alles was ich bisher herausfinden konnte bzw. gelesen habe erklärt im Groben und Ganzen
    halt nur, das man dort eben halt geordnet, oder sage ich einfach mal "indiziert", "Daten" ablegen kann. Und
    dies soll auch in mehreren Ebenen möglich sein.


    'indiziert' ist gut. Arrays können Daten auch 'indiziert' speichern.
    Dictionaries speichern Paare aus Schlüsseln und Werten. An Hand des Schlüssels kannst du auf die damit gepaarten Daten zugreifen. Du kannst so zum Beispiel auch Daten überschreiben.
    Arrays speichern einen Index (Ganzzahl) und das dazugehörige Datum.
    Sets hingegen speichern ausschließlich die Daten. Dort kommst du über einen Index o.Ä. nicht an die Daten ran. Entsprechend sind sie auch sehr unsortiert.

    Am Besten findest du erst einmal heraus, welchen Datencontainer du warum brauchst.

    MasterBlaster schrieb:

    Ich werde das abermals bei den nächsten "Durchläufen" prüfen und das Ergebnis hier posten...

    +hm+
    Du hast ja eben noch ganz groß rumgetönt, es sei auf Windows Mobile einfacher...
    Beweis es!
    Wie würdest du dieses Problem (Daten vom Server holen, umbiegen, in einen Container packen) denn via C# und dem .Net Compact Framework lösen?
    Bitte Code. :)

    Dein Vorhaben ist nicht im Detail genug erläutert, um definitive Aussagen zu treffen.
    Für mich klingt es aber, als ließe sich diese Funktionalität innerhalb von 15 Minuten implementieren.
    Dazu muss man natürlich wissen, was man will und wie es geht...

    Deshalb will ich dich mal in die richtige Richtung schubsen.
    Denken und arbeiten darfst du aber.
    Also: her mit dem C# Code unter Verwendung des .Net Compact Frameworks auf Windows Mobile. ^^
    «Applejack» "Don't you use your fancy mathematics to muddle the issue!"

    Iä-86! Iä-64! Awavauatsh fthagn!

    kmr schrieb:

    Ach, Du bist auch so ein leichtgläubiger Zeitgenosse, der alles glaubt, was irgendwelche Typen vor sich hin brabbeln. :-P
  • Hi,

    also das Ziel ist eigentlich ganz einfach (wie schon in einer der Nachrichten zuvor erklärt),
    möchte ich in entsprechender Form, wie in der plist-Datei in Msg. No #3 dargestellte Daten haben,
    nennen wir Sie Infoblöcke, und zwar dann "zu identifizieren" über einen Index, wie bei einer einfachen
    und simplen Datenbank beispielsweise (server_1, server_2, server_3 usw.). Diese einzelnen Daten sind
    oder werden zuvor in Strings gespeichert, nachdem Sie empfangen wurden über's Internet. :rolleyes:

    Nach dem anschließenden speichern des Dict soll die plist wie die im Beispiel in Msg. No #1 ausschauen.

    Eine Alternative die mir allerdings nicht zusagt wäre, diese Daten auch direkt im entsprechenden
    Format in eine Datei schreiben zu können, oder in eine Datenbank. Das wäre aber zu einfach,
    bzw. für ein paar Zeilen die eh immer wieder sich ändern, letztendlich zu aufwendig. Diesen Weg
    zu Fuß, dessen Lösungsweg ich bislang nicht finden konnte, weder im Internet noch in Büchern,
    interessiert mich auch für zukünftige Verarbeitungen.

    Aber genau das was mich interessiert ist, wie kann ich diese Daten manuell im Programmcode
    in einem Dict so vorbereiten sprich sammeln, das wenn ich dieses dann in eine plist Datei speichern
    würde diese so ausschaut, wie die zuvor in Msg. No. #1 gezeigte. Das ist eigentlich alles! ^^

    Das ganze sagt mir dann somit auch in diesem Falle, da ich die Daten aus dem Beispiel
    in Msg. No. #1 ja aus einer plist-Datei auf einfachste Weise in ein Dict aufnehmen kann,
    das dies auch "zu Fuß" gehen muß. 8|

    Vielleicht ist es so erklärt ein wenig einfacher zu verstehen... 8)
    so long,
    MasterBlaster.
  • Hi,

    Lucas de Vil schrieb:

    Du zeigst mir jetzt bitte, wie das ganz schnell und einfach unter Windows Mobile geht.
    in dieser Art in etwa, was aber für Objective-C und dessen Framework für mich aktuell keine Option ist:

    Quellcode

    1. using System;
    2. using System.Collections.Generic;
    3. using System.Linq;
    4. using System.Text;
    5. namespace Console
    6. {
    7. class Program
    8. {
    9. static void Main(string[] args)
    10. {
    11. string[,] str_temp = new string[5,10];
    12. str_temp[0,0] = "Server1"; // Index
    13. str_temp[0,1] = "Serverdaten 1 String 1";
    14. str_temp[0,2] = "Serverdaten 1 String 2";
    15. str_temp[0,3] = "Serverdaten 1 String 3";
    16. str_temp[1,0] = "Server2"; // Index
    17. str_temp[1,1] = "Serverdaten 2 String 1";
    18. str_temp[1,2] = "Serverdaten 2 String 2";
    19. str_temp[1,3] = "Serverdaten 2 String 3";
    20. // ...usw.
    21. }
    22. }
    23. }
    Alles anzeigen


    Ziel ist es halt von meiner Seite aus heraus zu finden, das ganze in ein Dict zu bekommen, so wie die Daten
    letztend auch per plist geladen werden können - es muss auch "manuell" gehen. ;) Suche nun weiter nach
    dem ggf. vorhandenen Fehler bei mir im Code... Melde mich wieder, falls ich in der Lage war und fündig geworden bin.
    so long,
    MasterBlaster.
  • MasterBlaster schrieb:

    Hi,

    Lucas de Vil schrieb:

    Du zeigst mir jetzt bitte, wie das ganz schnell und einfach unter Windows Mobile geht.
    in dieser Art in etwa, was aber für Objective-C und dessen Framework für mich aktuell keine Option ist:

    Quellcode

    1. using System;
    2. using System.Collections.Generic;
    3. using System.Linq;
    4. using System.Text;
    5. namespace Console
    6. {
    7. class Program
    8. {
    9. static void Main(string[] args)
    10. {
    11. string[,] str_temp = new string[5,10];
    12. str_temp[0,0] = "Server1"; // Index
    13. str_temp[0,1] = "Serverdaten 1 String 1";
    14. str_temp[0,2] = "Serverdaten 1 String 2";
    15. str_temp[0,3] = "Serverdaten 1 String 3";
    16. str_temp[1,0] = "Server2"; // Index
    17. str_temp[1,1] = "Serverdaten 2 String 1";
    18. str_temp[1,2] = "Serverdaten 2 String 2";
    19. str_temp[1,3] = "Serverdaten 2 String 3";
    20. // ...usw.
    21. }
    22. }
    23. }
    Alles anzeigen


    Ziel ist es halt von meiner Seite aus heraus zu finden, das ganze in ein Dict zu bekommen, so wie die Daten
    letztend auch per plist geladen werden können - es muss auch "manuell" gehen. ;) Suche nun weiter nach
    dem ggf. vorhandenen Fehler bei mir im Code... Melde mich wieder, falls ich in der Lage war und fündig geworden bin.

    Das sind keine empfangenden Daten. Das geht übrigens in C++ noch einfacher und in Objective-C ähnlich. Es ist aber nicht das, was du willst.

    Noch etwas, was einfach geht:

    int a = 1+2;

    Hat aber auch nichts mit dem Thema zu tun.
    Es hat noch nie etwas gefunzt. To tear down the Wall would be a Werror!
    25.06.2016: [Swift] gehört zu meinen *Favorite Tags* auf SO. In welcher Bedeutung von "favorite"?
  • MasterBlaster schrieb:


    Quellcode

    1. using System;
    2. using System.Collections.Generic;
    3. using System.Linq;
    4. using System.Text;
    5. namespace Console
    6. {
    7. class Program
    8. {
    9. static void Main(string[] args)
    10. {
    11. string[,] str_temp = new string[5,10];
    12. str_temp[0,0] = "Server1"; // Index
    13. str_temp[0,1] = "Serverdaten 1 String 1";
    14. str_temp[0,2] = "Serverdaten 1 String 2";
    15. str_temp[0,3] = "Serverdaten 1 String 3";
    16. str_temp[1,0] = "Server2"; // Index
    17. str_temp[1,1] = "Serverdaten 2 String 1";
    18. str_temp[1,2] = "Serverdaten 2 String 2";
    19. str_temp[1,3] = "Serverdaten 2 String 3";
    20. // ...usw.
    21. }
    22. }
    23. }
    Alles anzeigen

    Ein mehrdimensionales C-Array...
    Warum sollte das in Objective-C nicht funktionieren?

    Übrigens kannst du das auch kaum komplizierter hinbekommen.
    Kennst du Schleifen bzw. kannst damit umgehen?
    Vermutlich nicht...

    Aber DEN Code kann ich dir in ObjC geben:

    Quellcode

    1. - (void)splitEmUp:(NSData*)capturedData
    2. {
    3. NSMutableDictionary* mainDictionary = [NSMutableDictionary dictionary];
    4. NSMutableDictionary* subDictionary = [NSMutableDictionary dictionary];
    5. [subDictionary setObject:@"String1" forKey:@"ServerData1"];
    6. [subDictionary setObject:@"String2" forKey:@"ServerData2"];
    7. [subDictionary setObject:@"String3" forKey:@"ServerData3"];
    8. [mainDictionary setObject:subDictionary forKey:@"Server1"];
    9. [subDictionary setObject:@"String1" forKey:@"ServerData1"];
    10. [subDictionary setObject:@"String2" forKey:@"ServerData2"];
    11. [subDictionary setObject:@"String3" forKey:@"ServerData3"];
    12. [mainDictionary setObject:subDictionary forKey:@"Server2"];
    13. }
    14. }
    Alles anzeigen


    Die Möglichkeit fündig zu werden schätze ich als sehr gering ein.

    Du hast aber immer noch weder geladene Daten noch sonst irgendwas.
    Nur händisch ein Hauptdictionary gefüllt, welches zwei Unterdictionaries beinhaltet.

    Und komm von dem PLIST-Wahn weg. ;)
    Du willst einen Objektgraphen abbilden, mehr nicht.
    «Applejack» "Don't you use your fancy mathematics to muddle the issue!"

    Iä-86! Iä-64! Awavauatsh fthagn!

    kmr schrieb:

    Ach, Du bist auch so ein leichtgläubiger Zeitgenosse, der alles glaubt, was irgendwelche Typen vor sich hin brabbeln. :-P
  • Hi Amin,
    Das sind keine empfangenden Daten. Das geht übrigens in C++ noch einfacher und in Objective-C ähnlich. Es ist aber nicht das, was du willst.
    die Rohdaten über TCP/IP sehen bei einem Servertyp z.B. wie folgt aus:

    Quellcode

    1. FF FF FF FF 73 74 61 74 75 73 52 65 73 70 6F 6E ;ÿÿÿÿstatusRespon
    2. 73 65 0A 5C 67 5F 67 61 6D 65 4D 6F 64 5C 31 5C ;se.\g_gameMod\1\
    3. 67 5F 6E 65 65 64 70 61 73 73 5C 30 5C 67 61 6D ;g_needpass\0\gam
    4. 65 6E 61 6D 65 5C 4E 6F 47 68 6F 73 74 5C 4D 6F ;ename\NoGhost\Mo
    5. 64 5F 42 75 69 6C 64 5C 35 33 38 5C 4D 6F 64 5F ;d_Build\538\Mod_
    6. 57 65 62 73 69 74 65 5C 6E 6F 67 68 6F 73 74 2E ;Website\noghost.
    7. 73 65 72 76 65 71 75 61 6B 65 2E 63 6F 6D 5C 4D ;servequake.com\M
    8. 6F 64 5F 41 75 74 68 6F 72 5C 4D 61 76 65 72 69 ;od_Author\Maveri
    9. 63 6B 5C 62 6F 74 5F 6D 69 6E 70 6C 61 79 65 72 ;ck\bot_minplayer
    10. 73 5C 31 5C 73 76 5F 70 72 69 76 61 74 65 43 6C ;s\1\sv_privateCl
    11. 69 65 6E 74 73 5C 33 5C 6D 61 70 6E 61 6D 65 5C ;ients\3\mapname\
    12. 71 33 64 6D 37 5C 70 72 6F 74 6F 63 6F 6C 5C 34 ;q3dm7\protocol\4
    13. 33 5C 67 5F 67 61 6D 65 74 79 70 65 5C 33 5C 76 ;3\g_gametype\3\v
    14. 65 72 73 69 6F 6E 5C 51 33 20 31 2E 31 36 6E 20 ;ersion\Q3 1.16n
    15. 6C 69 6E 75 78 2D 69 33 38 36 20 4D 61 72 20 31 ;linux-i386 Mar 1
    16. 34 20 32 30 30 30 5C 64 6D 66 6C 61 67 73 5C 32 ;4 2000\dmflags\2
    17. 30 35 36 5C 66 72 61 67 6C 69 6D 69 74 5C 32 35 ;056\fraglimit\25
    18. 5C 74 69 6D 65 6C 69 6D 69 74 5C 34 30 5C 73 76 ;\timelimit\40\sv
    19. 5F 6B 65 79 77 6F 72 64 73 5C 31 2E 31 36 6E 5C ;_keywords\1.16n\
    20. 73 76 5F 68 6F 73 74 6E 61 6D 65 5C 53 53 7C 20 ;sv_hostname\SS|
    21. 54 44 4D 20 46 52 45 45 5A 45 5C 73 76 5F 6D 61 ;TDM FREEZE\sv_ma
    22. 78 63 6C 69 65 6E 74 73 5C 31 35 5C 73 76 5F 6D ;xclients\15\sv_m
    23. 61 78 52 61 74 65 5C 34 30 30 30 30 5C 73 76 5F ;axRate\40000\sv_
    24. 6D 69 6E 50 69 6E 67 5C 30 5C 73 76 5F 6D 61 78 ;minPing\0\sv_max
    25. 50 69 6E 67 5C 30 5C 73 76 5F 66 6C 6F 6F 64 50 ;Ping\0\sv_floodP
    26. 72 6F 74 65 63 74 5C 30 5C 67 5F 6D 61 78 47 61 ;rotect\0\g_maxGa
    27. 6D 65 43 6C 69 65 6E 74 73 5C 30 5C 63 61 70 74 ;meClients\0\capt
    28. 75 72 65 6C 69 6D 69 74 5C 30 0A 34 35 20 32 36 ;urelimit\0.45 26
    29. 37 20 22 73 6D 61 6C 6C 76 69 6C 6C 65 22 0A 33 ;7 "smallville".3
    30. 32 20 31 30 32 20 22 5E 31 43 41 52 4C 4F 53 58 ;2 102 "^1CARLOSX
    31. 56 47 31 22 0A 33 30 20 31 32 33 20 22 5E 37 6C ;VG1".30 123 "^7l
    32. 75 63 6B 79 5E 34 73 6E 69 70 65 72 22 0A 33 36 ;ucky^4sniper".36
    33. 20 33 35 20 22 5E 33 5E 5E 30 52 41 56 45 4E 22 ; 35 "^3^^0RAVEN"
    34. 0A 31 30 37 20 33 31 20 22 5E 31 50 6F 6C 69 63 ;.107 31 "^1Polic
    35. 65 20 53 74 61 74 65 5E 32 2D 5E 34 7B 5E 32 55 ;e State^2-^4{^2U
    36. 5E 34 7D 5E 34 45 5E 32 22 0A 34 36 20 32 37 32 ;^4}^4E^2".46 272
    37. 20 22 5E 31 4C 69 6E 67 21 22 0A 35 35 20 31 35 ; "^1Ling!".55 15
    38. 30 20 22 4B 75 6E 73 61 6E 67 77 75 22 0A 35 38 ;0 "Kunsangwu".58
    39. 20 32 33 31 20 22 18 5E 34 41 45 42 5E 32 1A 5E ; 231 "^4AEB^2^
    40. 33 4B 54 45 54 4F 19 5E 31 10 5E 35 4C 5E 31 11 ;3KTETO^1^5L^1
    41. 5E 37 22 0A 33 35 20 31 38 32 20 22 61 72 67 68 ;^7".35 182 "argh
    42. 22 0A 31 30 30 20 37 30 20 22 5E 37 53 5E 38 74 ;".100 70 "^7S^8t
    43. 6F 6E 65 5E 37 52 5E 38 2D 5E 37 7B 5E 38 55 5E ;one^7R^8-^7{^8U^
    44. 37 7D 5E 38 45 5E 37 2D 22 0A 34 33 20 32 33 39 ;7}^8E^7-".43 239
    45. 20 22 50 61 61 73 63 68 22 0A 35 30 20 31 35 33 ; "Paasch".50 153
    46. 20 22 41 63 55 6E 41 6D 41 74 41 74 41 22 0A ; "AcUnAmAtAtA"
    47. Key-Struct:
    48. (int32) Header
    49. (string) statusResponse
    50. (string) Key
    51. (string) Value
    52. (string) Key
    53. (string) Value
    54. (string) Player Info
    55. (string) Player Info
    Alles anzeigen


    ...und daraus bastel ich mir die einzelnen Informationen als Strings zusammen, damit
    ich diese halt formatiert anzeigen kann - und dann auch noch zu dem richtigen Server. :P
    so long,
    MasterBlaster.
  • Dem schließe ich mich an.
    (Ja, ich erkenne Textdateien, wenn ich sie sehe. Selbst wenn sie aus unerfindlichen und unsinnigen NERD-Gründen via Hex-Editor geöffnet und die Ausgabe eingefügt wurde. Auch kenne ich Structs. Was willst du uns damit sagen?)
    «Applejack» "Don't you use your fancy mathematics to muddle the issue!"

    Iä-86! Iä-64! Awavauatsh fthagn!

    kmr schrieb:

    Ach, Du bist auch so ein leichtgläubiger Zeitgenosse, der alles glaubt, was irgendwelche Typen vor sich hin brabbeln. :-P
  • Hi,

    dachte dies wäre von Dir eine Frage (und/oder auch Aufforderung) gewesen:
    Das sind keine empfangenden Daten.
    Dies sind die Rohdaten welche es einerseits gilt umzuwandeln in "strings", andererseits anschließend
    diese dann z.B. in ein Dict abzulegen. Die Datenstruktur ist darunter kurz beschrieben als "struct".
    Mit anderen Worten, dies sind die zu empfangenen Daten, wie Sie beim Client eintreffen - nur das
    vielleicht als Zusatzinfo, wie was wo ankommt... ^^
    so long,
    MasterBlaster.