在delphi7中将图片保存到access数据库中的源代码

在delphi7中将图片保存到access数据库中的源代码,第1张

字段名称类型描述

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并对其进行一个处理等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9562318.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-29
下一篇2023-04-29

发表评论

登录后才能评论

评论列表(0条)

    保存