
字段名称类型描述
id自动编号 主键值
img OLE对象 用来保存数据procedure TForm1Button1Click(Sender: TObject);
var
F:File of Byte;
size:Longint; //文件大小
FilePath,time:string; //文件时间
begin
FilePath:=ExtractFilePath(Paramstr(0))+'demojpg';//地址为当前目录下
AssignFile(F,FilePath);
reset(F);
size:=Filesize(F);//获取文件大小。
time:=DatetimetoStr(FileDateToDateTime(FileAge(FilePath)));//获取文件创建时间。
closefile(F);
adoquery1Close;
adoquery1SQLClear;
adoquery1SQLAdd('select from Image');
adoquery1Open;
adoquery1Insert;
adoquery1FieldByName('FileName')AsString:=ExtractFileName(FilePath); //存储文件名称
adoquery1FieldByName('FileKind')AsString:=ExtractFileExt(FilePath); //存储文件扩展名。
adoquery1FieldByName('FileSize')AsInteger:=size; //存储文件的大小。
adoquery1FieldByName('FileTime')AsString:=time; //存储文件的创建时间。
adoquery1FieldByName('SaveTime')AsDateTime:=now();//存取文件的存储时间
TBlobField(ADOquery1FieldByName('FileContent'))LoadFromFile(FilePath);//的二进制流,存进去之后,数据库会显示(<<Binary>>)
ADOquery1Post;
end;下面是读取还有代开的代码,添加一个Timage空间进行显示,ID为我的自增列,读取最后一条插入记录procedure TForm1Button2Click(Sender: TObject);
Var
Ms:TStream;
jpg:Tjpegimage;
begin
adoquery1Close;
adoquery1SQLClear;
adoquery1SQLAdd('select top 1 from Image order by id desc');
adoquery1Open;
Ms:=TStreamCreate;
MS:=adoquery1CreateBlobStream(adoquery1FieldbyName('FileContent'),bmRead);
MsPosition :=0;
jpg:=TjpegimageCreate;
JpgLoadFromStream(Ms);
Image1PictureAssign(Jpg);
jpgFree;
MSFree;
end;当然这里你也可以将其中的代码修改一下,不用显示就把“Image1PictureAssign(Jpg);”改为保存“JpgSaveToFile(路径);” 详情可以上我的百度博客看>
我尝试写了一个过程,参数分别是要处理的文件InFile,结果文件OutFile,宽字符数量WideWordCount
procedure DoText(const InFile, OutFile: string; WideWordCount: Integer);
var
FileStream: TFileStream;
OutList: TStringList;
TmpStr: string;
Cnt, ReadCnt: Integer;
begin
OutList := TStringListCreate;
FileStream := TFileStreamCreate(InFile, fmOpenRead or fmShareDenyNone);
try
Cnt := WideWordCount 2;
SetLength(TmpStr, Cnt);
while True do
begin
ReadCnt := FileStreamRead(TmpStr[1], Cnt);
if ReadCnt < Cnt then
begin
SetLength(TmpStr, ReadCnt);
OutListAdd(TmpStr);
Break;
end;
OutListAdd(TmpStr);
end;
OutListSaveToFile(OutFile);
finally
OutListFree;
FileStreamFree;
end;
end;
delphi 编译生成的 exe 文件,占用磁盘字节数比较大的原因在于,delphi 编译的文件中包含有其他的数据信息更多。
以下在 delphi xe 10 中,建立一个只包含空窗体的工程,通过多种配置进行编译,生成的 exe 文件大小的测试:
1、通常 delphi 的文件为了调试方便,默认新建工程进行编译的 exe 文件,是包含有 Debug 信息的,其生成的 exe 文件大小约为105M:
2、如果将去除调试数据,使用发布版(Release)进行编译,则生成的文件大小约 21 M,exe 文件占用大幅减少,可见 debug 占用了很大的磁盘空间:
3、进一步关闭 RTTI(Run-Time Type Information) 反射机制,最后生成的exe 文件约 169M:
简单经过以上3步,delphi 生成的 exe 文件大小已经从最初的 105 M,减小到 169 M。
此外,诸如:低版本的 delphi 使用 AnsiString 作为缺省字符集,而高版本使用 UniCode 作为字符集等因素,也会使得 exe 文件增大。
你是想获得图标的话,建议使用专门的图标提取工具
AWicons Pro
║ 软件介绍: ║
║ Awicons 是一个搜索,创建,编辑,导入/导出,管理图标,光标,和小 ║
║ 型的强力工具! ║
║ 具体功能如下: ║
║ 1全面支持Windows XP的图标! ║
║ 2支持包括ico, cur, ani, png, gif, bmp, jpg在内的多种文件 ║
║ 格式! ║
║ 3支持所有的颜色格式!包括mono, 16, 256, true-color, ║
║ true-color with alpha! ║
║ 4最大可以创建128 x 128 大小的图标! ║
║ 5可以自动对硬盘里的图标,光标和进行扫描! ║
║ 6自带多种画笔,多种强力虑镜,使你的编辑 ║
║ 创建更加轻松自如! ║
║ 7支持直接从dll,EXE文件中提取图标! ║
║ 8支持图标库!
delphi目录下文件数量
使用命令行查看Delphi目录下文件数量:
1 在命令行中输入 cd Delphi,进入Delphi目录;
2 输入 dir /a /b /s,查看Delphi目录下的文件数量。
其实就和系统上的文件路径一样
LoadFormFile('\文件名txt'); // 同exe目录下'\子目录\文件名txt' // 子目录下
'\文件名txt' // exe文件的上一级目录
例如你的 exe 文件在 D:\a\b\c\ 中,这个 文件名txt 的路径是 D:\a\b\文件名txt
还可以 \\文件夹\文件名txt
希望是可以路径跟随文件自动改变
这句没看明白,文件名不确定?那需要定义一下,例如使用ini配置
var//定义一个变量,并设置默认的文件名
cfg_ListBox_FileName : String = '\文件名txt';
procedure LoadAppConfig;
var
Ini : TIniFile;
szFileName : String;
begin
// ExtractFilePath(ApplicationExeName) 取的程序所在目录,即 ini 文件在exe同目录下
szFileName := ExtractFilePath(ApplicationExeName) + 'cfgini';
// 文件不存在,以默认值生成该文件
if not FileExists(szFileName) then begin
Ini := TIniFileCreate(szFileName);
IniWriteString('cfg', 'ListBox_FileName', cfg_ListBox_FileName);
IniFree;
end;
// 读取配置
Ini := TIniFileCreate(szFileName);
cfg_ListBox_FileName := IniReadString('cfg', 'ListBox_FileName', cfg_ListBox_FileName);
IniFree;
end;
// 需要 uses IniFiles 单元
// 读取文件
listbox items loadfromfile(cfg_ListBox_FileName);
以上就是关于在delphi7中将图片保存到access数据库中的源代码全部的内容,包括:在delphi7中将图片保存到access数据库中的源代码、DELPHI基础教程:文件管理(二)[4]、delphi读取大容量txt并对其进行一个处理等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)