Daten in einer file.txt speichern.

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

  • Daten in einer file.txt speichern.

    Hallo
    ich versuche meine Ergebnisse in einer txt Datei zu speichern. Das klappt aber nicht. Dann habe ich NSLog benutzt um zu gucken, was daraus kommt. Dann hab ich gesehen, dass ich nur (null) bekomme.
    hier ist mein code:

    Quellcode

    1. NSArray * array = @[@-0.341995f , @-0.215363f , @0.005142f , ...
    2. for( i = 0 ; i < SIZE ; i++ ) {
    3. data[i][0] = [array[i] floatValue];
    4. data[i][1] = 0.0;
    5. }
    6. fftw_execute( plan_forward );
    7. for( i = 0 ; i < SIZE ; i++ ) {
    8. NSMutableArray *sensorData;
    9. NSString *strSensorData = [NSString stringWithFormat:@" %.6f %.6f ", fft_result[i][0], fft_result[i][1]];
    10. [sensorData addObject:strSensorData];
    11. NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    12. NSString *docDir = [paths objectAtIndex: 0];
    13. NSString *docFile = [docDir stringByAppendingPathComponent: @"sensordataX.txt"];
    14. NSFileManager *fileManager = [NSFileManager defaultManager];
    15. if (![fileManager fileExistsAtPath:docDir])
    16. [fileManager createFileAtPath:docDir
    17. contents:nil
    18. attributes:nil];
    19. [sensorData writeToFile:docFile atomically:YES];
    20. [sensorData.description writeToFile:docFile atomically:YES encoding:NSUTF8StringEncoding error:nil];
    21. NSLog(@" %@ " ,sensorData );
    Alles anzeigen


    und ich bekomme:
    2014-06-04 16:21:26.833 fftwneu[27511:907] (null)

    2014-06-04 16:21:26.834 fftwneu[27511:907] (null)

    2014-06-04 16:21:26.835 fftwneu[27511:907] (null)

    2014-06-04 16:21:26.836 fftwneu[27511:907] (null)

    2014-06-04 16:21:26.836 fftwneu[27511:907] (null)

    2014-06-04 16:21:26.837 fftwneu[27511:907] (null)

    2014-06-04 16:21:26.837 fftwneu[27511:907] (null)

    2014-06-04 16:21:26.838 fftwneu[27511:907] (null)

    2014-06-04 16:21:26.838 fftwneu[27511:907] (null)

    2014-06-04 16:21:26.839 fftwneu[27511:907] (null)
    ...

    Was mache ich hier falsch? ?(
  • sensorData ist ein nil-Pointer, da Du das eigentliche Array nie erzeugst. Außerdem ergeben deine beiden Zeilen 20 und 21 wenig Sinn: Einmal schreibst Du das Array (das würde eine PropertyList ergeben) und einmal die Array-Description (ein String) in das File. Da musst Du dich schon entscheiden.

    ciao

    gandhi
  • Mit

    Quellcode

    1. ​NSMutableArray *sensorData;

    hast Du zwar eine Referenz vom Typ NSMutableArray aber Dir fehlt natürlich noch das passende Objekt auf welches die Referenz dann zeigen könnte. ;)

    Also lieber

    Quellcode

    1. NSMutableArray *sensorData = [NSMutableArray array];

    oder gleich

    Quellcode

    1. NSMutableArray *sensorData = [NSMutableArray arrayWithCapacity:SIZE];


    Was sollen diese beiden Zeilen bewirken?

    Quellcode

    1. ​[sensorData writeToFile:docFile atomically:YES];
    2. [sensorData.description writeToFile:docFile atomically:YES encoding:NSUTF8StringEncoding error:nil];


    Weiterhin schreibst Du bei jedem Durchlauf der Schleife in die gleiche Datei "sensordataX.txt". D.h. Du hast am Ende Schleife nur die Daten aus dem letzten Durchgang in der Datei.