Ooops
November 25, 2020, 05:36:34 AM

Author Topic: [bb] Data Archiver by Andres [ 1+ years ago ]  (Read 537 times)

Offline BlitzBot

  • Jr. Member
  • **
  • Posts: 1
[bb] Data Archiver by Andres [ 1+ years ago ]
« on: June 29, 2017, 12:28:42 AM »
Title : Data Archiver
Author : Andres
Posted : 1+ years ago

Description : Download the packer from <a href="http://www.oat.ee/andres/projects/da.exe" target="_blank">here[/url]

LoadDAFile%() will only restore/unpack files! You have to download the <a href="http://www.oat.ee/andres/projects/da.exe" target="_blank">packer[/url] to archive files.
path$ - path of a file
FNCFile$ - the archive
targetfile$ - file name/path$ as the file will be restored


Code :
Code: BlitzBasic
  1. Function LoadDAFile%(path$, FNCFile$ = "data.da", targetfile$ = "temp.da")
  2.         If Not Mid$(path$, 1, 1) = "" Then path$ = "" + path$
  3.         Local file% = ReadFile(FNCFile$), bank%, output%
  4.         If file%
  5.                 FNCVersion$ = ReadString$(file%)
  6.                 While Not Eof(file%)
  7.                                 tpath$ = ReadString(file%)
  8.                                 isfile% = ReadByte(file%)
  9.                                 size% = ReadInt(file%)
  10.                                 If Lower(tpath$) = Lower(path$) And isfile% = 1
  11.                                         output% = WriteFile(targetfile$)
  12.                                         bank = CreateBank(10 * 1024)
  13.                                         If bank% And output%
  14.                                                 While TN < size%
  15.                                                         If TN + BankSize(bank) > size% Then N = size% - TN Else N = BankSize(bank)
  16.                                                         N = ReadBytes(bank, file%, 0, N)
  17.                                                         For i = 0 To N - 1
  18.                                                                 PokeByte(bank, i, 255 - PeekByte(bank, i))
  19.                                                         Next
  20.                                                         WriteBytes(bank, output%, 0, N)
  21.                                                         TN = TN + N
  22.                                                 Wend
  23.                                                 CloseFile file%
  24.                                                 CloseFile output%
  25.                                                 FreeBank bank
  26.                                                 Return True
  27.                                         EndIf
  28.                                 Else
  29.                                         SeekFile(file%, FilePos(file%) + size%)
  30.                                 EndIf
  31.                 Wend
  32.                 CloseFile file%
  33.         EndIf
  34. End Function
  35.  
  36. Function FreeDAFile(targetfile$ = "temp.da")
  37.         If FileType(targetfile$) = 1 Then DeleteFile targetfile$
  38.         If FileType(targetfile$) = 0 Then Return True
  39. End Function


Comments : none...

 

SimplePortal 2.3.6 © 2008-2014, SimplePortal