Просмотр полной версии : Поблочное чтение файла
Пытаюсь поблочно читать файл из внешней Flash при помощи асинхронной библиотеки. В файле f.txt записано 123;456*. Читаю по 4 байта. Первые четыре байта читаются правильно, а вторые четыре байта не правильно. В чем может быть причина ?
а скрин то приложите что получается при чтении второй то группы, не у всех же есть такой плк, и лучше бы иметь две строки для первого прочтения и для второго, а то может ошибка в дальнейшем преобразовании а не в чтении
а скрин то приложите что получается при чтении второй то группы, не у всех же есть такой плк, и лучше бы иметь две строки для первого прочтения и для второго, а то может ошибка в дальнейшем преобразовании а не в чтении
В MAS[0] получается 123, а в MAS[1] - 5. Из-за того, что не верно считываются вторые 4 байта и дальнейшее преобразование цикл не может завершиться.
Что значит "лучше бы иметь две строки для первого прочтения и для второго" ?
Первое чтение и преобразование происходят правильно. Второе чтение происходит не правильно.
так покажите на скрине что при втором проходе находится в строке, в массиве у Вас уже пройденные через постобработку данные - ни какой связи с чтением
так покажите на скрине что при втором проходе находится в строке, в массиве у Вас уже пройденные через постобработку данные - ни какой связи с чтением
К сожалению не могу показать скрин строки после второго чтения. Но если бы второе чтение было корректно, то преобразование было бы совершено верно и в MAS[1] получилось бы 456.
Еще раз пишу, что первое чтение и преобразование происходят корректно. Второе преобразование происходит не верно потому что не верно читаются вторые 4 байта.
Программа очень простая.
К сожалению не могу показать скрин строки после второго чтения. Но если бы второе чтение было корректно, то преобразование было бы совершено верно и в MAS[1] получилось бы 456.
Еще раз пишу, что первое чтение и преобразование происходят корректно. Второе преобразование происходит не верно потому что не верно читаются вторые 4 байта.
Программа очень простая.
аааа, замучился я Вас подводить к самостоятельному решению вопроса, прочтите в справке КДС диапазон типа данных байт и сравните то, что Вы подаете в свою функцию преобразования, вроде код похож на тот, что дается в бибке оскат, но как то своеобразно
аааа, замучился я Вас подводить к самостоятельному решению вопроса, прочтите в справке КДС диапазон типа данных байт и сравните то, что Вы подаете в свою функцию преобразования, вроде код похож на тот, что дается в бибке оскат, но как то своеобразно
А что там не так. Функция DEC_TO_BYTE родная оскатовская. Преобразование строки из первых четырех байт при помощи этой функции происходит правильно. Что мешает правильно произвести преобразование строки из следующих четырех байт - только то, что следующие четыре байта прочитаны не верно.
А что там не так. Функция DEC_TO_BYTE родная оскатовская. Преобразование строки из первых четырех байт при помощи этой функции происходит правильно. Что мешает правильно произвести преобразование строки из следующих четырех байт - только то, что следующие четыре байта прочитаны не верно.
это уже не смешно и скрин Вы не показываете, потому что там правильно всё считывается
это уже не смешно и скрин Вы не показываете, потому что там правильно всё считывается
Я бы показал, но у меня его нет. Вы сами подумайте. Если со строкой было бы все нормально, то преобразование было бы выполнено верно. Ведь при чтении первых четырех байт все нормально получается в MAS[0]. Программа циклическая, т.е. все действия повторяются.
открытым текстом говорю, функция DEC_TO_BYTE имеет выходное значение байт, массив MAS это тоже массив байт, байт как тип данных не может быть больше 255, подставляя в него большее значение Вы получите число по модулю 256. Да хоть десять раз Ваша прога будет циклической, Вас не затруднило запоминать индекс массива, почему вызывает сложности сохранять прочитанные строки
открытым текстом говорю, функция DEC_TO_BYTE имеет выходное значение байт, массив MAS это тоже массив байт, байт как тип данных не может быть больше 255, подставляя в него большее значение Вы получите число по модулю 256. Да хоть десять раз Ваша прога будет циклической, Вас не затруднило запоминать индекс массива, почему вызывает сложности сохранять прочитанные строки
Вот это верное заключение. Теперь мне все понятно, не те циферки я вписал в текстовый файл. Спасибо.
Powered by vBulletin® Version 4.2.3 Copyright © 2024 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot