|
Обработка бинарных файлов.
|
|||
---|---|---|---|
#18+
Всем привет! Нужно загрузить в базу информацию из бинарных файлов. Файлы имеет фиксированную структуру. Размер каждой записи = 190 байт. В нутри каждой записи вся инфа разбита по полям . А как значение буфера раскидать по переменным или в класс? (Например: первые 4 байта в переменную int, c 5 по 16 байты в переменную String,.....) В С++ это все просто реализуется с помощью структур и UNION. Я здесь попытался че-то изобразить. Но пока получается только считывать в цикле в буфер. А как дальше быть не знаю. :( Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
Заранее спасибо. И все-такое. :)) ... |
|||
:
Нравится:
Не нравится:
|
|||
31.08.2004, 14:16 |
|
Обработка бинарных файлов.
|
|||
---|---|---|---|
#18+
а зачем массив 191 байт? а не 190? сложного совсем нет ничего. прочитал в массив 190 байт. если первые 4 типа int - ручками их преобразуешь в явовский инт (в смысле в твоем файле может идти сначала старший байт, либо сначала младший). например, формат BMP (картинки) имеет в своих записях четырех- байтовый int :) чтобы получить для джавы (как вариант): Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
-- {forum.auto.signature} ... |
|||
:
Нравится:
Не нравится:
|
|||
31.08.2004, 14:47 |
|
Обработка бинарных файлов.
|
|||
---|---|---|---|
#18+
2А.Гpacoff Большое спасибо! 2All В продолжении своего вопроса: - известно что массиве tempBuf в который я считываю данные из файла, с 20 по 35 байты находится запись в BCD-формате. Как бы мне её значение в строковую переменную засунуть? ... |
|||
:
Нравится:
Не нравится:
|
|||
31.08.2004, 16:57 |
|
Обработка бинарных файлов.
|
|||
---|---|---|---|
#18+
руками :) Специальных методов для этого нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.08.2004, 19:29 |
|
Обработка бинарных файлов.
|
|||
---|---|---|---|
#18+
Это-то понятно что нет. Вы мне лучше скажите можно ли что-нить аналогчное на Джаве сделать и как (а то я из-за недостатка опыта не врубаюсь чего-то) Код: plaintext 1. 2. 3.
т.е. если байт имеет значение 0х78 то и записать в строку "78", а не какую-то абракадабру. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.08.2004, 19:40 |
|
Обработка бинарных файлов.
|
|||
---|---|---|---|
#18+
byte b = 0x78; System.out.println(Integer.toHexString(b)); ? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.09.2004, 09:48 |
|
Обработка бинарных файлов.
|
|||
---|---|---|---|
#18+
Точнее Код: 1. 2. 3. 4. 5.
если уж в строку писать надо :) ... |
|||
:
Нравится:
Не нравится:
|
|||
01.09.2004, 09:53 |
|
Обработка бинарных файлов.
|
|||
---|---|---|---|
#18+
patch: tempBuf -> getInt(tempBuf ) :) ... |
|||
:
Нравится:
Не нравится:
|
|||
01.09.2004, 18:41 |
|
Обработка бинарных файлов.
|
|||
---|---|---|---|
#18+
Да у меня и в первом варианте неплохо работает. :)) Код: plaintext 1. 2. 3. 4. 5.
Спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.09.2004, 09:34 |
|
Обработка бинарных файлов.
|
|||
---|---|---|---|
#18+
красиво ... |
|||
:
Нравится:
Не нравится:
|
|||
02.09.2004, 18:50 |
|
Обработка бинарных файлов.
|
|||
---|---|---|---|
#18+
Еще такой вариант Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24.
... |
|||
:
Нравится:
Не нравится:
|
|||
13.09.2004, 13:38 |
|
|
start [/forum/moderation_log.php?user_name=ElenaP]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
get settings: |
11ms |
get forum list: |
13ms |
get settings: |
11ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
64ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
43ms |
get tp. blocked users: |
1ms |
others: | 1198ms |
total: | 1398ms |
0 / 0 |