Re: std.zip for Binary example

2016-01-23 Thread locco via Digitalmars-d-learn

On Sunday, 17 January 2016 at 10:43:55 UTC, Sean Campbell wrote:

On Sunday, 17 January 2016 at 10:34:19 UTC, locco wrote:

Hi :)
I found this example:
==
import std.file: write;
import std.string: representation;
void main()
{
   char[] data = "Test data.\n".dup;
   // Create an ArchiveMember for the test file.
   ArchiveMember am = new ArchiveMember();
   am.name = "test.txt";
   am.expandedData(data.representation);
   // Create an archive and add the member.
   ZipArchive zip = new ZipArchive();
   zip.addMember(am);
   // Build the archive
   void[] compressed_data = zip.build();
   // Write to a file
   write("test.zip", compressed_data);
}
==
But i cound't find example code for binary file.
How can i make ArciveMember for binary file?



std.zip dosen't discriminate against text and binary files 
files.

p.s. remember to import std.zip



import std.stdio;
import std.file:write,getSize;
import std.string: representation;
import std.zip: ArchiveMember, ZipArchive;

void main() {
auto stream = File("example.jpg", "r+");

auto inbytes = new ubyte[ cast(uint)getSize("example.jpg") ];
stream.rawRead(inbytes);

auto zip = new ZipArchive();
ArchiveMember ae = new ArchiveMember();
ae.name = "example_.jpg";
ae.expandedData( inbytes );

zip.addMember(ae);
void[] compressed_data = zip.build();
write("test.zip", compressed_data);
}


I made this, work fine. But i guess it wasn't nice solution. 
Right?


std.zip for Binary example

2016-01-17 Thread locco via Digitalmars-d-learn

Hi :)
I found this example:
==
import std.file: write;
import std.string: representation;
void main()
{
   char[] data = "Test data.\n".dup;
   // Create an ArchiveMember for the test file.
   ArchiveMember am = new ArchiveMember();
   am.name = "test.txt";
   am.expandedData(data.representation);
   // Create an archive and add the member.
   ZipArchive zip = new ZipArchive();
   zip.addMember(am);
   // Build the archive
   void[] compressed_data = zip.build();
   // Write to a file
   write("test.zip", compressed_data);
}
==
But i cound't find example code for binary file.
How can i make ArciveMember for binary file?


Re: std.zip for Binary example

2016-01-17 Thread Sean Campbell via Digitalmars-d-learn

On Sunday, 17 January 2016 at 10:34:19 UTC, locco wrote:

Hi :)
I found this example:
==
import std.file: write;
import std.string: representation;
void main()
{
   char[] data = "Test data.\n".dup;
   // Create an ArchiveMember for the test file.
   ArchiveMember am = new ArchiveMember();
   am.name = "test.txt";
   am.expandedData(data.representation);
   // Create an archive and add the member.
   ZipArchive zip = new ZipArchive();
   zip.addMember(am);
   // Build the archive
   void[] compressed_data = zip.build();
   // Write to a file
   write("test.zip", compressed_data);
}
==
But i cound't find example code for binary file.
How can i make ArciveMember for binary file?



std.zip dosen't discriminate against text and binary files files.
p.s. remember to import std.zip