2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




 
 Разбить файл на две неравные части.
Сообщение05.11.2012, 15:14 
Требуется бинарный файл разбить на 2 части. Такая задача, полагаю, нередко возникает перед пользователями, начало или конец файла отбросить. На каком из языков программирования это сделать проще всего, или быстрее?

 
 
 
 Re: Разбить файл на две неравные части.
Сообщение05.11.2012, 16:29 
Аватара пользователя
На шелле. (head -c [число байт] в BSD/GNU, gc -Encoding byte -TotalCount [число байт] в Windows PowerShell)

 
 
 
 Re: Разбить файл на две неравные части.
Сообщение06.11.2012, 15:06 
gc -Encoding byte -TotalCount [число байт]
Как имя файла добавить, куда содержимое будет записано. Нужно отбросить начало файла, приведённая команда отбрасывает начало файла? Файл бинарный, не текстовый.

 
 
 
 Re: Разбить файл на две неравные части.
Сообщение06.11.2012, 15:53 
Аватара пользователя
Нет, эта наоборот берет начало.
Для того, чтобы отбросить n байт файла test.bin и записать результат в test.bin.truncated, надо что-то типа вот этого (проверить не могу, винды под рукой нет) :
gc test.bin -encoding byte | select -skip n > test.bin.truncated

 
 
 
 Re: Разбить файл на две неравные части.
Сообщение06.11.2012, 16:09 
Ок, проверим. Как там в окошке из буфера (в буфер) копировать текст, или набирать только все буквы?

 
 
 
 Re: Разбить файл на две неравные части.
Сообщение06.11.2012, 16:09 
Вот так можно:
Код:
[byte[]] $b = gc -Encoding Byte c:\Temp\input.bin
sc c:\temp\head.bin -Value $b[0..999] -Encoding Byte
sc c:\temp\tail.bin -Value $b[1000..($b.Length-1)] -Encoding Byte

 
 
 
 Re: Разбить файл на две неравные части.
Сообщение06.11.2012, 16:20 
В Linux есть команда tail, она может выводить N последних байтов.

 
 
 
 Re: Разбить файл на две неравные части.
Сообщение06.11.2012, 20:29 
Maslov в сообщении #640749 писал(а):
Вот так можно:

То, что доктор прописал, спасибо. Без массива, похоже не проходят варианты.
Вариант "gc test.bin -encoding byte | select -skip n > test.bin.truncated" выдал файл с числовыми значениями символов из начального файла в столбик, типа {89 114 ...}.
По пути вариант на Delphi был сваян, но через PS действительно коротко.

 
 
 
 Re: Разбить файл на две неравные части.
Сообщение06.11.2012, 22:57 
Если планируете работать с PS, скачайте Quest PowerGUI: там довольно удобный редактор скриптов (PowerGUI Script Editor) с подсветкой синтаксиса, интеллисенсом, полноценным отладчиком и хелпами.

 
 
 [ Сообщений: 9 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group