如题目
解决方案 »
- FastReport:在条带主数据中放的字段显示不出来?请各位高手帮忙!!
- Delphi写的Com在VB中调用出现的问题
- 急!!一个奇怪的问题,客户端在打开个别窗体时会死机
- DELPHI和金山快译出现的严重问题,送你十分,祝你身体十分健康,谢谢
- 有广州的朋友吗,我需要找人写以下的程序,开个价吧,价低者得
- 有关savedialog和opendialog的问题?
- 我怎么样才能修改bde的默认内存值????????
- 请教一条SQL的写法
- delphi怎么实现计算机括号运算
- !!!!!!!!!!ADO OLE DB连结 ACCESS 数据库(老是说被别人独占方式打开了)报错 ODBC连就没问题 怎么办????
- 求助:在 fastreport 报表中,怎么设置选择哪种打印机?谢谢!
- delphi里怎么把数据库里的信息导入和导出成文本文档(.txt)的形式啊?
var
fs: TFileStream;
nBlock, i: integer;
fsize, fpersize: int64;
txtf: TextFile;
tmp: TMemoryStream;
begin
// 读取源文件
fs := TFileStream.Create('c:\abc.rar', fmOpenRead);
fpersize := 255;
fsize := fs.Size;
// nBlock:分割后文件个数
nBlock := fsize div fpersize;
// 保存分割信息文件
// fsize, nBlock, fpersize
AssignFile(txtf, 'c:\abc.rar.sin');
ReWrite(txtf);
Writeln(txtf, 'abc.rar'); // 文件名
Writeln(txtf, fsize); // 文件大小
Writeln(txtf, nBlock); // 文件个数
Writeln(txtf, fpersize); // 每个文件大小
Writeln(txtf, '0'); // 零头和最后一个存到一起
CloseFile(txtf);
// 分割文件
for i := 1 to nBlock do
begin
tmp := TMemoryStream.Create;
if i = nBlock then
Inc(fpersize, fsize mod fpersize);
tmp.CopyFrom(fs, fpersize);
tmp.SaveToFile('c:\abc.rar.' + IntToStr(i));
tmp.Free;
end;
fs.Free;
end;procedure TForm1.Button2Click(Sender: TObject);
var
fs: TFileStream;
nBlock, i: integer;
fsize, fpersize: int64;
txtf: TextFile;
fn: string;
tmp: TMemoryStream;
begin
// 取文件信息
AssignFile(txtf, 'c:\abc.rar.sin');
ReSet(txtf);
Readln(txtf, fn);
Readln(txtf, fsize);
Readln(txtf, nBlock);
Readln(txtf, fpersize);
CloseFile(txtf);
// 创建新的文件
fs := TFileStream.Create('d:\' + fn, fmCreate);
for i := 1 to nBlock do
begin
tmp := TMemoryStream.Create;
tmp.LoadFromFile('c:\abc.rar.' + IntToStr(i));
// 把分割的文件流全部读到新文件中
if i = nBlock then
Inc(fpersize, fsize mod fpersize);
fs.CopyFrom(tmp, fpersize);
tmp.Free;
end;
fs.Free;
end;