Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/8: Рейтинг темы: голосов - 8, средняя оценка - 4.88
8 / 2 / 0
Регистрация: 28.11.2017
Сообщений: 157

Как считать байты с файла, не открывая его

20.02.2019, 20:52. Показов 1993. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Как считать байты с файла(определенное количество), не открывая его
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
20.02.2019, 20:52
Ответы с готовыми решениями:

Как считать из файла все байты в массив?
Всем здравствуйте. Есть двоичный файл. Как считать его содержимое в соответствующий ему по размеру байтовый массив buf? char*...

Считать в текст из документа Word, не открывая его
Как считать в VB.net текст из документа Word (*.doc, *.docx), не открывая это документ? То есть мне нужно скопировать в переменную всё...

Считать байты вида 0011001 из файла
Есть ли в питоне возможность считать файл.. гм.. в байтах? я понимаю что есть штука как open(filename, 'rb'), но в моем случае она зачастую...

11
3566 / 2507 / 1174
Регистрация: 14.08.2016
Сообщений: 8,219
20.02.2019, 20:57
как прочитать определенное количество страниц из книги, не открывая книгу?
0
8 / 2 / 0
Регистрация: 28.11.2017
Сообщений: 157
20.02.2019, 21:02  [ТС]
Просто у меня есть большой файл ( больше 4 гб ) и когда я пытаюсь считать с него некоторые байты, у меня приложение выдает исключение - нехватка оперативной памяти
0
 Аватар для ashsvis
923 / 503 / 202
Регистрация: 08.10.2018
Сообщений: 1,553
Записей в блоге: 11
20.02.2019, 21:07
Цитата Сообщение от korozyan Посмотреть сообщение
меня есть большой файл
Используйте класс MemoryMappedFile.
0
8 / 2 / 0
Регистрация: 28.11.2017
Сообщений: 157
20.02.2019, 21:11  [ТС]
Цитата Сообщение от ashsvis Посмотреть сообщение
Используйте класс MemoryMappedFile.
Можно пример какой нибудь?
0
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
20.02.2019, 21:20
Цитата Сообщение от korozyan Посмотреть сообщение
когда я пытаюсь считать с него некоторые байты
Некоторые или все-таки все?
Для некоторых используйте класс FileStream, свойство Position и метод Read.
0
 Аватар для ashsvis
923 / 503 / 202
Регистрация: 08.10.2018
Сообщений: 1,553
Записей в блоге: 11
20.02.2019, 21:31
Цитата Сообщение от korozyan Посмотреть сообщение
пример какой нибудь?
The following example creates a memory-mapped view of a part of an extremely large file and manipulates a portion of it
0
8 / 2 / 0
Регистрация: 28.11.2017
Сообщений: 157
20.02.2019, 21:32  [ТС]
Цитата Сообщение от kolorotur Посмотреть сообщение
используйте класс FileStream, свойство Position и метод Read
Что вообще нужно: считать первые 2097152 байта, не открывая файл в памяти, так как если его открывать - нехватка памяти. Преобразовать байты и записать их в файл, также не открывая его
0
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
20.02.2019, 21:35
Цитата Сообщение от korozyan Посмотреть сообщение
считать первые 2097152 байта
C#
1
2
3
var bytes = new byte[2097152];
using (var fs = File.OpenRead("blabla.txt"))
   fs.Read(bytes, 0, bytes.Length);
Запись так же, только вместо OpenRead и Read соответствующие методы.

Цитата Сообщение от korozyan Посмотреть сообщение
не открывая файл в памяти
Загрузить байты в память, не используя память?
Магия, не иначе!
0
8 / 2 / 0
Регистрация: 28.11.2017
Сообщений: 157
20.02.2019, 22:10  [ТС]
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
var bytes = new byte[2097152];
            using (var fs = File.OpenRead(filePath))
            {
                fs.Read(bytes, 0, bytes.Length);
            }
            using (var salsa = new Salsa20.Salsa20())
            {
                using (var fstream_out = new FileStream(filePath, FileMode.Open, FileAccess.ReadWrite, FileShare.ReadWrite))
                {
                    salsa.Key = key;
                    salsa.IV = iv;
                    using (var cstream = new CryptoStream(fstream_out, salsa.CreateEncryptor(), CryptoStreamMode.Write))
                    {
                        cstream.Write(bytes, 0, bytes.Length);
                    }
                }
            }
            using (var fs = File.OpenWrite(filePath))
            {
                fs.Write(bytes, 0, bytes.Length);
            }
Так правильно?
0
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
20.02.2019, 22:55
korozyan, а зачем еще одна запись в конце?
0
8 / 2 / 0
Регистрация: 28.11.2017
Сообщений: 157
20.02.2019, 23:03  [ТС]
Цитата Сообщение от kolorotur Посмотреть сообщение
а зачем еще одна запись в конце?
Затупил, спасибо
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
20.02.2019, 23:03
Помогаю со студенческими работами здесь

Узнать атрибуты файла не открывая его
Подскажите,как НЕ открывая определенный exe-файл (скомпилированный в VB) считать его атрибуты, например дату и время изменения файла,а...

Считать байты файла в массив типа (байт)
Прошу если не сделать, то хотя бы скинуть примеры, либо подтолкнуть в том, чтоб разобраться, очень нужно, пожалуйста. На языке C#...

Вырезать картинку из видео файла не открывая его
Есть проблема, я хочу вырезать 1-вый кадр из видео файла не открывая его(не подгружая в память). Можно конечно использовать левые...

Скачивание файла с контролем получаемых данных. То есть, чтобы можно было считать байты
Считать прогресс выполнения скачивания множества файлов. К примеру, я знаю, что 10 файлов в сумме весят 10 мегабайт, с помощью класса...

Перенести байты с конца файла в его начало
Есть код : FSrc := TFileStream.Create('221.exe', fmOpenRead); try FDst := TFileStream.Create('221.exe.new', fmCreate); ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru