DELPHI盒子
!实时搜索: 盒子论坛 | 注册用户 | 修改信息 | 退出
检举帖 | 全文检索 | 关闭广告 | 捐赠
技术论坛
 用户名
 密  码
自动登陆(30天有效)
忘了密码
≡技术区≡
DELPHI技术
lazarus/fpc/Free Pascal
移动应用开发
Web应用开发
数据库专区
报表专区
网络通讯
开源项目
论坛精华贴
≡发布区≡
发布代码
发布控件
文档资料
经典工具
≡事务区≡
网站意见
盒子之家
招聘应聘
信息交换
论坛信息
最新加入: wuliao8
今日帖子: 43
在线用户: 17
导航: 论坛 -> DELPHI技术 斑竹:liumazi,sephil  
作者:
男 huo_v_wu (勇敢的螳螂) ★☆☆☆☆ -
盒子活跃会员
2024/6/6 21:31:55
标题:
求教一段 delphi7 把文件转成Base64格式的程序代码 浏览:262
加入我的收藏
楼主: 请教一个在Delphi7里面将压缩文件转成Base64的函数 谢谢
----------------------------------------------
-敢于学习,谦虚学习,鼓励批评!!
作者:
男 zhahongyi (如风) ★☆☆☆☆ -
普通会员
2024/6/6 22:14:02
1楼:  baidu出来的

在Delphi 7中,可以使用内置的Indy组件库来实现文件转Base64编码的功能。以下是一个简单的示例代码:

首先,确保安装了Indy组件库,并在项目中引用了IdCoderMIME和IdGlobal组件。

uses
  IdCoderMIME, IdGlobal;
 
function FileToBase64(const FileName: string): string;
var
  SourceStream: TFileStream;
  Base64: TIdEncoderMIME;
begin
  SourceStream := TFileStream.Create(FileName, fmOpenRead or fmShareDenyWrite);
  try
    Base64 := TIdEncoderMIME.Create(nil);
    try
      Result := Base64.Encode(SourceStream);
    finally
      Base64.Free;
    end;
  finally
    SourceStream.Free;
  end;
end;
 
// 使用示例
var
  Base64String: string;
begin
  Base64String := FileToBase64('C:\path\to\your\file.ext');
  // 此时Base64String包含文件内容的Base64编码
end;

这段代码定义了一个FileToBase64函数,它接受一个文件路径作为参数,读取文件内容,并将其转换为Base64编码的字符串。在使用时,只需调用FileToBase64函数并传入文件路径即可。

提示:AI自动生成,仅供参考
----------------------------------------------
-
作者:
男 lyp8899 (lyp8899) ★☆☆☆☆ -
盒子活跃会员
2024/6/7 9:04:51
2楼: 用这个神奇的聊天工具,我的生活变得更加便利了。不需要魔法,不需要海外手机号码,来试试吧:Chat8。点击使用: https://guan.chat772.com/#/register?bron_k_on=811080

我也用AI试了下:

请教一个在Delphi7里面将压缩文件转成Base64的函数 谢谢


在Delphi7中,你可以使用以下的函数将压缩文件转换为Base64编码:

uses
  Classes, SysUtils, EncdDecd;

function FileToBase64(const FileName: string): string;
var
  FileStream: TFileStream;
  MemoryStream: TMemoryStream;
begin
  FileStream := TFileStream.Create(FileName, fmOpenRead or fmShareDenyWrite);
  try
    MemoryStream := TMemoryStream.Create;
    try
      EncodeStream(FileStream, MemoryStream);
      Result := EncodeBase64(MemoryStream.Memory, MemoryStream.Size);
    finally
      MemoryStream.Free;
    end;
  finally
    FileStream.Free;
  end;
end;
这个函数接受一个文件名作为参数,并返回相应文件的Base64编码字符串。请确保你的项目使用了 EncdDecd 单元。

使用方法示例:

var
  Base64String: string;
begin
  Base64String := FileToBase64('C:\Path\To\Your\File.zip');
  // 现在 Base64String 变量中包含了文件的 Base64 编码
end;

EncodeBase64 没有定义呀

抱歉,看来我犯了一个错误。Delphi 7 中确实没有内置的 EncodeBase64 函数。不过,你可以使用 EncdDecd 单元中的 EncodeString 函数来实现相同的功能。以下是修正后的代码:

uses
  Classes, SysUtils, EncdDecd;

function FileToBase64(const FileName: string): string;
var
  FileStream: TFileStream;
  MemoryStream: TMemoryStream;
begin
  FileStream := TFileStream.Create(FileName, fmOpenRead or fmShareDenyWrite);
  try
    MemoryStream := TMemoryStream.Create;
    try
      EncodeStream(FileStream, MemoryStream);
      MemoryStream.Position := 0;
      SetLength(Result, MemoryStream.Size);
      MemoryStream.Read(Result[1], MemoryStream.Size);
      Result := EncodeString(Result);
    finally
      MemoryStream.Free;
    end;
  finally
    FileStream.Free;
  end;
end;
这个函数接受一个文件名作为参数,并返回相应文件的Base64编码字符串。

使用方法示例:

var
  Base64String: string;
begin
  Base64String := FileToBase64('C:\Path\To\Your\File.zip');
  // 现在 Base64String 变量中包含了文件的 Base64 编码
end;
希望这次能够帮到你。
----------------------------------------------
▄︻┻┳═
作者:
男 sail2000 (小帆工作室) ★☆☆☆☆ -
盒子活跃会员
2024/6/7 12:12:55
3楼: uses
  EncdDecd;

function StreamToBase64(AStream: TStream): string;
var
  LstrMS: TStringStream;
begin
  LstrMS := TStringStream.Create('');
  try
    AStream.Position := 0;
    EncodeStream(AStream, LstrMS);
    Result := LstrMS.DataString;
  finally
    FreeAndNil(LstrMS);
  end;
end;
----------------------------------------------
delphi 是兴趣,和工作无关,即使它倒闭。又不靠它 delphi 吃饭,怕甚?
作者:
男 bahamut8348 (leonna) ★☆☆☆☆ -
普通会员
2024/6/7 12:34:46
4楼: 楼主到底发了多少回了?发了以后别说回复了,连看都不看一下?耍猴呢?
----------------------------------------------
--
信息
登陆以后才能回复
Copyright © 2CCC.Com 盒子论坛 v3.0.1 版权所有 页面执行42.96875毫秒 RSS