2013-06-25 5 views
1

У меня есть файл, который содержит в самом первом байте данных число. В этом случае это число равно 32. Я использовал шестнадцатеричный редактор, чтобы подтвердить, что (в шестнадцатеричном формате) значение равно «20», что равно 32 в десятичной системе.Чтение целого числа из файла IOS

Может кто-нибудь указать мне в правильном направлении, как его прочитать. Я пробовал 6 разных способов, все из которых потерпели неудачу.

+3

Можете ли вы подвести итоги того, что вы пробовали и как они потерпели неудачу? – rmaddy

+1

Согласовано. Нет смысла дублировать усилия, когда это может быть простая ошибка. – Jeremy

+0

Нет, не совсем. Мне потребовались бы страницы и страницы, чтобы обобщить все, что я сделал. Я слишком много работал над тем, что должно быть ЛЕГКОЙ проблемой. – Hoodai

ответ

2

Много разных способов. Вот один:

NSData *data = [NSData dataWithContentsOfFile:filename]; 
if ([data length] > 0) 
{ 
    const uint8_t *bytes = (const uint8_t *)[data bytes]; 
    uint8_t byte = bytes[0]; 
    NSLog(@"%d", byte); 
} 

или другой:

NSInputStream *stream = [NSInputStream inputStreamWithFileAtPath:filename]; 
[stream open]; 
NSInteger bufferLen = 1; 
uint8_t buffer[bufferLen]; 
NSInteger count = [stream read:buffer maxLength:bufferLen]; 
[stream close]; 
if (count > 0) 
{ 
    NSLog(@"%d", buffer[0]); 
} 
+0

Я пробовал оба из них, а первый из них вызывает ошибку компилятора, а нижняя возвращает 1 вместо 32 ... – Hoodai

+0

@Hoodai. Оба они были вырезаны и вставляются из рабочего тестового проекта, оба работают отлично для меня, и я получил «32» от обоих (для файла с первым байтом 0x20). При ошибке компиляции я не могу вам помочь, если вы не скажете мне, что такое ошибка, и на какой строке вы получили ошибку. Во втором примере я могу только сказать, что файл, который вы открываете через приложение, не звучит так, как будто он содержит то, что вы думаете. Неправдоподобно, что 'count' был больше нуля, но это не возвращало первый байт. Если вы где-нибудь загрузите свой файл, я с удовольствием рассмотрю его. – Rob

+0

Вот ссылка на файл: http://www.mediafire.com/?sm4998y7vb9sx5d – Hoodai