⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 unit1.~pas

📁 pdu编码的软件源代码
💻 ~PAS
字号:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  BUGradientCaption, LMDCustomControl, LMDCustomPanel, LMDCustomBevelPanel,
  LMDBaseEdit, LMDCustomEdit, LMDEdit, StdCtrls, BUStaticText, BUGroupBox,
  LMDButtonControl, LMDCustomCheckBox, LMDCheckBox, LMDRadioButton, Buttons,
  ExtCtrls, jpeg;

type
  TForm1 = class(TForm)
    BUGroupBox1: TBUGroupBox;
    BUStaticText1: TBUStaticText;
    LMDEdit1: TLMDEdit;
    LMDEdit2: TLMDEdit;
    BUStaticText2: TBUStaticText;
    LMDCheckBox1: TLMDCheckBox;
    LMDRadioButton1: TLMDRadioButton;
    LMDRadioButton2: TLMDRadioButton;
    LMDRadioButton3: TLMDRadioButton;
    LMDRadioButton4: TLMDRadioButton;
    GroupBox1: TGroupBox;
    LMDEdit3: TLMDEdit;
    LMDEdit4: TLMDEdit;
    LMDRadioButton5: TLMDRadioButton;
    LMDRadioButton6: TLMDRadioButton;
    LMDRadioButton7: TLMDRadioButton;
    LMDEdit5: TLMDEdit;
    LMDEdit6: TLMDEdit;
    GroupBox2: TGroupBox;
    LMDEdit7: TLMDEdit;
    LMDEdit8: TLMDEdit;
    Label1: TLabel;
    LMDRadioButton8: TLMDRadioButton;
    LMDRadioButton9: TLMDRadioButton;
    LMDEdit9: TLMDEdit;
    LMDEdit10: TLMDEdit;
    GroupBox3: TGroupBox;
    LMDEdit11: TLMDEdit;
    LMDRadioButton10: TLMDRadioButton;
    LMDRadioButton11: TLMDRadioButton;
    GroupBox4: TGroupBox;
    LMDRadioButton12: TLMDRadioButton;
    LMDRadioButton13: TLMDRadioButton;
    LMDRadioButton14: TLMDRadioButton;
    LMDRadioButton15: TLMDRadioButton;
    GroupBox5: TGroupBox;
    Memo1: TMemo;
    Label2: TLabel;
    GroupBox6: TGroupBox;
    Memo2: TMemo;
    SpeedButton1: TSpeedButton;
    Image1: TImage;
    SpeedButton2: TSpeedButton;
    GroupBox7: TGroupBox;
    Label3: TLabel;
    LMDEdit12: TLMDEdit;
    LMDEdit13: TLMDEdit;
    SpeedButton3: TSpeedButton;
    LMDEdit14: TLMDEdit;
    LMDEdit15: TLMDEdit;
    procedure SpeedButton2Click(Sender: TObject);
    procedure SpeedButton3Click(Sender: TObject);
    procedure SpeedButton1Click(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure LMDRadioButton5Click(Sender: TObject);
    procedure LMDRadioButton6Click(Sender: TObject);
    procedure LMDRadioButton7Click(Sender: TObject);
    procedure LMDRadioButton12Click(Sender: TObject);
    procedure LMDRadioButton13Click(Sender: TObject);
    procedure LMDRadioButton14Click(Sender: TObject);
    procedure LMDRadioButton15Click(Sender: TObject);
    procedure LMDRadioButton1Click(Sender: TObject);
    procedure LMDRadioButton2Click(Sender: TObject);
    procedure LMDRadioButton3Click(Sender: TObject);
    procedure LMDRadioButton4Click(Sender: TObject);
    procedure LMDRadioButton8Click(Sender: TObject);
    procedure LMDRadioButton9Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  str:string;//用来保存编码的结果的;
implementation

{$R *.DFM}
//编码函数7bit
function Encode1(var s:String):String;
var
i,j,len:Integer;
cur:Integer;
t:String;
begin
Result:='';
len:=Length(s);
//j 用于移位计数
i:=1;
j:=0;
while i<=len do
begin
if i<len then
//数据变换
cur:=(ord(s[i]) shr j) or ((ord(s[i+1]) shl (7-j)) and $ff)
else
cur:=(ord(s[i]) shr j) and $7f;
FmtStr(t,'%2.2X',[cur]);
Result:=Result+t;
inc(i);
//移位计数达到7位的特别处理
j:=(j+1) mod 7;
if j=0 then inc(i);
end;
str:=result;
end;


procedure TForm1.SpeedButton2Click(Sender: TObject);
begin
 close;
end;

procedure TForm1.SpeedButton3Click(Sender: TObject);
begin
//////////
end;

procedure TForm1.SpeedButton1Click(Sender: TObject);
var
 temp:string;//保存中间的变量
 len1,len2,i:integer;
 temp1:char;
begin
/////////////
len1:=length(lmdedit5.Text);
temp:=lmdedit5.text;
for i:=0 to len1 div 2 do
 begin
  temp1:=temp[2*i+1];
  temp[2*i+1]:=temp[2*i+2];
  temp[2*i+2]:=temp1;
 end;
lmdedit6.Text:=temp;
len2:=length(lmdedit9.text);
temp:=lmdedit9.text;
lmdedit7.text:=inttohex(len2,2);
for i:=0 to len2 div 2 do
 begin
  temp1:=temp[2*i+1];
  temp[2*i+1]:=temp[2*i+2];
  temp[2*i+2]:=temp1;
 end;
lmdedit10.text:=temp;
if lmdradiobutton10.Checked then
 begin///7bit
  temp:=memo1.Text;
  encode1(temp);
  memo2.text:=str;
 end;
if lmdradiobutton11.Checked then
 begin///8bit
  lmdedit15.text:=inttohex(length(memo1.text),2);
  temp:='';
  for i:=1 to length(memo1.text) do
   begin
    temp1:=memo1.text[i];
    temp:=temp+inttohex(ord(temp1),2);
   end;
   temp:=lmdedit3.text+lmdedit4.text+lmdedit6.Text+
         lmdedit1.text+lmdedit2.text+lmdedit7.text+
         lmdedit8.text+lmdedit10.text+lmdedit14.text+
         lmdedit11.text+lmdedit13.text+lmdedit15.text+temp;
  memo2.text:=temp;
 end;
end;

procedure TForm1.FormShow(Sender: TObject);
begin
lmdradiobutton5.Checked:=true;
lmdcheckbox1.Checked:=true;
lmdradiobutton11.Checked:=true;
lmdradiobutton14.Checked:=true;
lmdradiobutton1.Checked:=true;
lmdedit14.Text:='00';
lmdradiobutton9.Checked:=true;
lmdedit8.Text:='91';
lmdedit7.Text:='00';
end;

procedure TForm1.LMDRadioButton5Click(Sender: TObject);
begin
 if lmdradiobutton5.Checked then
 begin
   lmdedit4.Text:='91';
   if length(lmdedit5.text)<>0 then
   lmdedit3.text:='07'
   else lmdedit3.text:='00';
 end;
end;

procedure TForm1.LMDRadioButton6Click(Sender: TObject);
begin
 if lmdradiobutton6.Checked then
  lmdedit4.text:='81';
end;

procedure TForm1.LMDRadioButton7Click(Sender: TObject);
begin
 if lmdradiobutton7.Checked then
  lmdedit3.Text:='00';
end;

procedure TForm1.LMDRadioButton12Click(Sender: TObject);
begin
 if lmdradiobutton12.Checked then
  lmdedit11.Text:='f4';

end;

procedure TForm1.LMDRadioButton13Click(Sender: TObject);
begin
 if lmdradiobutton13.Checked then
  lmdedit11.Text:='f5';
end;

procedure TForm1.LMDRadioButton14Click(Sender: TObject);
begin
if lmdradiobutton14.Checked then
  lmdedit11.Text:='f6';
end;

procedure TForm1.LMDRadioButton15Click(Sender: TObject);
begin
if lmdradiobutton15.Checked then
  lmdedit11.Text:='f7';
end;

procedure TForm1.LMDRadioButton1Click(Sender: TObject);
begin
 if lmdradiobutton1.Checked then
  lmdedit14.Text:='00';

end;

procedure TForm1.LMDRadioButton2Click(Sender: TObject);
begin
  if lmdradiobutton2.Checked then
  lmdedit14.Text:='01';
end;

procedure TForm1.LMDRadioButton3Click(Sender: TObject);
begin
 if lmdradiobutton3.Checked then
  lmdedit14.Text:='02';
end;

procedure TForm1.LMDRadioButton4Click(Sender: TObject);
begin
 if lmdradiobutton4.Checked then
  lmdedit14.Text:='03';
end;

procedure TForm1.LMDRadioButton8Click(Sender: TObject);
begin
if lmdradiobutton8.Checked then
 lmdedit8.Text:='81';
end;

procedure TForm1.LMDRadioButton9Click(Sender: TObject);
begin
 if lmdradiobutton9.Checked then
  lmdedit8.Text:='81';
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -