📄 nmuue.pas
字号:
unit NMUUE;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, NMConst;
type
UUMethods = (uuMime, uuCode);
TNMUUProcessor = class(TComponent)
private
FOnBeginEncode: TNotifyEvent;
FOnEndEncode: TNotifyEvent;
FOnBeginDecode: TNotifyEvent;
FOnEndDecode: TNotifyEvent;
FInputStream: TStream;
FOutputStream: TStream;
protected
FUUMethod: UUMethods;
public
constructor Create(AOwner: TComponent); override;
procedure Encode;
procedure Decode;
property InputStream: TStream read FInputStream write FInputStream;
property OutputStream: TStream read FOutputStream write FOutputStream;
published
property Method: UUMethods read FUUMethod write FUUMethod default uuMime;
property OnBeginEncode: TNotifyEvent read FOnBeginEncode write FOnBeginEncode;
property OnEndEncode: TNotifyEvent read FOnEndEncode write FOnEndEncode;
property OnBeginDecode: TNotifyEvent read FOnBeginDecode write FOnBeginDecode;
property OnEndDecode: TNotifyEvent read FOnEndDecode write FOnEndDecode;
end;
implementation
uses
NM64Encode, NM64Decode, NMUUEncode, NMUUDecode;
{*******************************************************************************
Create NMUUE and set code method to MIME by default
*******************************************************************************}
constructor TNMUUProcessor.Create(AOwner: TComponent);
begin
inherited;
FUUMethod := uuMime;
end;
{*******************************************************************************
Encode
*******************************************************************************}
procedure TNMUUProcessor.Encode;
begin
FInputStream.Position := 0;
if Assigned(FOnBeginEncode) then
FOnBeginEncode(self);
case Method of
uuMime: B64Encode(FInputStream, FOutputStream);
uuCode: UUEEncode(FInputStream, FOutputStream);
end;
FInputStream.Position := 0;
FOutputStream.Position := 0;
if Assigned(FOnEndEncode) then
FOnEndEncode(self);
end;
{*******************************************************************************************
Decode
********************************************************************************************}
procedure TNMUUProcessor.Decode;
begin
FInputStream.Position := 0;
if Assigned(FOnBeginDecode) then
FOnBeginDecode(self);
case Method of
uuMime: B64Decode(FInputStream, FOutputStream);
uuCode: UUEDecode(FInputStream, FOutputStream);
end;
FInputStream.Position := 0;
FOutputStream.Position := 0;
if Assigned(FOnEndDecode) then
FOnEndDecode(self);
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -