Filecuter

Description

Coupeur de fichier.
Ce programme permet de couper un fichier en plusieurs morceaux puis de le reconstituer ultérieurement.

Source / Exemple :


#include <iostream.h>
#include <fstream.h>
#include <string.h>
#include <conio.h>

int main(){
    char fichier[100], nom[100], split[100], c;
    int taille, pos, choix;
    cout << endl << "   FileCuter v0.1" << endl;
    cout << "   By SamsamTS" << endl;
    cout << "   samsamts@wanadoo.fr" << endl << endl;
    cout << "> 1-Couper un fichier" << endl;
    cout << "> 2-Reconstituer un fichier" << endl;
    cout << "> ";
    cin >> choix;
    clrscr();
    if(choix==1){
        cout << endl << "   FileCuter v0.1" << endl;
        cout << "   By SamsamTS" << endl;
        cout << "   samsamts@wanadoo.fr" << endl << endl;
        cout << "> Entrez le nom du fichier a couper : " << endl << "> ";
        cin >> fichier;
        cout << "> Nom du fichier a creer : " << endl << "> ";
        cin >> nom;
        cout << "> Taille maximale d'un fichier (en ko) : " << endl << "> ";
        cin >> taille;
        taille *= 1024;
        ifstream fe(fichier, ios::in | ios::binary);
        if (!fe.good()) return 0;
        cout << endl << "> En cours...";
        for(char i='0';fe.good() && !fe.eof();i++){
            strcpy(split,nom);
            pos=strlen(split);
            split[pos++]='.';
            split[pos++]='z';
            split[pos++]=i;
            split[pos]=0;
            cout << endl << "> " << split;
            ofstream fs(split, ios::out | ios::binary);
            for(int j=0; j<taille && !fe.eof();j++){
                fe.get(c);
                fs.put(c);
            }
        }
        fe.close();
        return 0;
    }
    if (choix==2){
        cout << endl << "   FileCuter v0.1" << endl;
        cout << "   By SamsamTS" << endl;
        cout << "   samsamts@wanadoo.fr" << endl << endl;
        cout << "> Entrez le nom du fichier couper (sans l'extention) : " << endl << "> ";
        cin >> fichier;
        cout << "> Nom du fichier a creer (avec l'extention) : " << endl << "> ";
        cin >> nom;
        ofstream fs(nom, ios::out | ios::binary);
        cout << endl << "> En cours...";
        for(char i='0';;i++){
            strcpy(split,fichier);
            int pos=strlen(split);
            split[pos++]='.';
            split[pos++]='z';
            split[pos++]=i;
            split[pos]=0;
            ifstream fe(split, ios::in | ios::binary);
            if(!fe.good()){
                fs.close();
                return 0;
            }
            cout << endl << "> " << split ;
            while(!fe.eof()){
                fe.get(c);
                fs.put(c);
            }
            fe.close();
        }
    }
    return 0;
}

Conclusion :


1-On saisie un nom de fichier, ensuite le nom du paquet (qui sera suivit de l'extention .zX, X étant le numéro du paquet) puis la taille maximale que doit faire un paquet.
Le programme coupe ensuite le fichier, sans le modifier, en plusieurs morceaux de la taille maximale choisit.
2-On saisie le nom d'un paquet sans l'extention puis le nom du fichier qui sera créé. Le programme reconstitue alors le fichier.

Note : il se peut que des données soient perdues avec cette manipulation, notamment avec les fichier .zip

Codes Sources

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.