Browse Source

* Sample programs for TZipper and TUnzipper

git-svn-id: trunk@32862 -
michael 9 years ago
parent
commit
4099abb0c1

+ 4 - 0
.gitattributes

@@ -6482,6 +6482,10 @@ packages/paszlib/examples/Makefile.fpc svneol=native#text/plain
 packages/paszlib/examples/example.pas svneol=native#text/plain
 packages/paszlib/examples/example2.pas svneol=native#text/plain
 packages/paszlib/examples/extractodt.pas svneol=native#text/plain
+packages/paszlib/examples/fpunzipper.lpi svneol=native#text/plain
+packages/paszlib/examples/fpunzipper.lpr svneol=native#text/plain
+packages/paszlib/examples/fpzipper.lpi svneol=native#text/plain
+packages/paszlib/examples/fpzipper.lpr svneol=native#text/plain
 packages/paszlib/examples/minigzip.pas svneol=native#text/plain
 packages/paszlib/examples/miniunz.pas svneol=native#text/plain
 packages/paszlib/examples/minizip.pas svneol=native#text/plain

+ 60 - 0
packages/paszlib/examples/fpunzipper.lpi

@@ -0,0 +1,60 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<CONFIG>
+  <ProjectOptions>
+    <Version Value="9"/>
+    <General>
+      <Flags>
+        <MainUnitHasCreateFormStatements Value="False"/>
+        <MainUnitHasTitleStatement Value="False"/>
+        <UseDefaultCompilerOptions Value="True"/>
+      </Flags>
+      <SessionStorage Value="InProjectDir"/>
+      <MainUnit Value="0"/>
+      <Title Value="fpunzipper"/>
+      <UseAppBundle Value="False"/>
+      <ResourceType Value="res"/>
+    </General>
+    <i18n>
+      <EnableI18N LFM="False"/>
+    </i18n>
+    <VersionInfo>
+      <StringTable ProductVersion=""/>
+    </VersionInfo>
+    <BuildModes Count="1">
+      <Item1 Name="Default" Default="True"/>
+    </BuildModes>
+    <PublishOptions>
+      <Version Value="2"/>
+    </PublishOptions>
+    <RunParams>
+      <local>
+        <FormatVersion Value="1"/>
+      </local>
+    </RunParams>
+    <Units Count="1">
+      <Unit0>
+        <Filename Value="fpunzipper.lpr"/>
+        <IsPartOfProject Value="True"/>
+        <UnitName Value="fpzipper"/>
+      </Unit0>
+    </Units>
+  </ProjectOptions>
+  <CompilerOptions>
+    <Version Value="11"/>
+    <Parsing>
+      <SyntaxOptions>
+        <UseAnsiStrings Value="False"/>
+      </SyntaxOptions>
+    </Parsing>
+  </CompilerOptions>
+  <Debugging>
+    <Exceptions Count="2">
+      <Item1>
+        <Name Value="ECodetoolError"/>
+      </Item1>
+      <Item2>
+        <Name Value="EFOpenError"/>
+      </Item2>
+    </Exceptions>
+  </Debugging>
+</CONFIG>

+ 80 - 0
packages/paszlib/examples/fpunzipper.lpr

@@ -0,0 +1,80 @@
+program fpzipper;
+
+{$mode objfpc}{$H+}
+
+uses
+  {$IFDEF UNIX}{$IFDEF UseCThreads}
+  cthreads,
+  {$ENDIF}{$ENDIF}
+  Classes, SysUtils, CustApp, zipper
+  { you can add units after this };
+
+type
+
+  { TFPUnZipApplication }
+
+  TFPUnZipApplication = class(TCustomApplication)
+  Private
+    FUnZipper: TUnZipper;
+    FFiles : TStrings;
+  protected
+    procedure DoRun; override;
+  public
+    constructor Create(TheOwner: TComponent); override;
+    destructor Destroy; override;
+    procedure WriteHelp; virtual;
+  end;
+
+{ TFPUnZipApplication }
+
+procedure TFPUnZipApplication.DoRun;
+
+Var
+  I : Integer;
+  F : TFileStream;
+
+begin
+  If ParamCount<=1 then
+    begin
+    Writeln('Usage ',ParamStr(0),' zipfile file1 [file2 [...]]');
+    Terminate;
+    exit;
+    end;
+  FUnZipper.FileName:=ParamStr(1);
+  FUnZipper.Examine;
+  For I:=2 to ParamCount do
+    FFiles.Add(ParamStr(I));
+  FUnZipper.UnZipFiles(FFiles);
+  Terminate;
+end;
+
+constructor TFPUnZipApplication.Create(TheOwner: TComponent);
+begin
+  inherited Create(TheOwner);
+  StopOnException:=True;
+  FUnZipper:=TUnZipper.Create;
+  FFiles:=TStringList.Create;
+end;
+
+destructor TFPUnZipApplication.Destroy;
+begin
+  FreeAndNil(FFiles);
+  FreeAndNil(FUNZipper);
+  inherited Destroy;
+end;
+
+procedure TFPUnZipApplication.WriteHelp;
+begin
+  { add your help code here }
+  writeln('Usage: ',ExeName,' -h');
+end;
+
+var
+  Application: TFPUnZipApplication;
+begin
+  Application:=TFPUnZipApplication.Create(nil);
+  Application.Title:='UnZip application';
+  Application.Run;
+  Application.Free;
+end.
+

+ 100 - 0
packages/paszlib/examples/fpzipper.lpi

@@ -0,0 +1,100 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<CONFIG>
+  <ProjectOptions>
+    <Version Value="9"/>
+    <General>
+      <Flags>
+        <LRSInOutputDirectory Value="False"/>
+      </Flags>
+      <MainUnit Value="0"/>
+    </General>
+    <VersionInfo>
+      <Language Value=""/>
+      <CharSet Value=""/>
+      <StringTable ProductVersion=""/>
+    </VersionInfo>
+    <BuildModes Count="1">
+      <Item1 Name="default" Default="True"/>
+    </BuildModes>
+    <PublishOptions>
+      <Version Value="2"/>
+      <IgnoreBinaries Value="False"/>
+      <IncludeFileFilter Value="*.(pas|pp|inc|lfm|lpr|lrs|lpi|lpk|sh|xml)"/>
+      <ExcludeFileFilter Value="*.(bak|ppu|ppw|o|so);*~;backup"/>
+    </PublishOptions>
+    <RunParams>
+      <local>
+        <FormatVersion Value="1"/>
+        <LaunchingApplication PathPlusParams="/usr/X11R6/bin/xterm -T 'Lazarus Run Output' -e $(LazarusDir)/tools/runwait.sh $(TargetCmdLine)"/>
+      </local>
+    </RunParams>
+    <Units Count="3">
+      <Unit0>
+        <Filename Value="fpzipper.lpr"/>
+        <IsPartOfProject Value="True"/>
+        <IsVisibleTab Value="True"/>
+        <TopLine Value="48"/>
+        <CursorPos X="4" Y="53"/>
+        <UsageCount Value="21"/>
+        <Loaded Value="True"/>
+        <LoadedDesigner Value="True"/>
+      </Unit0>
+      <Unit1>
+        <Filename Value="../src/zipper.pp"/>
+        <IsPartOfProject Value="True"/>
+        <EditorIndex Value="-1"/>
+        <TopLine Value="2271"/>
+        <CursorPos X="32" Y="2286"/>
+        <UsageCount Value="21"/>
+      </Unit1>
+      <Unit2>
+        <Filename Value="zipper.pp"/>
+        <EditorIndex Value="1"/>
+        <TopLine Value="2380"/>
+        <CursorPos X="7" Y="2389"/>
+        <UsageCount Value="10"/>
+        <Loaded Value="True"/>
+      </Unit2>
+    </Units>
+    <JumpHistory Count="5" HistoryIndex="4">
+      <Position1>
+        <Filename Value="fpzipper.lpr"/>
+        <Caret Line="10" Column="6" TopLine="4"/>
+      </Position1>
+      <Position2>
+        <Filename Value="fpzipper.lpr"/>
+        <Caret Line="10" Column="6" TopLine="4"/>
+      </Position2>
+      <Position3>
+        <Filename Value="zipper.pp"/>
+        <Caret TopLine="43"/>
+      </Position3>
+      <Position4>
+        <Filename Value="zipper.pp"/>
+        <Caret Line="2395" Column="28" TopLine="2379"/>
+      </Position4>
+      <Position5>
+        <Filename Value="zipper.pp"/>
+        <Caret Line="571" TopLine="555"/>
+      </Position5>
+    </JumpHistory>
+  </ProjectOptions>
+  <CompilerOptions>
+    <Version Value="11"/>
+    <Parsing>
+      <SyntaxOptions>
+        <UseAnsiStrings Value="False"/>
+      </SyntaxOptions>
+    </Parsing>
+  </CompilerOptions>
+  <Debugging>
+    <Exceptions Count="2">
+      <Item1>
+        <Name Value="ECodetoolError"/>
+      </Item1>
+      <Item2>
+        <Name Value="EFOpenError"/>
+      </Item2>
+    </Exceptions>
+  </Debugging>
+</CONFIG>

+ 80 - 0
packages/paszlib/examples/fpzipper.lpr

@@ -0,0 +1,80 @@
+program fpzipper;
+
+{$mode objfpc}{$H+}
+
+uses
+  {$IFDEF UNIX}{$IFDEF UseCThreads}
+  cthreads,
+  {$ENDIF}{$ENDIF}
+  Classes, SysUtils, CustApp, zipper
+  { you can add units after this };
+
+type
+
+  { TFPZipApplication }
+
+  TFPZipApplication = class(TCustomApplication)
+  Private
+    FZipper: TZipper;
+  protected
+    procedure DoRun; override;
+  public
+    constructor Create(TheOwner: TComponent); override;
+    destructor Destroy; override;
+    procedure WriteHelp; virtual;
+  end;
+
+{ TFPZipApplication }
+
+procedure TFPZipApplication.DoRun;
+
+Var
+  I : Integer;
+  F : TFileStream;
+begin
+  If ParamCount<=1 then
+    begin
+    Writeln('Usage ',ParamStr(0),' zipfile file1 [file2 [...]]');
+    Terminate;
+    exit;
+    end;
+  FZipper.FileName:=ParamStr(1);
+  For I:=2 to ParamCount do
+    begin
+    F:=TFileStream.Create(ParamStr(i),fmOpenRead);
+    FZipper.Entries.AddFileEntry(F,ParamStr(i));
+    end;
+  FZipper.ZipAllFiles;
+  For I:=0 to FZipper.Entries.Count-1 do
+    FZipper.Entries[I].Stream.Free;
+  Terminate;
+end;
+
+constructor TFPZipApplication.Create(TheOwner: TComponent);
+begin
+  inherited Create(TheOwner);
+  StopOnException:=True;
+  FZipper:=TZipper.Create;
+end;
+
+destructor TFPZipApplication.Destroy;
+begin
+  FreeAndNil(FZipper);
+  inherited Destroy;
+end;
+
+procedure TFPZipApplication.WriteHelp;
+begin
+  { add your help code here }
+  writeln('Usage: ',ExeName,' -h');
+end;
+
+var
+  Application: TFPZipApplication;
+begin
+  Application:=TFPZipApplication.Create(nil);
+  Application.Title:='Zip application';
+  Application.Run;
+  Application.Free;
+end.
+