Перейти к содержанию

Программирование Как Оно Есть


call_eax

Рекомендуемые сообщения

Просто ради проверки...

После того как засовываешь массив в буфер, выкинь bb.toString() на консоль, чтобы проверить трассировку - корректно лм он в буфер врапает

Ссылка на комментарий
Поделиться на другие сайты

NortUS

Добавил

System.out.println("toString = " + bb.toString());

сразу после врапа...

Выдает что-то, я бы сказал, странное:

[B@190d11
toString = java.nio.HeapByteBuffer[pos=0 lim=4 cap=4]
ws[i] = 1633837952
[B@a90653
toString = java.nio.HeapByteBuffer[pos=0 lim=4 cap=4]
ws[i] = 0
[B@de6ced
toString = java.nio.HeapByteBuffer[pos=0 lim=4 cap=4]
ws[i] = 0
[B@c17164
toString = java.nio.HeapByteBuffer[pos=0 lim=4 cap=4]
ws[i] = 0
[B@1fb8ee3
toString = java.nio.HeapByteBuffer[pos=0 lim=4 cap=4]
ws[i] = 0

И так далее.

Везде "java.nio.HeapByteBuffer[pos=0 lim=4 cap=4]".

Ссылка на комментарий
Поделиться на другие сайты

Скорее всего, я ошибаюсь, ибо "кроссплатформенные тормоза" стараюсь благополучно забыть. Сильно не пинать.

Вместо

			 for (int i = 0; i < 16; ++i) {
			System.arraycopy(bloc, 4*i, blocs[i], 0, 4);
			System.out.println(blocs[i]);
			ws[i] = byteArrayToInt(blocs[i]);
			System.out.println("ws[i] = " + ws[i]);
		}

попробуй

			ByteBuffer bbuf = ByteBuffer.wrap(bloc);
		bbuf.order(LITTLE_ENDIAN); /// или bbuf.order(BIG_ENDIAN); , не помню
		for (int i = 0; i < 16; ++i) {
			ws[i] = bbuf.getInt(i*4);
			System.out.println("ws[i] = " + ws[i]);
		}

В том, что идет ниже, я потерялся, не соображу, где и чем ты заполняешь значениями элементы blocs[16] - blocs[63], и что с ними потом делаешь.

bb.toString(), судя по мануалу, выдает то, что задумано - состояние буфера, а не содержимое.

Ссылка на комментарий
Поделиться на другие сайты

NortUS

X-Reiless

Когда я этой ночью снова посмотрел на код, то я выяснил, что нули, которые он выдавал, были вполне нормальными. Надо было проверить входные данные как следует.

Но спасибо за помощь.

Ссылка на комментарий
Поделиться на другие сайты

Ну да, состояние... Просто я грешил на то, что при врапе сам по себе буфер не создается, нужно предваретильено Allocate вызвать.

Статус же показал - все нормально

Ссылка на комментарий
Поделиться на другие сайты

Я понимаю что ООП, Java итд. Но вам не кажется извратом создавать новый объект для того чтобы прочитать int из массива байтов?

Кстати, мне так показалось что bloc это byte[] , да?

Глядя на "ту сторону" как назвал ее Daniel5555: не будет ли легче создать буфер только один раз, врапнуть тот самый bloc и прочитать из него сколько надо интов? Избавиться таким образом от вызова функции, создания объектов, копирования массивов(пусть и маленьких) + еще наверно GC вам спасибо скажет. Если не прав, не пинайте)

Ссылка на комментарий
Поделиться на другие сайты

Сейчас я пишу мой первый проект на Java.
Рекомендую обратить внимание на слово первый. Хотя я бы выбрал для первого helloworld чего-нибудь попроще :)).
Кстати, мне так показалось что bloc это byte[] , да?
Полный исходный текст в первом сообщении под катом.
не будет ли легче создать буфер только один раз, врапнуть тот самый bloc и прочитать из него сколько надо интов?
Ты мой пост из принципа не читал или по традиции?
Ссылка на комментарий
Поделиться на другие сайты

Рекомендую обратить внимание на слово первый. Хотя я бы выбрал для первого helloworld чего-нибудь попроще :)).

Норм) Мой первый на С# был LZ78. Если человек уже умеет прогить, то может выбрать сразу чего-нибудь по-сложнее. Плюс оно интереснее и полезней))

P.S. Гомен, пост твой глянул совсем бегло, не посмотрев на сорцы.

ADD: Немного пропаганды)))

http://socghop.appspot.com/program/home/google/gsoc2009

Никого не интересует?

Поработать летом на опенсорс и получить 4500 зеленых?

Ссылка на комментарий
Поделиться на другие сайты

VECTOR

Я понимаю что ООП, Java итд. Но вам не кажется извратом создавать новый объект для того чтобы прочитать int из массива байтов?

Мне кажется, что вся программа написана отвратно, тем более она писалась практически без планирования за одну ночь. В результате сейчас идет усиленная ловля багов.

Кстати, если есть какие-то особо ламерские моменты в коде, которые видны невооруженным глазом, просьба сообщить.

int у меня сейчас по-другому читается, один из массивов я убрал так же.

Ссылка на комментарий
Поделиться на другие сайты

Вообщемпередо мной щас стоит задача написать используя WinApi программу которая бы передавала и принимала по сети файлы,что по этому поводу стоит почитать?

Ссылка на комментарий
Поделиться на другие сайты

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...