Je pense que je suis un peu confus ici, ce que j'ai est un fichier texte avec les chiffres "5 10 2350" dedans. Comme vous pouvez le voir ci-dessous, j'essaie de lire la première valeur en utilisant readDataOfLength, je pense que peut-être que je devrais être en train de lire comme caractères, mais alors 10 est 2 caractères et 2350 est 4. Quelqu'un peut-il pointer m dans le bonne direction à lire ces.Lecture des données de NSData?
NSString *dataFile_IN = @"/Users/FGX/Documents/Xcode/syntax_FileIO/inData.txt";
NSFileHandle *inFile;
NSData *readBuffer;
int intBuffer;
int bufferSize = sizeof(int);
inFile = [NSFileHandle fileHandleForReadingAtPath:dataFile_IN];
if(inFile != nil) {
readBuffer = [inFile readDataOfLength:bufferSize];
[readBuffer getBytes: &intBuffer length: bufferSize];
NSLog(@"BUFFER: %d", intBuffer);
[inFile closeFile];
}
EDIT_001
deux excellentes réponses de Jarret et Ole, voici ce que je suis allé avec. Une dernière question "METHODE 02" récupère un retour chariot vers une ligne vide au bas du fichier texte, le renvoie sous forme de sous-chaîne, qui à son tour est convertie en "0" puis-je régler le NSCharacterSet pour arrêter cela, actuellement je vient d'ajouter une vérification de longueur sur la chaîne.
NSInteger intFromFile;
NSScanner *scanner;
NSArray *subStrings;
NSString *eachString;
// METHOD 01 Output: 57 58 59
strBuffer = [NSString stringWithContentsOfFile:dataFile_IN encoding:NSUTF8StringEncoding error:&fileError];
scanner = [NSScanner scannerWithString:strBuffer];
while ([scanner scanInteger:&intFromFile]) NSLog(@"%d", intFromFile);
// METHOD 02 Output: 57 58 59 0
strBuffer = [NSString stringWithContentsOfFile:dataFile_IN encoding:NSUTF8StringEncoding error:&fileError];
subStrings = [strBuffer componentsSeparatedByCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
for(eachString in subStrings) {
if ([eachString length] != 0) {
NSLog(@"{%@} %d", eachString, [eachString intValue]);
}
}
gary
Hmmm .... Je ne peux pas sembler dupliquer le 0 final dans la méthode 02 avec juste des sauts de ligne ... Je peux, cependant, si je mets un non-chiffre caractère à la fin. –
Peut-être qu'il y avait quelque chose qui se cachait dans mon fichier de test que je ramassais. Merci d'avoir regardé de toute façon. – fuzzygoat