| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- { $HDR$}
- {**********************************************************************}
- { Unit archived using Team Coherence }
- { Team Coherence is Copyright 2002 by Quality Software Components }
- { }
- { For further information / comments, visit our WEB site at }
- { http://www.TeamCoherence.com }
- {**********************************************************************}
- {}
- { $Log: 10089: IdCoder.pas
- {
- { Rev 1.0 2002.11.12 10:32:16 PM czhower
- }
- unit IdCoder;
- interface
- uses
- Classes,
- IdBaseComponent, IdGlobal;
- type
- TIdEncoder = class(TIdBaseComponent)
- public
- function Encode(const ASrc: string): string; overload;
- function Encode(ASrcStream: TStream; const ABytes: integer = MaxInt): string; overload; virtual;
- abstract;
- class function EncodeString(const AIn: string): string;
- end;
- TIdDecoder = class(TIdBaseComponent)
- public
- class function DecodeString(AIn: string): string;
- function DecodeToString(const AIn: string): string;
- procedure DecodeToStream(AIn: string; ADest: TStream); virtual; abstract;
- end;
- implementation
- uses
- SysUtils;
- { TIdDecoder }
- class function TIdDecoder.DecodeString(AIn: string): string;
- begin
- with Create(nil) do try
- Result := DecodeToString(AIn);
- finally Free; end;
- end;
- function TIdDecoder.DecodeToString(const AIn: string): string;
- {var
- LDestStream: TIdReadMemoryStream;
- begin }
- var
- LDestStream: TStringStream;
- begin
- LDestStream := TStringStream.Create(''); try {Do not Localize}
- DecodeToStream(AIn, LDestStream);
- Result := LDestStream.DataString;
- finally FreeAndNil(LDestStream); end;
- end;
- { TIdEncoder }
- function TIdEncoder.Encode(const ASrc: string): string;
- var
- LSrcStream: TIdReadMemoryStream;
- begin
- LSrcStream := TIdReadMemoryStream.Create; try
- LSrcStream.SetPointer(Pointer(ASrc),Length(ASrc));
- Result := Encode(LSrcStream);
- finally FreeAndNil(LSrcStream); end;
- end;
- class function TIdEncoder.EncodeString(const AIn: string): string;
- begin
- with Create(nil) do try
- Result := Encode(AIn);
- finally Free; end;
- end;
- end.
|