• 读十六进制文本到 Btye 数组的函数 回复 "峰哥!!!" 的问题



    问题来源: http://www.cnblogs.com/del/archive/2009/03/10/1407220.html#1472741

    代码文件:
    unit Unit1;
    
    interface
    
    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls;
    
    type
      TForm1 = class(TForm)
        Button1: TButton;
        Memo1: TMemo;
        procedure Button1Click(Sender: TObject);
      end;
    
    var
      Form1: TForm1;
    
    implementation
    
    {$R *.dfm}
    
    {把十六进制文本载入一个 Byte 数组的函数}
    procedure HexToArr(const FileName: string; var arr: TBytes);
    var
      str: string;
      count: Integer;
      i: Integer;
    begin
      if not FileExists(FileName) then Exit;
      with TStringList.Create do begin
        LoadFromFile(FileName);
        str := Text;
        Free;
      end;
      str := StringReplace(str, ' ', '', [rfReplaceAll]); {清除空格}
      count := Length(str);
      SetLength(arr, (count-1) div 2);
      for i := 0 to count - 2 do if Odd(i) then
        arr[i div 2] := StrToIntDef('$' + str[i] + str[i+1], 1);
    end;
    
    {测试}
    procedure TForm1.Button1Click(Sender: TObject);
    const
      HexTxtFile = 'c:\temp\Hex.txt'; {一定要是十六进制的文本格式, 由 0-F 十六个字符组成的}
    var
      MyArr: TBytes;
      str: string;
      i: Integer;
    begin
      {调用函数}
      HexToArr(HexTxtFile, MyArr);
    
      {在 Memo 中看看, 落实下}
      str := '';
      for i := 0 to Length(MyArr) - 1 do
        str := str + Format('%.2x ', [MyArr[i]]);
      Memo1.Text := TrimRight(str);
    end;
    
    end.
    

    窗体文件:
    object Form1: TForm1
      Left = 0
      Top = 0
      Caption = 'Form1'
      ClientHeight = 136
      ClientWidth = 317
      Color = clBtnFace
      Font.Charset = DEFAULT_CHARSET
      Font.Color = clWindowText
      Font.Height = -11
      Font.Name = 'Tahoma'
      Font.Style = []
      OldCreateOrder = False
      PixelsPerInch = 96
      TextHeight = 13
      object Button1: TButton
        Left = 234
        Top = 103
        Width = 75
        Height = 25
        Caption = 'Button1'
        TabOrder = 0
        OnClick = Button1Click
      end
      object Memo1: TMemo
        Left = 0
        Top = 0
        Width = 317
        Height = 97
        Align = alTop
        Lines.Strings = (
          'Memo1')
        ScrollBars = ssBoth
        TabOrder = 1
      end
    end
    

  • 相关阅读:
    Slf4j框架的用法
    常用框架介绍
    Spring整合Kafka(Spring-Kafka)
    Java并发容器
    kafka多线程消费
    kafka简介
    kafka-clients介绍
    windows搭建kafka
    rocketmq-client使用
    Window搭建部署RocketMQ
  • 原文地址:https://www.cnblogs.com/del/p/1407728.html
Copyright © 2020-2023  润新知