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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Тип record из Delphi 
:(
    Опции темы
MasterOfCode
Дата 6.8.2008, 15:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


elwin
**


Профиль
Группа: Участник
Сообщений: 740
Регистрация: 24.4.2008
Где: World.Russia.Tyum en

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



В  БД MS SQL хранится в поле типа Image набор байт.
В Делфи, есть тип record имеет 2 поля long и float
Этот тип преобразуют в байты и сохраняют туда (В Image Field Type)!
Моя задача сделать такой же набор байт для того чтоб туда загрузить. Только не хочу возвращатся к делфи.
Вопрос такой, если например Сделаю класс 
Код

cImageField
{
    List<long> l;
    List<float> f;
    . . .
}

Как его преобразовать в набор байт?


--------------------
user posted image
PM ICQ   Вверх
Partizan
Дата 6.8.2008, 16:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Let's do some .NET
****


Профиль
Группа: Модератор
Сообщений: 2828
Регистрация: 19.12.2005
Где: Санкт-Петербург

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



было уже причём недавно...в поиск...
по-моему там было предложено BitConverter использовать...

как вариант - бинарная сериализация в MemoryStream.




--------------------
СУВ,
       Partizan.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
MasterOfCode
Дата 7.8.2008, 06:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


elwin
**


Профиль
Группа: Участник
Сообщений: 740
Регистрация: 24.4.2008
Где: World.Russia.Tyum en

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



Получается так:
В массиве - 3280 байт.
я знаю что там 410 записей. поскольку 1 запись включает в себя 2 числа, long и float, то 410 х 2 = 820, 3280/820=4. Получается тип long и float имеет 4 byte? Т.е. можно каким то способом создать массив байт и в него загнать эти байты? Что использовать чтоб загонять туда эти байты, MemoryStream?


--------------------
user posted image
PM ICQ   Вверх
MasterOfCode
Дата 7.8.2008, 07:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


elwin
**


Профиль
Группа: Участник
Сообщений: 740
Регистрация: 24.4.2008
Где: World.Russia.Tyum en

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



Все, разобрался, оказывается разработчики дали неверную информацию, у них тип не long а обычный int32. Из за этого и не получались расчеты. smile Сделал так:
Код

                byte[] b = (byte[])cmdSQL.ExecuteScalar();
                byte[] bc = new byte[4];
                bool f = false;
                for (int i = 0, j = 0; i < b.Length; i++)
                {
                    if (j < 4)
                    {
                        bc[j] = b[i];
                        j++;
                    }
                    else
                    {
                        j = 1;
                        if (f)
                        {
                            Console.WriteLine(BitConverter.ToSingle(bc, 0).ToString());
                            f = !f;
                        }
                        else
                        {
                            Console.WriteLine(BitConverter.ToInt32(bc, 0).ToString());
                            f = !f;
                        }
                        bc[0] = b[i];
                    }
                }
                Console.WriteLine("Успех");
            }
            catch (Exception exception)
            {
                Console.WriteLine("Ошибка : " + exception.Message);
            }

Хотелось бы услышать, как можно этот код оптимизировать, не очень красиво с конструкцией if?


--------------------
user posted image
PM ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

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


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

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


 




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


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

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