116 lines
3.0 KiB
ObjectPascal
116 lines
3.0 KiB
ObjectPascal
(* ***** BEGIN LICENSE BLOCK *****
|
|
* Version: MPL 1.1
|
|
*
|
|
* The contents of this file are subject to the Mozilla Public License Version
|
|
* 1.1 (the "License"); you may not use this file except in compliance with
|
|
* the License. You may obtain a copy of the License at
|
|
* http://www.mozilla.org/MPL/
|
|
*
|
|
* Software distributed under the License is distributed on an "AS IS" basis,
|
|
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
|
* for the specific language governing rights and limitations under the
|
|
* License.
|
|
*
|
|
* The Original Code is TurboPower Abbrevia
|
|
*
|
|
* The Initial Developer of the Original Code is
|
|
* TurboPower Software
|
|
*
|
|
* Portions created by the Initial Developer are Copyright (C) 1997-2002
|
|
* the Initial Developer. All Rights Reserved.
|
|
*
|
|
* Contributor(s):
|
|
*
|
|
* ***** END LICENSE BLOCK ***** *)
|
|
|
|
{*********************************************************}
|
|
{* ABBREVIA: USTRPAD.PAS *}
|
|
{* Copyright (c) TurboPower Software Co 1997 *}
|
|
{* All rights reserved. *}
|
|
{*********************************************************}
|
|
{* ABBREVIA Example program file *}
|
|
{*********************************************************}
|
|
|
|
unit Ustrpad;
|
|
|
|
interface
|
|
|
|
uses
|
|
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
|
|
StdCtrls, ExtCtrls;
|
|
|
|
type
|
|
TForm1 = class(TForm)
|
|
Memo1: TMemo;
|
|
Panel1: TPanel;
|
|
Memo2: TMemo;
|
|
procedure FormCreate(Sender: TObject);
|
|
procedure FormDestroy(Sender: TObject);
|
|
private
|
|
{ Private declarations }
|
|
ZnfName : string;
|
|
TxtName : string;
|
|
ZnfStream : TFileStream;
|
|
TxtStream : TStream;
|
|
public
|
|
{ Public declarations }
|
|
end;
|
|
|
|
var
|
|
Form1: TForm1;
|
|
|
|
implementation
|
|
|
|
uses
|
|
AbUnzPrc,
|
|
AbZipPrc;
|
|
|
|
{$R *.DFM}
|
|
|
|
procedure TForm1.FormCreate(Sender: TObject);
|
|
begin
|
|
ZnfName := ChangeFileExt(Application.ExeName, '.zst');
|
|
TxtName := ExtractFileName( ChangeFileExt(Application.ExeName, '.pad') );
|
|
ChDir( ExtractFilePath( Application.ExeName ) );
|
|
if FileExists( ZnfName ) then begin
|
|
TxtStream := TMemoryStream.Create;
|
|
try
|
|
ZnfStream := TFileStream.Create( ZnfName,
|
|
fmOpenRead or fmShareExclusive );
|
|
try
|
|
InflateStream( ZnfStream, TxtStream );
|
|
finally
|
|
ZnfStream.Free;
|
|
end;
|
|
TxtStream.Position := 0;
|
|
Memo1.Lines.LoadFromStream( TxtStream );
|
|
finally
|
|
TxtStream.Free;
|
|
end;
|
|
end;
|
|
end;
|
|
|
|
procedure TForm1.FormDestroy(Sender: TObject);
|
|
begin
|
|
TxtStream := TMemoryStream.Create;
|
|
try
|
|
Memo1.Lines.SaveToStream( TxtStream );
|
|
TxtStream.Position := 0;
|
|
if FileExists( ZnfName ) then
|
|
ZnfStream := TFileStream.Create( ZnfName,
|
|
fmOpenWrite or fmShareExclusive )
|
|
else
|
|
ZnfStream := TFileStream.Create( ZnfName,
|
|
fmCreate or fmShareExclusive );
|
|
try
|
|
DeflateStream( TxtStream, ZnfStream );
|
|
finally
|
|
ZnfStream.Free;
|
|
end;
|
|
finally
|
|
TxtStream.Free;
|
|
end;
|
|
end;
|
|
|
|
end.
|