Гость
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Поток / 12 сообщений из 12, страница 1 из 1
11.07.2016, 07:13
    #39271543
kot07
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поток
Добрый день, подскажите как записать поток байт в переменную?
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
Stream myStream =null;
                    OpenFileDialog openFileDialog1 = new OpenFileDialog();
                    openFileDialog1.InitialDirectory = "c:\\";
                    openFileDialog1.Filter =
                        "Image Files(*.BMP;*.JPG; *.JPEG)|*.BMP;*.JPG;*.JPEG|All files (*.*)|*.*";
                    openFileDialog1.FilterIndex = 2;
                    openFileDialog1.RestoreDirectory = true;
                    if (openFileDialog1.ShowDialog() == DialogResult.OK)
                    {
                        try
                        {
                            if ((myStream = openFileDialog1.OpenFile()) != null)
                            {
                                var photoArray = new byte[0];
                                using (myStream)
                                {
                               
                                     //вот тут как-то надо поток байт записать в переменную photoArray
                                }}
                        }
                        catch (Exception ex)
                        {
                            MessageBox.Show("Error: Could not read file from disk. Original error: " + ex.Message);
                        }
                    }
...
Рейтинг: 0 / 0
11.07.2016, 07:14
    #39271544
kot07
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поток
уже создавал тему)
...
Рейтинг: 0 / 0
11.07.2016, 07:29
    #39271547
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поток
...
Рейтинг: 0 / 0
11.07.2016, 07:52
    #39271556
v skopin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поток
kot07,
СтримРеадер, там без проблем, просто всё
...
Рейтинг: 0 / 0
11.07.2016, 08:22
    #39271564
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поток
kot07,

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
var dialog = new OpenFileDialog();

dialog.Filter = "Image Files(*.BMP;*.JPG; *.JPEG)|*.BMP;*.JPG;*.JPEG|All files (*.*)|*.*";
dialog.FilterIndex = 2;
dialog.InitialDirectory = "c:\\";
dialog.RestoreDirectory = true;

if (dialog.ShowDialog() == DialogResult.OK)
{
    try
    {
        using (var stream = dialog.OpenFile())
        {
            if (stream != null)
            {
                int count = (int)stream.Length;
                var buffer = new byte[count];

                stream.Read(buffer, 0, count);
            }
        }
    }
    catch (Exception ex)
    {
        MessageBox.Show("Error: Could not read file from disk. Original error: " + ex.Message);
    }
}



https://msdn.microsoft.com/en-us/library/system.io.stream.read(v=vs.110).aspx]Stream.Read Method (Byte[], Int32, Int32)
...
Рейтинг: 0 / 0
11.07.2016, 08:32
    #39271568
kot07
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поток
skyANA,

Выбранный файл из памяти запишется в buffer в виде потока байтов, так?
...
Рейтинг: 0 / 0
11.07.2016, 08:43
    #39271573
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поток
kot07skyANA,

Выбранный файл из памяти запишется в buffer в виде потока байтов, так?
Нет. Выбранный файл будет прочитан и сохранён в память в виде массива байтов.

Если что-то не понятно в документации, то есть перевод: https://msdn.microsoft.com/ru-ru/library/system.io.stream.read(v=vs.110).aspx]Stream.Read - метод (Byte[], Int32, Int32)
...
Рейтинг: 0 / 0
11.07.2016, 09:00
    #39271583
kot07
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поток
skyANA,
А как мне массив байт записать в переменную для дальнейшей работы?
...
Рейтинг: 0 / 0
11.07.2016, 09:04
    #39271584
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поток
kot07skyANA,
А как мне массив байт записать в переменную для дальнейшей работы?
buffer и есть переменная. Но может Вам так будет понятнее:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
var dialog = new OpenFileDialog();

dialog.Filter = "Image Files(*.BMP;*.JPG; *.JPEG)|*.BMP;*.JPG;*.JPEG|All files (*.*)|*.*";
dialog.FilterIndex = 2;
dialog.InitialDirectory = "c:\\";
dialog.RestoreDirectory = true;

byte[] photoArray; // Вот нужная Вам переменная для дальнейшей работы.

if (dialog.ShowDialog() == DialogResult.OK)
{
    try
    {
        using (var stream = dialog.OpenFile())
        {
            if (stream != null)
            {
                var count = (int)stream.Length;

                photoArray = new byte[count];

                stream.Read(photoArray, 0, count);
            }
        }
    }
    catch (Exception ex)
    {
        MessageBox.Show("Error: Could not read file from disk. Original error: " + ex.Message);
    }
}
...
Рейтинг: 0 / 0
11.07.2016, 09:18
    #39271590
kot07
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поток
skyANAkot07skyANA,

Выбранный файл из памяти запишется в buffer в виде потока байтов, так?
Нет. Выбранный файл будет прочитан и сохранён в память в виде массива байтов.
(v=vs.110).aspx]Stream.Read - метод (Byte[], Int32, Int32)

В целом было итак понятно, но вот эта фраза меня смутила. Спасибо за объяснения
...
Рейтинг: 0 / 0
11.07.2016, 09:59
    #39271614
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поток
kot07skyANAпропущено...

Нет. Выбранный файл будет прочитан и сохранён в память в виде массива байтов.
(v=vs.110).aspx]Stream.Read - метод (Byte[], Int32, Int32)

В целом было итак понятно, но вот эта фраза меня смутила. Спасибо за объяснения
Если не секрет, то отчего она Вас смутила?
...
Рейтинг: 0 / 0
11.07.2016, 17:35
    #39271949
Roman Mejtes
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поток
skyANAkot07пропущено...


В целом было итак понятно, но вот эта фраза меня смутила. Спасибо за объяснения
Если не секрет, то отчего она Вас смутила?
отсутствие базового понимания того, как устроена память компьютера
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Поток / 12 сообщений из 12, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]