delphi TFileStream流操作1


本文整理自网络,侵删。

 
unit frmMain;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils,
  System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    Button4: TButton;
    Memo1: TMemo;
    Button5: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button5Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

const
  SOURCE_FILE_PATH: string = 'E:\Demo\a.txt';

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
  WriteFileStream, ReadFileStream: TFileStream;

begin
  try
    // 创建对象
    ReadFileStream := TFileStream.Create('D:\常用软件下载.txt', fmOpenRead);

    WriteFileStream := TFileStream.Create('E:\Demo\a.txt', fmCreate);

    // 设置读取的位置
    ReadFileStream.Position := 0;

    WriteFileStream.CopyFrom(ReadFileStream, ReadFileStream.Size);
  finally
    FreeAndNil(ReadFileStream);
    FreeAndNil(WriteFileStream);
  end;

end;

procedure TForm1.Button2Click(Sender: TObject);
var
  FileStream: TFileStream;
var
  Str: string;
var
  StrByte: TBytes;
begin

  // 字符串的长度、字符编码   Unicode、utf-8、gbk
  Str := '期待B站粉丝破万';

  try
    FileStream := TFileStream.Create(SOURCE_FILE_PATH, fmCreate);

    // 将string转换为指定编码的字节数组
    StrByte := TEncoding.UTF8.GetBytes(Str);

    FileStream.WriteBuffer(StrByte, Length(StrByte));

  finally
    FreeAndNil(FileStream);
  end;
end;

procedure TForm1.Button3Click(Sender: TObject);
var
  FileStream: TFileStream;
var
  Str: UTF8String;
begin
  try
    // 以只读的方式打开一个文件
    FileStream := TFileStream.Create(SOURCE_FILE_PATH, fmOpenRead);
    FileStream.Position := 0;
    // 设置字符串的长度
    SetLength(Str, FileStream.Size);
    // 读取数据:解除指针引用,获取变量中的值
    FileStream.Read(PChar(Str)^, FileStream.Size);
    ShowMessage(Str);

  finally
    FreeAndNil(FileStream);
  end;
end;

procedure TForm1.Button4Click(Sender: TObject);
var
  x: PInteger; // 整数类型的指针,    指针就是一个存放内存地址的变量
  y: Integer;

begin
  y := 20;

  x := @y;
  ShowMessage(x^.ToString); // ^在变量名的右边时表示解除指针引用
end;

procedure TForm1.Button5Click(Sender: TObject);
var
  FileStream: TFileStream;
var
  Str: UTF8String;
begin
  FileStream := TFileStream.Create(SOURCE_FILE_PATH, fmOpenRead);
  FileStream.Position := 0;
  SetLength(Str, FileStream.Size);
  // 读取数据:解除指针引用,获取变量中的值
  FileStream.Read(PChar(Str)^, FileStream.Size);
  Self.Memo1.Lines.Add(Str);

  FreeAndNil(FileStream);
end;

end.

相关阅读 >>

Delphi webbrowser1 保存文档为 .html

Delphi调用javascript解析json

Delphi图像数据压缩解压缩实例

Delphi检查自身是否被调试

Delphi ttabcontrol在tabitem添加关闭按钮

Delphi 安卓app的https访问权限

Delphi 命令行 打开读写txt文件

webbrowser点击没有id和name的按钮或链接

Delphi 不重复运行外部程序exe

Delphi - system.runerror

更多相关阅读请进入《Delphi》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...