Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
[Delphi] скопировать кусок нужной длины из указанного места в файле в другой файл |

26.05.2009, 15:17
|
|
Познающий
Регистрация: 20.11.2008
Сообщений: 32
Провел на форуме: 104649
Репутация:
39
|
|
[Delphi] скопировать кусок нужной длины из указанного места в файле в другой файл
надо скопировать с указанного места кусок нужной длины и сохранить в файл, как сделать? у меня уже моск кипит. собсно сами данные и их размер (RIFF WAVE) я нашёл, теперь проблема в том, чтобы сохранить
Код:
var
FHandle, FSave, SizeFile, BytesRW, RW: Cardinal;
l: Longint;
oldstring: string;
SIZE: DWORD;
wavsize:integer;
n: integer;
begin
FHandle := FileOpen('c:\1.bin', FmOpenRead);
OldString := 'RIFF';
n:=1;
SizeFile := GetFileSize(FHandle, nil);
for l := 0 to SizeFile - Length(oldstring) do
begin
FileSeek(FHandle, l, 0);
FileRead(FHandle, oldstring[1], 4);
if oldstring = 'RIFF' then
begin
FileSeek(FHandle, l + 4, 0);
Memo1.Lines.Add(IntToStr(l));
FileRead(FHandle, SIZE, 4);
Memo1.Lines.Add(IntToStr(SIZE));
FileSeek(FHandle, l , 0);
//тут сильно лажовый код =)
FileRead(FHandle,BytesRW,size);
FSave := CreateFile(pchar('_out'+Int2Digs(N, 4)+'.bmp'), GENERIC_WRITE,
0, nil, CREATE_ALWAYS, 0, 0);
WriteFile(FSave, BytesRW, SizeOf(BytesRW), RW, nil);
CloseHandle(FSave);
//вот
n:=n+1;
end;
Application.ProcessMessages;
end;
CloseHandle(FHandle);
end;
Последний раз редактировалось Jim_Di; 26.05.2009 в 15:24..
|
|
|
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|