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.