博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
读十六进制文本到 Btye 数组的函数 - 回复 "峰哥!!!" 的问题
阅读量:7041 次
发布时间:2019-06-28

本文共 1814 字,大约阅读时间需要 6 分钟。

  hot3.png

问题来源:

代码文件:

unit Unit1;interfaceuses  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  endend

转载于:https://my.oschina.net/hermer/blog/320784

你可能感兴趣的文章
【Flutter 学习笔记二】Dart 的基础概念和数据类型
查看>>
zepto源码ajax模块学习
查看>>
Vue v-for渲染页面,获取不到DOM元素解析
查看>>
一个典型案例为你解读TDSQL 全时态数据库系统
查看>>
视频云资深技术专家李彬:传统企业如何进行多媒体数字化转型?
查看>>
1. Two Sum (Easy)
查看>>
【linux】与 用户、权限 有关的常用命令
查看>>
对Javascript 类、原型链、继承的理解
查看>>
Go 的 fake-useragent 了解一下
查看>>
创建topic——kafka源码探究之一
查看>>
【Laravel】Laravel 框架关键技术解析·读书笔记(一)
查看>>
ES6入门---let和const
查看>>
Codepen 每日精选(2018-4-10)
查看>>
git学习笔记
查看>>
Thinking——Debian On Windows初试
查看>>
看完你也想编写自己的 react 插件
查看>>
数据结构与算法:常见排序算法
查看>>
记录一次并发读取MongoDB的踩坑过程
查看>>
初识JavaScript EventLoop
查看>>
MVC是什么
查看>>