Ascii Daten in einem Tableview anzeigen.

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

  • Ascii Daten in einem Tableview anzeigen.

    Hallo Leute,

    ich versuche grade ¸ber einen Button eine .log Datei zu ˆffnen und den Inhalt sortiert auf einem TableView anzuzeigen. Ich kann aber die .log Datei nicht ˆffnen und somit auch keine Daten in den Speicher laden. Kennt jemand zuf‰llig eine deutsche Anleitung f¸r sowas? Die kˆnnten wir dann ja auch hier posten.
  • Kurzanleitung (aus'm Kopf, also keine Garantie f¸r's richtig sein):

    - Mit einem NSOpenPanel, den User die .log Datei ausw‰hlen lassen
    ergibt den Pfad als String

    - logData = [[NSString alloc] initWithContentsOfFile: filePath];
    um das ganze in den Speicher zu laden.

    - array = [logData componentsSeparatedByByString: @"\n"];
    liefert Dir einen Array von lauter kleinen Strings f¸r jede Zeile, wenn Dein Log format andere Trennzeichen verwendet, dann entsprechend ‰ndern.

    - wenn Du die einzelnen Zeilen noch weiter auftrennen muflt, dann nimm wieder componentsSeparatedByString: oder wenn es komplizierter ist, NSScanner. Bei festen Feldweiten geht nat¸rlich auch substringWithRange: die einzelnen Feldwerte in ein Dictionary schreiben, noch ein array mit all diesen Dictionaries machen

    - einen TableDelegate machen der die Inhalt f¸r dieses arrays in in TableView liefert

    Kann man auch schˆn nach und nach Programmieren, erst die Datei ˆffnen und in ein TextView anzeigen, dann eine Tableview mit nur einer Spalte und jede Zeile des Logs drin anzeigen. dann die Daten pro zeile auf mehrere Spalten auftrennenund bis dahin hast Du tausende Ideen was, man noch machen kann... (sortieren, filtern etc.)

    Viel Spafl und Erfolg!

    - Titan =)
    - Titan =)

    "In theory, there is no difference between theory and practice.
    But in practice, there is."
    - Jan L.A. van de Snepscheut
  • Genau ;)

    So ˆffen ich ein File (geht auch sparsamer, wenn Du nicht HFSTypes ber¸cksichtigst):
    ÷ffnen des Files:

    -(IBAction)myAction:(id)sender
    {
    NSString *zielPfad;
    NSOpenPanel *op = [NSOpenPanel openPanel];
    NSMutableArray *fileTypes ;
    NSArray *fileNames;
    int answer;
    NSNumber *ansnum;
    NSString *NSFileTypeForHFSTypeCode(OSType hfsTypeCode); //extends file types with HFS types
    // Festlegen der Filetypes
    fileTypes = [NSMutableArray arrayWithObjects: @"log",NSFileTypeForHFSTypeCode('.xyza' ),nil];
    //-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.

    // Filebrowser ˆffnen
    [op setAllowsMultipleSelection:NO];
    answer = [op runModalForDirectory:nil file:nil types:fileTypes];

    if (answer == NSOKButton)
    {
    // wenn ein File gew‰hlt wurde
    fileNames = [op filenames];
    ansnum = [NSNumber numberWithInt:answer]; // Gibt Antwort zur¸ck, ob ein File gew‰hlt wurde
    zielPfad = [fileNames objectAtIndex: 0];

    NSData hat dann einige Methoden, um das FIle dann direkt in den Speicher zu laden.

    Man mufl aber halt wissen, wie die Daten aufgeteilt sind. Da hat mir Hexedit (hexedit.sourceforge.net/) gute Dienste geleistet.

    Eventuell hilft Dir auch DataHacker beim sortieren der Strings (sailer-online.de/pub/Cocoa/)

    Gr¸fle

    Ray