Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Запись в массив байт со сдвигом 
V
    Опции темы
VampirDX
Дата 26.11.2009, 21:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 105
Регистрация: 24.5.2007
Где: Россия, Москва

Репутация: нет
Всего: нет



Проблема такая. Есть 2 массива байт. В один записываются данные с файла, во второй записываются 3 байта из первого массива. Байты, допустим, со 2-го по 4-й включительно. Не разобрался совсем со сдвигом..., еще, когда разговаривал на эту тему, сказали, что там надо использовать |(или)

Код



     byte[] file = new byte[30720];
     byte[] temp = new byte[3];
     file = File.ReadAllBytes("некоторый файл с данными");
     for (int i = 2; i < 5; i++)
              {
                   //что и как сюда записать?
              }


Попробовал родить что-то типа такого

Код



     t[i-2] = (f[i] <<= 2) | (f[i] <<= 1) | (f[i] <<= 0);


  но, во первых ощущение, как будто ежика против шерсти родил, а во-вторых ругается на всю правую часть после "="
PS: в центре помощи описывал проблему, но ответа нету.
PM MAIL   Вверх
tol05
Дата 26.11.2009, 23:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1632
Регистрация: 21.12.2006
Где: Харьков

Репутация: 63
Всего: 170



попробуйте метод Array.CopyTo()


--------------------
На хорошей работе и сны хорошие снятся.
PM MAIL   Вверх
Heinzz
Дата 27.11.2009, 19:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 381
Регистрация: 12.12.2008
Где: .net

Репутация: 5
Всего: 9



Код

 byte[] file = new byte[]{1,6,3,8,3,1,4,8,9,5,3,2};
            byte[] temp = new byte[3];

            temp = file.Skip(2).Take(3).ToArray();


где Skip пишем с какой позиции начать запись в массив temp, а где Take пишем сколько чисел записать


--------------------
user posted image
PM MAIL   Вверх
SmartBye
Дата 30.11.2009, 21:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 60
Регистрация: 15.5.2008

Репутация: нет
Всего: нет



Может автор имел ввиду побитовый сдвиг? То это не сюда.
PM MAIL   Вверх
VampirDX
Дата 1.12.2009, 17:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 105
Регистрация: 24.5.2007
Где: Россия, Москва

Репутация: нет
Всего: нет



SmartBye а куда?
PM MAIL   Вверх
gwi52
Дата 6.12.2009, 18:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 1.6.2008

Репутация: нет
Всего: нет



1. Buffer.BlockCopy( ByteArr,0,ByteArr,1,ByteArr.Length-1);  
2. Array.Copy( ObjArr,0,ObjArr,1,ObjArr.Length-1);

(2) работает для любых массивов, а (1) в 1.5 раза быстрее, но только для массивов примитивов
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0464 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.