在字符串处理中,我们经常需要对文件编码然后再进行传输,通常会使用base64编码,在FreePascal中默认集成了这个单元,我们来介绍如何使用:

首先需要在引用单元的时候使用: use base64;

1.解密加密函数

这个函数直接对字符串进行解密、加密操作,非常简单:

procedure TForm1.Button1Click(Sender:TObject);
begin
  Memo1.Text:= EncodeStringBase64(Memo1.Text);
end; procedure TForm1.Button2Click(Sender:TObject);
begin
  Memo1.Text:= DecodeStringBase64(Memo1.Text);
end;

2.文件字节流操作

这里直接贴出代码:

var
  B64: TBase64EncodingStream;
  s:TFileStream;
  st:TSTringStream;
  TempStr:String;
  ccount: integer;
begin
  if OpenDialog1.Execute then
    s :=TFileStream.Create(OpenDialog1.FileName,fmOpenRead)
  else
    Exit;
  st :=TSTringStream.Create('');
  try
    B64 := TBase64EncodingStream.Create(st);
    try
      Memo1.Lines.Clear;
  //    B64.WriteBuffer(s, s.Size);
      SetLength(TempStr, s.Size);
      s.Read(tempStr[1], s.Size);
      ccount := s.Size;
      B64.Write(tempStr[1], ccount);
      ShowMessage(tempstr);
      Memo1.Lines.Add(st.DataString);
    finally
      B64.Free;
    end;
  finally
    s.Free;
    st.Free;
  end;    

是不是非常简单。

Lazarus中Base64的操作的更多相关文章

  1. 关于JavaScript中的delete操作

    关于JavaScript中的delete操作 看到一道题,是这样的: (function(x){ delete x; return x; })(1); 1 null undefined Error 我 ...

  2. 理解CSV文件以及ABAP中的相关操作

    在很多ABAP开发中,我们使用CSV文件,有时候,关于CSV文件本身的一些问题使人迷惑.它仅仅是一种被逗号分割的文本文档吗? 让我们先来看看接下来可能要处理的几个相关组件的词汇的语义. Separat ...

  3. 第32课 Qt中的文件操作

    1. Qt的中IO操作 (1)Qt中IO操作的处理方式 ①Qt通过统一的接口简化了文件和外部设备的操作方式 ②Qt中的文件被看作一种特殊的外部设备 ③Qt中的文件操作与外部设备的操作相同 (2)IO操 ...

  4. 【Java EE 学习 33 上】【JQuery样式操作】【JQuery中的Ajax操作】【JQuery中的XML操作】

    一.JQuery中样式的操作 1.给id=mover的div采用属性增加样式.one $("#b1").click(function(){ $("#mover" ...

  5. 【Java EE 学习 32 下】【JQuery】【JQuey中的DOM操作】

    一.JQuery中的DOM操作. 什么是DOM:DOM是一中和浏览器.平台.语言无关的接口,使用该接口可以轻松访问页面中所有的标准组件.DOM简称文档对象模型,是Document Oject Mode ...

  6. git工作中的常用操作

    上班开始,打开电脑,git pull:拉取git上最新的代码: 编辑代码,准备提交时,git stash:将自己编辑的代码暂存起来,防止git pull时与库中的代码起冲突,否则自己的代码就白敲了: ...

  7. 我的Android六章:Android中SQLite数据库操作

    今天学习的内容是Android中的SQLite数据库操作,在讲解这个内容之前小编在前面有一篇博客也是讲解了SQLite数据库的操作,而那篇博客的讲解是讲述了 如何在Window中通过DOM来操作数据库 ...

  8. 使用Hive或Impala执行SQL语句,对存储在HBase中的数据操作

    CSSDesk body { background-color: #2574b0; } /*! zybuluo */ article,aside,details,figcaption,figure,f ...

  9. 使用Hive或Impala执行SQL语句,对存储在Elasticsearch中的数据操作(二)

    CSSDesk body { background-color: #2574b0; } /*! zybuluo */ article,aside,details,figcaption,figure,f ...

随机推荐

  1. android 广播

    关于广播以前感觉是一知半解的,这次看到同事整理的文档,顺带跟着再参考几篇博文也学习整理了下,先上个整理的图 代码模板 发送广播 public static final String RECEIVE_A ...

  2. onSaveInstanceState和onRestoreInstanceState

    本文摘自: http://h529820165.iteye.com/blog/1399023 Android calls onSaveInstanceState() before the activi ...

  3. node.js打开浏览器

    通过nodejs的child_process识别环境, 用不同的CLI打开默认浏览器: var child_process = require("child_process"); ...

  4. nignx重启启动关闭

    http://www.cnblogs.com/jianxie/p/3990377.html 一.启动 cd usr/local/nginx/sbin ./nginx cd usr/local/ngin ...

  5. maven 问题汇总

    尽量用高版本maven 3以上的版本 1.maven环境变量相关 maven环境变量配置依赖于JAVA_HOME配置 maven环境变量配置为M2_HOME maven配置完环境变量需要重启操作系统 ...

  6. API分析——Jquery UI Dialog

    1.阅读API文档的一般方法? 通常地, API由三部分构成:属性.方法.事件. 属性表示参数配置,作为一个组件的微调,或者功能的开启与关闭: 方法表示组件能够发生的动作,或者组件的状态监测: 事件表 ...

  7. 【python游戏编程之旅】第一篇---初识pygame

    本系列博客介绍以python+pygame库进行小游戏的开发.有写的不对之处还望各位海涵. 一.pygame简介 Pygame 是一组用来开发游戏软件的 Python 程序模块,基于 SDL 库的基础 ...

  8. Nginx location 匹配规则

    1. default_server: 当请求没有匹配到服务器中配置的任何一个server的时候,会默认把请求route到配置了default_server的virtual host中.参考地址:htt ...

  9. (转)js:字符串(string)转json

    第一种方式: 使用js函数eval(); testJson=eval(testJson);是错误的转换方式. 正确的转换方式需要加(): testJson = eval("(" + ...

  10. jQuery 写的插件图片上下切换幻灯效果

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...