Форум: "Прочее";
Текущий архив: 2010.08.27;
Скачать: [xml.tar.bz2];
ВнизЧем разрезать файл? Найти похожие ветки
← →
brother © (2010-02-02 13:00) [0]Есть лог файл (более 9 гигов), надо вырезать с его конца гиг, какой прогой это можно быстро сделать?
← →
oldman © (2010-02-02 13:02) [1]NortonCommander
:)
← →
brother © (2010-02-02 13:04) [2]а еще?
← →
Ega23 © (2010-02-02 13:06) [3]я всегда тащщился с Апача, который лог ошибок в один файл кидал и потом после нескольких гиг умирал, пытаясь залоггировать ошибку.
← →
brother © (2010-02-02 13:06) [4]это оно и есть... чем?(
← →
tesseract © (2010-02-02 13:08) [5]total commander. Ну или любой архиватор - store и разбить.
← →
Hamster © (2010-02-02 13:09) [6]WinHEX.
← →
MBo © (2010-02-02 13:13) [7]быстрее написать программку из 40-50 строчек
← →
Anatoly Podgoretsky © (2010-02-02 13:19) [8]> brother (02.02.2010 13:00:00) [0]
Это надо свою писать, я не разу не видел программы, которая вырезает последний гигабайт.
← →
Anatoly Podgoretsky © (2010-02-02 13:20) [9]> MBo (02.02.2010 13:13:07) [7]
А чего так много?
← →
KilkennyCat © (2010-02-02 13:40) [10]
> Anatoly Podgoretsky © (02.02.10 13:20) [9]
about тож нужен
← →
KSergey © (2010-02-02 13:47) [11]Если точность не принципиальна - архиватором сделать многотомный архив, с частями по гигабайту, и установить "без компрессии"
Правда я не уверен, что в этом случае он байты на месте оставит как были, все ж архиватор - он с битовым потоком работает по идее...
← →
KilkennyCat © (2010-02-02 13:49) [12]есть куча программ для склейки-резки, например HJSplit
← →
Anatoly Podgoretsky © (2010-02-02 13:50) [13]> KSergey (02.02.2010 13:47:11) [11]
Дальше расскажи как потом выдрать только нужный гигабайт в рабочем состоянии.
← →
KSergey © (2010-02-02 13:51) [14]Если файл текстовый: берем grep
делаемgrep -c "" file
получаем кол-во строк
прикидываем сколько последних нам надо из общего объема.
пропускаем файл черезgrep -n "" file>new_file
получаем новый файл с пронумерованными строками.
грепаем из файла строки по такой маске, чтобы остались только последние интересующие.
← →
brother © (2010-02-02 13:52) [15]> с частями по гигабайту, и установить "без компрессии"
да но там нужно быть аккуратным...
> Если файл текстовый: берем grep
к сожалению утащили лог на винду...
← →
KSergey © (2010-02-02 13:53) [16]> brother © (02.02.10 13:52) [15]
> к сожалению утащили лог на винду...
Дык я про винду и говорю
А как на ней без unxtools жить? я не умею, у меня всегда стоят :)
← →
KSergey © (2010-02-02 13:54) [17]unxtools == unixtools
← →
KSergey © (2010-02-02 13:56) [18]> Anatoly Podgoretsky © (02.02.10 13:50) [13]
> Дальше расскажи как потом выдрать только нужный гигабайт в рабочем состоянии.
Если байты лягут правильно, т.е. с несдвинутыми битами - то достаточно будет взять последний кусок архива и любым текст. редактором отрезать шапку. Или и вовсе так оставить - почти всем он вполне понравится.
Или попросить архиватор распаковать только последнюю часть, может у него и получится, хотя я не уверен, може т закочевряжиться.
Ну в общем "я вам концепцию!"
← →
brother © (2010-02-02 13:58) [19]> Или и вовсе так оставить
этот вариант рассматривался... ща режу тоталом
← →
Игорь Шевченко © (2010-02-02 14:01) [20]На написание программы требуется 20 минут.
На вопрос на форуме требуется (судя по этой ветке) минимум час.
← →
brother © (2010-02-02 14:02) [21]> На написание программы требуется 20 минут.
к сожалению делфи 6
ограничение Seek = 2147483647 байт...(
← →
Anatoly Podgoretsky © (2010-02-02 14:12) [22]> brother (02.02.2010 14:02:21) [21]
function Seek(const Offset: Int64; Origin: TSeekOrigin): Int64; override;
Во вторых seek назад = 1 гб
← →
brother © (2010-02-02 14:23) [23]> function Seek(const Offset: Int64; Origin: TSeekOrigin):
> Int64; override;
procedure Seek(var F; N: Longint); у меня в справке...
← →
brother © (2010-02-02 14:25) [24]> Во вторых seek назад = 1 гб
Seek 9Гб - 1Гб = 8Гб!
← →
Вариант (2010-02-02 14:34) [25]Есть SetFilePointer (Windows.pas) и SetFilePointerEx (для дельфи 6 экспортировать самому)
← →
Вариант (2010-02-02 14:37) [26]
> Вариант (02.02.10 14:34) [25]
экспортировать=импортировать
← →
Игорь Шевченко © (2010-02-02 14:42) [27]вот тупо так:
var
hf, ho: THANDLE;
foffset: LARGE_INTEGER;
buffer: Pointer;
bytesread, byteswritten: ULONG;
begin
hf := CreateFileA(PAnsiChar(filename), GENERIC_READ,
FILE_SHARE_READ or FILE_SHARE_WRITE or FILE_SHARE_DELETE,
nil, OPEN_EXISTING, 0, 0);
WIN32Check(hf <> INVALID_HANDLE_VALUE);
try
foffset.LowPart := GetFileSize(hf, @foffset.HighPart);
foffset.QuadPart := fOffset.QuadPart - 1024*1024*1024;
foffset.LowPart := SetFilePointer(hf, foffset.LowPart, @foffset.HighPart, FILE_BEGIN);
Win32Check((foffset.LowPart <> INVALID_HANDLE_VALUE) or (foffset.HighPart <> 0));
GetMem(buffer,65536);
try
ho := CreateFileA(PAnsiChar(outfile), GENERIC_WRITE, 0, nil, CREATE_NEW,
0, 0);
Win32Check(ho <> INVALID_HANDLE_VALUE);
try
Win32Check(ReadFile(hf, buffer^, 65536, bytesread, nil));
while (bytesread > 0) do
begin
Win32Check(WriteFile(ho, buffer^, bytesread, byteswritten, nil)
and (byteswritten = bytesread));
Win32Check(ReadFile(hf, buffer^, 65536, bytesread, nil));
end;
finally
CloseHandle(ho);
end;
finally
FreeMem(buffer);
end;
finally
CloseHandle(hf);
end;
end;
← →
Anatoly Podgoretsky © (2010-02-02 14:54) [28]> brother (02.02.2010 14:23:23) [23]
Взлетит, не взлетит.
Вспотеет, не вспотеет.
← →
Anatoly Podgoretsky © (2010-02-02 14:57) [29]> brother (02.02.2010 14:23:23) [23]
Ну и что, 1 гб все равно меньше 2 гб.
Но вот справка именно из Д6
> function Seek(const Offset: Int64; Origin: TSeekOrigin): Int64; override;
← →
Anatoly Podgoretsky © (2010-02-02 14:57) [30]> brother (02.02.2010 14:25:24) [24]
Никаких 9-1, просто 1 от конца.
← →
brother © (2010-02-02 15:03) [31]> Но вот справка именно из Д6
> Никаких 9-1, просто 1 от конца.
Спасибо я уже понял о чем Вы... (трудно соображаю()
← →
Кто б сомневался © (2010-02-02 23:58) [32]WinHEX.
← →
Кто б сомневался © (2010-02-02 23:58) [33]WinHEX.
Страницы: 1 вся ветка
Форум: "Прочее";
Текущий архив: 2010.08.27;
Скачать: [xml.tar.bz2];
Память: 0.52 MB
Время: 0.054 c