Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Программы » Программа для резки файлов

Модерирует : gyra, Maz

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2

Открыть новую тему     Написать ответ в эту тему

c930

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ищу программу для разрезания больших файлов,
но не такую, что режет файл на N частей или на куски по N байт, таких полно,
а чтоб: вырезать кусок с такого-то байта по такой-то.
Если будет функция сложения кусков (файлов), тоже хорошо.

Всего записей: 1179 | Зарегистр. 05-04-2002 | Отправлено: 05:12 13-08-2002
Ahamemnon



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
А если в НЕХ едиторе с адреса А по адрес В выделить и скопировать. Или это очень большой файл ?
 

Всего записей: 2667 | Зарегистр. 18-12-2001 | Отправлено: 23:52 13-08-2002
c930

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ahamemnon
В "НЕХ едиторе" можно, но неудобно, хотелось бы попроще.

Всего записей: 1179 | Зарегистр. 05-04-2002 | Отправлено: 07:00 14-08-2002
amnick

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подобная консольная утилита элементарно пишется собственными ручками. Время зависит от скорости печати на клавиатуре и требуемых наворотов. Вот пример. Написал персонально для этой темы. Проверено - компилируется в VC6.0, можно скомпилировать в BorlandC++ 3.1 после небольшой правки. Вроде даже работает. Обработку ошибок можно улучшить/добавить (особливо в цикле чтения/записи). Склеивать куски можно в DOS Navigator, Windows Commander, наконец, просто в DOS (copy /b file1+file2+...+fileN destfile).
 

Код:
 
#include <fcntl.h>
#include <io.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/stat.h>
 
#define BLOCK_SIZE  100000ul
 
int main( int argc, char* argv[] )
{
    if( argc < 4 ) {
        printf(
            "Usage:\n"
            "CLIP srcfile destfile start_address [end_address]\n\n"
            "    Program copies a piece of source file to the destination file\n"
            "    from start_address to end_address (inclusive) or to the end of file\n"
            "    if end_address is missing or is beyond the end of file.\n" );
        return 2;
 
    }
    int hIn = _open( argv[1], _O_BINARY | _O_RDONLY | _O_SEQUENTIAL );
    if( hIn == -1 ) {
        printf( "Open file error: %s\n%s\n", argv[1], strerror( errno ));
        return 1;
    }
    int hOut = _open( argv[2], _O_CREAT | _O_BINARY | _O_WRONLY, _S_IREAD | _S_IWRITE );
    if( hOut == -1 ) {
        printf( "Create file error: %s\n%s\n", argv[2], strerror( errno ));
        close( hIn );
        return 1;
    }
    long start = strtoul( argv[3], 0, 0 );
    long fsize = filelength( hIn );
    long end;
    if( argc > 4 ) {
        end = strtoul( argv[4], 0, 0 );
        if( end >= fsize )
            end = fsize - 1;
    }
    else
        end = fsize - 1;
 
    if( end < start ) {
        printf( "Incorrect start and end addresses: %lu .. %lu\n", start, end );
        close( hOut );
        close( hIn );
        return 1;
    }
    printf( "\nCopy a piece from %08x (%ld) to %08x (%ld)", start, start, end, end );
    _lseek( hIn, start, SEEK_SET );
    char* buf = (char*)malloc( BLOCK_SIZE );
    long nSize = end - start + 1;
    while( nSize ) {
        unsigned n = nSize > BLOCK_SIZE ? BLOCK_SIZE : nSize;
        // add error handling for insurance
        read( hIn, buf, n );
        write( hOut, buf, n );
        printf( "." );
        nSize -= n;
    }
    printf( "\nDone.\n" );
    free( buf );
    close( hOut );
    close( hIn );
    return 0;
}
 


Всего записей: 130 | Зарегистр. 16-12-2001 | Отправлено: 15:03 14-08-2002 | Исправлено: amnick, 15:30 14-08-2002
c930

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
amnick
Цитата:
Подобная консольная утилита элементарно пишется собственными ручками.  
Не сомневаюсь, но к сожалению, я не программист. Поэтому и ищу готовую утилиту поудобнее,
лучше наверное GUI-шную, но пойдёт и консольная, не принципиально.
Цитата:
Написал персонально для этой темы. Проверено - компилируется в VC6.0, можно скомпилировать в BorlandC++ 3.1 после небольшой правки. Вроде даже работает.
Спасибо, конечно, но у меня даже никакого компилятора не стоит.
Если ты мне EXE-шник пришлёшь, спасибо, я попробую твою программу.
Цитата:
Склеивать куски можно в DOS Navigator, Windows Commander, наконец, просто в DOS (copy /b file1+file2+...+fileN destfile).
Про это я знаю, я имел ввиду, что если в той программе будет такая функция, то тоже хорошо.  

Всего записей: 1179 | Зарегистр. 05-04-2002 | Отправлено: 02:42 15-08-2002
4get

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
c930
а ты кстати какого типа файлы режешь и собираешь?
 
типичная же функция выделение блока со смещения по размеру, сохранение его в файл, вставка блока в файл, замена блока из файла. единственно минус самые удобно-простые - консольно-guiшные типа hiew32 (?hiew)
http://sen.host.kemtel.ru/indexr.html
 
или чисто гуйный и многооконный WinHex (?winhex)  
http://www.winhex.com/winhex/index-m.html

Всего записей: 956 | Зарегистр. 19-09-2001 | Отправлено: 09:10 15-08-2002 | Исправлено: 4get, 09:14 15-08-2002
Yartsev



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Между  прочим Windows Commander (у меня сча 5.0) умеет резать и сливать без проблем, смысл искать если уже есть
 
Добавлено
Сорри,  не дочитал такое уже упоминали

Всего записей: 142 | Зарегистр. 27-04-2002 | Отправлено: 09:25 15-08-2002
amnick

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
c930
Отправил.

Всего записей: 130 | Зарегистр. 16-12-2001 | Отправлено: 21:55 15-08-2002
c930

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Yartsev
WC делает не то, что в данный момент мне нужно:
Цитата:
Ищу программу для разрезания больших файлов,  
но не такую, что режет файл на N частей или на куски по N байт, таких полно,  
а чтоб: вырезать кусок с такого-то байта по такой-то.  

4get
Я не ищу шестнадцатиричный редактор. Безусловно там всё это можно сделать.
Цитата:
В "НЕХ едиторе" можно, но неудобно, хотелось бы попроще.
Мне нужно простую утилиту... по-минимуму такую, какую мне amnick написал
Цитата:
Usage:
CLIP srcfile destfile start_address [end_address]
 
    Program copies a piece of source file to the destination file
    from start_address to end_address (inclusive) or to the end of file
    if end_address is missing or is beyond the end of file.
Вот этим уже можно вполне обойтись.
 
amnick
Спасибо большое, попробовал я твою программу, всё работает, O.K.
По-минимуму мне этого хватит, а может это и самое оптимальное.
 
Единственная просьба, сделай конечный адрес "невключительно".

Всего записей: 1179 | Зарегистр. 05-04-2002 | Отправлено: 04:35 16-08-2002
4get

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
c930
да уж я вижу хорошо, переформулирую..если в гуйной с аналогичной функцией полуавтоматической вырезки-вставки/склейки где блок задается числами случайно будет кроме того и режим просмотра файла/ручного выделения блока - это не сильно помешает?)

Всего записей: 956 | Зарегистр. 19-09-2001 | Отправлено: 08:26 16-08-2002 | Исправлено: 4get, 08:56 16-08-2002
KLASS



Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
c930
Сам не пробовал, просто подвернулась я и вспомнил про твою просьбу, может это тебе подойдет
http://www.acsoftware.narod.ru/

Всего записей: 11737 | Зарегистр. 12-10-2001 | Отправлено: 10:35 16-08-2002 | Исправлено: KLASS, 10:52 16-08-2002
Aleksanders



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
c930
ftp.nsk.su/.3/msdos/dosutil/bcopy.zip
Работает из командной строки.

----------
LINUX = Linux Is Not a UniX

Всего записей: 1428 | Зарегистр. 07-07-2002 | Отправлено: 11:24 16-08-2002
amnick

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
c930
Сделал конечный адрес "исключительно" ("невключительно"). Пользуйтесь. Отправляю...
KLASS
"Файловый мясник" - прога навороченная. Посмотрел описание.

Всего записей: 130 | Зарегистр. 16-12-2001 | Отправлено: 20:19 16-08-2002
KLASS



Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
amnick

Цитата:
"Файловый мясник" - прога навороченная. Посмотрел описание

Угу, главное проста в упралении. Я ее качнул все-таки, потыкал и положил на полочку.

Всего записей: 11737 | Зарегистр. 12-10-2001 | Отправлено: 22:56 16-08-2002
AlexWhite



I Love Ru.Board!
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Рекомендую!!! (Вот только говорят, что под XP она странно работает)
http://space.dolphin.free.fr/
Прописывается по правой клавише и все такое, лучшее, что я видел...

Всего записей: 2362 | Зарегистр. 29-09-2001 | Отправлено: 06:26 17-08-2002
c930

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
4get
Шестнадцатиричный редактор безусловно вещь необходимая, но для теперешней моей задачи он неудобен, в первую очередь из-за "режима просмотра", который мне абсолютно не нужен,
а только мешается .
 
amnick
Большое тебе спасибо за помощь, программу твою получил и попробовал,
всё работает. Думаю это будет моим рабочим инструментом.
 
KLASS
Посмотрел я программу AC's файловый мясник v.3.01 (http://www.acsoftware.narod.ru),
она же AC's файловый хирург, я думаю, ты её имел ввиду.
 
Программа имеет GUI интерфейс, и три функции:
  • режет файл на N частей или на куски по N байт (килобайт, мегабайт),
  • вырезает из файла кусок с такого-то байта по такой-то,
  • собирает файл из кусков (файлов).
     
    Программа не требует инсталляции и предлагается в двух вариантах - демо версия и полная,
    а кроме того автор грозится развивать программу и в будущем.
     
    Вот пример скриншота:
     
       
     
    Эта утилита примерно то, что я искал (последние две функции, см. первый пост).
    К сожалению, программа довольно ещё сырая, при работе испытываешь неудобства,
    а самое главное функция вырезания куска файла не работает .
    В демо версии она просто заблокирована, а в полной, при попытке ею воспользоваться,
    программа просто зависает, циклится.
    Это убивает всю ценность данной программы. Остаётся только ждать дальнейших релизов.
     
    Программа Split File Shell Extension v.3.0 (http://space.dolphin.free.fr/Windows/split.html),
    что AlexWhite рекомендовал,
    живёт в контекстном меню, и предназначена для разрезания файлов на несколько частей
    (заданного размера или заданное число частей) и последующей сборки разрезанного файла.
     
    В этом плане имеет некоторый сервис, например:
  • мастер предустановок размеров частей файла,
  • предустановку (опционально) выходного каталога,
  • возможность создания EXE-модуля для автоматической сборки файла,
  • возможность добавления контрольной суммы в разрезанный файл.
     
    Скриншот:
     
       
     
    Программу я устанавливать и пробовать не стал, т.к. вырезать куски из файлов она не умеет,
    а всё, что она умеет я делаю с помощью WinRARа, на худой конец воспользуюсь Windows Commanderом .
    Возможно программа будет полезна тем, кто пользуется Windows Explorerом.
     
    Ещё одна консольная программа, предложенная Aleksanders, -
    bcopy (ftp://ftp.nsk.su/.3/msdos/dosutil/bcopy.zip).
    Версия 2.11 от 15.03.94

    Цитата:
          Назначение:
     
    копирование всего  или  части  файла  в заданное место другого
    файла;  усечение файла,  вырезание кусков из  файла,  создание
    "дутого" файла любого размера "из ничего";  простейшее переко-
    дирование файлов.  Имеются довольно  гибкие  возможности...
     
          Способ применения:
     
    bcopy [ключи] <откуда> <куда> <начало> <конец> <смещение-куда>

    Довольно функциональная программа. Прилагается подробное описание.
     
    Попробую на досуге.
     
    Спасибо всем, кто откликнулся.
    Если у кого ещё чё есть, присылайте ссылки, преимущественно интересуют программы,
    которые вырезают куски из файла и имеют GUI.

  • Всего записей: 1179 | Зарегистр. 05-04-2002 | Отправлено: 11:11 19-08-2002 | Исправлено: c930, 11:24 19-08-2002
    amnick

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    c930
    Спасибо за отзыв.
     

    Цитата:
    преимущественно интересуют программы, которые вырезают куски из файла и имеют GUI.

     
    Несложный графический интерфейс прикрутить легко. Вот только времени у меня сейчас нет, даже на этот форум несколько дней не заходил. Если интересует, то могу сделать на следующей неделе. А также добавить какие-нибудь функции.

    Всего записей: 130 | Зарегистр. 16-12-2001 | Отправлено: 14:22 22-08-2002
    c930

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    amnick
    За какой отзыв?
    Цитата:
    Несложный графический интерфейс прикрутить легко. Вот только времени у меня сейчас нет, даже на этот форум несколько дней не заходил. Если интересует, то могу сделать на следующей неделе. А также добавить какие-нибудь функции.
    Мне неудобно тебя напрягать из-за этого, ты мне и так хорошо помог. В общем мне твоей программы, как я писал, достаточно.
    Я имел ввиду если найдутся готовые GUI-шные программы, то лишний сервис никогда не помешает.

    Всего записей: 1179 | Зарегистр. 05-04-2002 | Отправлено: 16:16 22-08-2002
    Advanced_Guest



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    сори что поднимаю старую тему, но у меня похожий вопрос.
     
     
     
     
    Нужно найти программу, которая делит 1 файл на другие файлы по количеству СТРОК а не байт.
     
    есть ли такие ?

    ----------
    The Abyss - UO, LA2, Ботва, BSFG

    Всего записей: 2446 | Зарегистр. 14-04-2002 | Отправлено: 23:47 22-12-2002
    albel



    Moderator
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Advanced_Guest
    UUE? Помнится, там был параметр Lines per file.  Не совсем "разрезание", конечно.

    Всего записей: 11003 | Зарегистр. 30-08-2002 | Отправлено: 00:01 23-12-2002 | Исправлено: albel, 00:02 23-12-2002
    Открыть новую тему     Написать ответ в эту тему

    Страницы: 1 2

    Компьютерный форум Ru.Board » Компьютеры » Программы » Программа для резки файлов


    Реклама на форуме Ru.Board.

    Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
    Modified by Ru.B0ard
    © Ru.B0ard 2000-2025

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru