Forum > Databases

.cvd ClamAV database compress

(1/2) > >>

Turkeytmfounder:
Can someone do this for me? I want this:  https://www.youtube.com/watch?v=0xKuVFaEUfY&t there 3 videos can someone finish this project for me? I'm from Turkey. Or someone can tell me how to add 3rd parties to project

Turkeytmfounder:
unit unit3;

{$mode objfpc}{$H+}

interface

uses
  Windows, Messages, SysUtils, Classes, Forms, Controls, Graphics, Dialogs,
  StdCtrls, Buttons, Menus, Interfaces, MD5, Variants, ZLib, ZStream, Tar;

type
  { TForm1 }

  TForm1 = class(TForm)
    Button1: TButton;
    Edit1: TEdit;
    Label1: TLabel;
    OpenDialog1: TOpenDialog;
    SelectDirectoryDialog1: TSelectDirectoryDialog;
    SpeedButton1: TSpeedButton;
    procedure Button1Click(Sender: TObject);
    procedure Label2Click(Sender: TObject);
    procedure SpeedButton1Click(Sender: TObject);
  private

  public

  end;

var
  Form1: TForm1;

implementation

{$R *.lfm}

{ TForm1 }

procedure TForm1.Label2Click(Sender: TObject);
var
  CVDFile: TMemoryStream;
  GZFile: TMemoryStream;
  TarFile: TMemoryStream;
  Tar: TTarArchive;
  TDir: TTarDirRec;
  DesFile: String;
  GZStream: TDecompressionStream;
begin
  CVDFile := TMemoryStream.Create;
  CVDFile.LoadFromFile(Edit1.Text);
  CVDFile.Position := 512;

  GZFile := TMemoryStream.Create;
  GZFile.CopyFrom(CVDFile, CVDFile.Size - 512);
  GZFile.Position := 0;

  TarFile := TMemoryStream.Create;
  GZStream := TDecompressionStream.Create(GZFile);
  try
    TarFile.CopyFrom(GZStream, GZStream.Size);
  finally
    GZStream.Free;
  end;
  TarFile.SaveToFile(ExtractFilePath(ParamStr(0)) +
    ExtractFileName(Edit1.Text) + '.tar');

  Tar := TTarArchive.Create(ExtractFilePath(ParamStr(0)) +
    ExtractFileName(Edit1.Text) + '.tar');
  try
    Tar.Reset;
    while Tar.FindNext(TDir) do
    begin
      DesFile := ExtractFilePath(ParamStr(0)) + TDir.Name;
      Tar.ReadFile(DesFile);
    end;
  except
    on Exception do
  end;
  Tar.Free;

  CVDFile.Free;
  GZFile.Free;
  TarFile.Free;
end;

procedure TForm1.SpeedButton1Click(Sender: TObject);
begin
  if OpenDialog1.Execute then
  begin
    Edit1.Text := OpenDialog1.FileName;
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  CVDFile: TMemoryStream;
  GZFile: TMemoryStream;
  TarFile: TMemoryStream;
  Tar: TTarArchive;
begin
  try
    // Your code logic goes here
  except
    on E: Exception do
    begin
      ShowMessage('An exception occurred: ' + E.Message);
    end;
  end;
end;


end. I got this errors:  Hint: (11030) Start of reading config file C:\lazarus\fpc\3.2.2\bin\x86_64-win64\fpc.cfg
Hint: (11031) End of reading config file C:\lazarus\fpc\3.2.2\bin\x86_64-win64\fpc.cfg
Free Pascal Compiler version 3.2.2 [2023/03/04] for x86_64
Copyright (c) 1993-2021 by Florian Klaempfl and others
(1002) Target OS: Win64 for x64
(3104) Compiling project2.lpr
C:\Users\semae\OneDrive\Belgeler\project2.lpr(13,17) Hint: (5023) Unit "ZLibExGZ" not used in project2
C:\Users\semae\OneDrive\Belgeler\project2.lpr(13,27) Hint: (5023) Unit "ZLibEx" not used in project2
(9022) Compiling resource C:\Users\semae\OneDrive\Belgeler\lib\x86_64-win64\project2.obj
(9015) Linking C:\Users\semae\OneDrive\Belgeler\project2.exe
C:\Users\semae\OneDrive\Belgeler\project2.lpr(29,1) Error: Undefined symbol: memcpy
C:\Users\semae\OneDrive\Belgeler\project2.lpr(29,1) Error: Undefined symbol: memset
C:\Users\semae\OneDrive\Belgeler\project2.lpr(29,1) Error: Undefined symbol: zcalloc
C:\Users\semae\OneDrive\Belgeler\project2.lpr(29,1) Error: Undefined symbol: zcfree
C:\Users\semae\OneDrive\Belgeler\project2.lpr(29,1) Error: Undefined symbol: z_errmsg
C:\Users\semae\OneDrive\Belgeler\project2.lpr(29,1) Error: Undefined symbol: __ImageBase
C:\Users\semae\OneDrive\Belgeler\project2.lpr(29,1) Fatal: (10026) There were 6 errors compiling module, stopping
Fatal: (1018) Compilation aborted
Error: C:\lazarus\fpc\3.2.2\bin\x86_64-win64\ppcx64.exe returned an error exitcode

Onur2x:
unit Unit1;

{$mode objfpc}{$H+}

interface

uses
  Classes, SysUtils, Forms, Controls, Graphics, Dialogs, StdCtrls, Buttons,libtar,GZIPUtils;//https://www.gocher.me/GZIP 

type

  { TForm1 }

  TForm1 = class(TForm)
    Button2: TButton;
    Edit1: TEdit;
    Label1: TLabel;
    Memo1: TMemo;
    OpenDialog1: TOpenDialog;
    SpeedButton1: TSpeedButton;
    procedure Button2Click(Sender: TObject);
    procedure SpeedButton1Click(Sender: TObject);
  private

  public

  end;

var
  Form1: TForm1;

implementation

{$R *.lfm}

{ TForm1 }

procedure TForm1.SpeedButton1Click(Sender: TObject);
begin
  if OpenDialog1.Execute then
  begin
    edit1.Text:=OpenDialog1.FileName;
  end;
end;


procedure TForm1.Button2Click(Sender: TObject);
var
  MemoryStream, GZipStream: TMemoryStream;
  str1, str2: string;
  StartTime, EndTime: QWord;
  i: integer;


  Tar: TTarArchive;
  TDir: TTarDirRec;
  DesFile: String;
begin
  StartTime := GetTickCount64();

  // load gzip file to memory stream
  MemoryStream := TMemoryStream.Create;
  MemoryStream.LoadFromFile(Edit1.Text);
  MemoryStream.Position:=512;
  memo1.lines.add('source size:' + IntToStr(MemoryStream.Size));


  // gzip memory stream
  GZipStream := TMemoryStream.Create;
  GZipStream.CopyFrom(MemoryStream,MemoryStream.size-512);


  StartTime := GetTickCount64();
  if unzipStream(GZipStream,MemoryStream) then
  begin
    EndTime := GetTickCount64();
    memo1.lines.add('ungzip ok: ' + IntToStr(EndTime - StartTime) + ' ms');
  end
  else
    memo1.lines.add('ungzip failed');
  memo1.lines.add('ungzip size:' + IntToStr(MemoryStream.Size));

  // save ungzip memory stream to file
  MemoryStream.SaveToFile(Edit1.Text+'.tar');


  Tar := TTarArchive.Create(ExtractFilePath(ParamStr(0)) +  ExtractFileName(Edit1.Text) + '.tar');
  try
    Tar.Reset;
    while Tar.FindNext(TDir) do
    begin
      DesFile := ExtractFilePath(ParamStr(0)) + TDir.Name;
      Tar.ReadFile(DesFile);
    end;
  except
    on Exception do
  end;
  Tar.Free;

  FreeAndNil(MemoryStream);
  FreeAndNil(GZipStream);
end;

end.

Turkeytmfounder:
I run this program but didn't show any screen on this program. Bu programı çalıştırdım ama bir pencere açılmadı maalesef ama Türk görmek güzel.

PascalDragon:
Please always use [code=pascal][/code]-tags to avoid the forum software potentially interpreting your code. Not to mention that it looks nicer then...

Navigation

[0] Message Index

[#] Next page

Go to full version