Hi,
Relembrando a manipular arquivos em C++, fiz um pequeno programa que divide um determinando arquivo em fragmentos com tamanho determinando. O programa também gera um arquivo .BAT para unir os fragmentos.
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
fstream entrada,saida,joinner;
char arquivo[255],nome[32],ext[4];
int size,x,n,total,chunk;
char *buffer;
int main(){
cout<< "Digite o caminho do arquivo a ser dividido:\n";
cin.getline(arquivo,255);
if(strcmp(arquivo,"")==0){cout << "Arquivo invalido!";cin.get();
return 0;}
entrada.open(arquivo,ios::in|ios::binary|ios::ate);
if(!entrada.is_open()){
cout << "Erro ao abrir o arquivo \"" << arquivo << "\"";
cin.get();
return 0;
}
sprintf(ext,"%s",strstr(arquivo,"."));
cout << "Digite um nome para arquivo de saida:\n";
cin.getline(nome,32);
cout<< "Digite o tamanho em KB para cada fragmento do arquivo:\n";
cin >> chunk;
if(chunk<=0){
cout << "Tamanho invalido!";
cin.get();
return 0;
}
chunk = chunk*1024;
cout << "Pressione qualquer tecla para iniciar o processo...\n";
cin.get();
size = (int) entrada.tellg();
x = 0;
n = 0;
cin.get();
while(x<size)
{
if(size-x<chunk)
chunk = size-x;
buffer = new char[chunk];
sprintf(arquivo,"%d.%s",n,nome);
saida.open(arquivo,ios::out|ios::binary);
entrada.seekg(x);
memset(buffer,0,sizeof(buffer));
entrada.read(buffer,chunk);
saida.write(buffer,chunk);
x+=chunk;
n++;
saida.close();
system("cls");
total = x*100/size;
cout << total << "%" << " concluido" << " (" << x/1024 << " KB de " << size/1024 << " KB)";
joinner.open("juntar_arquivos.bat",ios::out);
joinner << "echo off" << endl;
joinner << "copy /b *." << nome << " " << nome << ext << endl;
joinner << "del *." << nome << endl;
joinner.close();
}
entrada.close();
saida.close();
delete[] buffer;
cin.get();
return 0;
}
Bye.
Oh!
Very good!!!
Muito útil neh... Parabéns pelo trabalho Dark_Side.
Ponto!Continue a desempenhar o excelente trabalho que tem vindo a realizar no Security Darkers...

vlw
locator.dll
lol
estou justamente trabalhando num sistema desse
rog