易截截图软件、单文件、免安装、纯绿色、仅160KB

关于 Delphi 中流的使用:分割与合并文件的函数

unit
Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class
(TForm)
Button1: TButton;
Button2: TButton;
procedure
Button1Click(Sender: TObject);
procedure
Button2Click(Sender: TObject);
end
;
var
Form1: TForm1;
implementation
{$R *.dfm}
//分割文件的函数
{参数 1 是要分割的文件名; 参数 2 是要风格文件的大小, 单位是 KB}
{分割后的文件名扩展名用序号替换}
function
SplitFile(const
FileName: string
; Size: Cardinal): Boolean;
var
fStream: TFileStream; {原始文件}
toStream: TMemoryStream; {分文件}
p,i: Integer; {p 记录当前指针位置; i 记录这是第几个分的文件}
begin
Result := False;
Size := Size * 1024
; {把大小的单位转换为字节}
fStream := TFileStream.Create(FileName, fmOpenRead);
p := 0
;
i := 0
;
toStream := TMemoryStream.Create;
while
p < fStream.Size do
begin
toStream.Clear; {清空上次数据}
fStream.Position := p; {放好指针位置}
if
fStream.Size-p < Size then
Size := fStream.Size-p; {最后一个时, 有多少算多少}
toStream.Copyfrom(fStream, Size); {复制}
toStream.SaveToFile(FileName + '.'
+ IntToStr(i)); {保存}
Inc(i);
p := p + Size;
end
;
fStream.Free;
toStream.Free;
Result := True;
end
;
//合并文件, 参数是其中一个分文件名
function
MergeFile(const
FileName: string
): Boolean;
var
ms: TMemoryStream; {读取分文件}
fs: TFileStream; {合并后的文件}
path: string
;
i: Integer;
begin
path := ChangeFileExt(FileName,''
); {去掉序号扩展名}
ShowMessage(path);
i := 0
;
ms := TMemoryStream.Create;
fs := TFileStream.Create(path, fmCreate);
while
FileExists(path + '.'
+ IntToStr(i)) do
begin
ms.LoadfromFile(path + '.'
+ IntToStr(i));
fs.Copyfrom(ms, 0
); {TFileStream 不需要 SetSize; 但如果用 TMemoryStream 就需要}
Inc(i);
end
;
ms.Free;
fs.Free;
end
;


相关文档:

用Delphi从内存流中判断图片格式的代码

利用内存流来判断文件的格式,其实判断文件的前几个字节就可以简单的判断这个文件是什么类型的文件。
procedure TFrm.CheckImgType(Sender: TObject);  
var   //声明变量
   MyImage:TMemoryStream;   //内存流对象
   Buffer:Word;
   i:integer;
beg ......

delphi操作excel

(一) 使用动态创建的方法
首先创建 Excel 对象,使用ComObj:
var ExcelApp: Variant;
ExcelApp := CreateOleObject( 'Excel.Application' );
1) 显示当前窗口:
ExcelApp.Visible := True;
2) 更改 Excel 标题栏:
ExcelApp.Caption := '应用程序调用 Microsoft Excel';
3) 添加新工作簿:
ExcelApp.WorkBooks.Add ......

DELPHI如何使用指针?

  DELPHI如何使用指针?
大家都认为,C语言之所以强大,以及其自由性,很大部分体
现在其灵活的指针运用上。因此,说指针是C语言的灵魂,一点都不为过。同时,这种说法也让很多人产生误解,似乎只有C语言的指针才能算指针。Basic不
支持指针,在此不论。其实,Pascal语言本身也是支持指针的。从最初的Pasca ......

Delphi中截取文件名

Delphi中截取文件名不含后缀部分 收藏
当文件名含有中文时,不能直接用LeftStr(FileName, Length(FileName - 4))或者用Pos来定位"."的位置来获取。因为中文一个字符相当与两个英文字符。这样截取往往还是把整个FileName都截下来了。
应当使用Copy函数,如下:
TmpFileLength := Pos(extFile, FileName); TmpFileName := ......

delphi资料

1.防止刷新时闪烁的终极解决办法
{ 防止刷新时闪烁的终极解决办法(对付双缓冲无效时) }
  Perform($000B, 0, 0); //锁屏幕  防止闪烁
  // 做一些会发生严重闪烁的事情..
  //解锁屏幕并重画
  Perform($000B, 1, 0);
  RedrawWindow(Handle, nil, 0, RDW_FRAME + RDW_INVALIDATE + R ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号