(* ***** 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.