Accueil > > > DÉCOUPAGE DE FICHIERS
DÉCOUPAGE DE FICHIERS
Information sur la source
Description
Voici le code les gars! J'espère que vous n'allez plus rouspéter. Par défaut, le découpage se fait sur le c: , pour le faire sur les autres lecteurs, il faut utiliser l'option réseau.
Source
- #include<fcntl.h>
- #include<stdio.h>
- #include<conio.h>
- #include<string.h>
- #include<stdlib.h>
- #include<dir.h>
- #include<dos.h>
- #include<io.h>
-
-
- #define BUFSIZE 1024
- #define effln(y) eff(1,y)
-
- char dirsrc[201]="",dirdest[201]="",ordisrc[81]="",ordidest[81]="",inputfile[81];
- char O_COPY[]=" Wincut 2.0 Copyright Olivier MBIELEU - Avril 2002"; // Variable pour le copyright. Si elle est modifiée, wincut ne pourra plus regenérer les fichiers de la version précédente
- char Tempmdf[201],Tempsrc[201],Tempdir[201]; // Variables temporaires pour
- int nbfile=0,Taille=1000,filesupp=0;
-
- void affmess(char *s1,int col,int bgc){ //Cette Fonction affiche un message (s1) avec la couleur col et le bgcolor bgc
- char tmp[81]; char* ncopy(char*,char*,int);
- textcolor(col);textbackground(bgc);gotoxy(2,18);
- if(strlen(s1)>78){
- ncopy(s1,tmp,78);
- cprintf("%s",tmp);
- gotoxy(2,19);cprintf("%s",s1+79);
- }
- else cprintf("%s",s1);
- textcolor(15);gotoxy(1,1);
- };
-
- void effmess(void){ //Cette Fonction efface le message affiché par affmess
- //void eff(int,int);
- effln(18);effln(19);
- };
-
- void afftaille(void){ // Cette fonction affiche la taille des petits fichiers à créer
- char s[91]="Wincut 2.0 -- La Taille Des Fichiers Découpés Est De ",s1[10];
- itoa(Taille,s1,10);strcat(s,s1);strcat(s," Ko");
- int n=strlen(s);int x=(79-n)/2+1;
- gotoxy(1,25);textbackground(1);textcolor(14);clreol();
- gotoxy(x,25);cprintf("%s",s);
- textbackground(0);textcolor(15);
- };
-
- //Function Error
-
- void error(char *s1,char* s2){ // Cette Fonction affiche les messages d'erreurs
- void eff(int,int);
- textbackground(4);textcolor(14);
- gotoxy(1,21);clreol();
- cprintf(" Erreur : %s",s1);
- if(s2[0])cprintf(" : %s",s2);
- getch();textcolor(15);textbackground(0);
- effln(21);effln(22);effln(23);
- };
-
- //Op?rations Sur Les Chaines De Caract?res
- char *ncopy(char *src,char *dest, int n){ // Cette Fonction copie n caractéres de src à dest = strncpy
- dest[0]='\0';
- if(n<=0)return dest;
- int i=-1;
- while(i++,i<n && src[i]) dest[i]=src[i];
- dest[i]='\0';
- return dest;
- };
-
- char *addext(char *s,char *ext){ // Cette fonction ajoute une extension (fich.cpp)
- strcat(s,".");strcat(s,ext);
- return s;
- };
-
- char *retext(char *src,char *file,char *ext){ // Cette Fonction retire l'extension (fich.cpp)
- int i=0;
- while(src[i] && src[i]!='.') i++;
- if(src[i]=='\0'){ext[0]='\0';strcpy(file,src);}
- else{ncopy(src,file,i);strcpy(ext,&src[i+1]);}
- return file;
- };
-
- char * cutspace(char* s){ // Cette fonction retire les espaces présent dans une chaine
- int i=0,j=-1;char tmp[200];
- do{
- j++;
- if(s[j]!=' ')tmp[i++]=s[j];
- }while(s[j]);
- strcpy(s,tmp);
- return s;
- };
-
- char* read(char *rep,int x1,int y,int lg){ // Cette fonction lit une chaine de caractères à l'écran
- int x=x1,i=0;
- char a;rep[0]='\0';
- gotoxy(x1-3,y);cprintf(":->");
- while(a=getch(),a!=13 && a!=27){
- if(a!=8){if(x<=x1+lg){i++;gotoxy(x,y);cprintf("%c",a);
- rep[i-1]=a;x+=1;}else printf("\a");
- }
- else if(x>x1){x-=1;rep[--i]='\0';gotoxy(x,y);cprintf(" ");gotoxy(x,y);
- } else printf("\a");
- };rep[i]='\0';
- return cutspace(rep);
- };
-
-
- //Menus
-
- void actbgcolor(void){textcolor(15);textbackground(4);};
- void noactbgcolor(void){textcolor(15);textbackground(1);};
- void eff(int x,int y){textcolor(15);textbackground(0);gotoxy(x,y);clreol();};
- char* makesrcfile(void); int creatfiles(int); int restorefile(void);
-
- void genetverif(void){ // Cette fonction génére les petits fichiers
- char tmp[105],tmp1[72];
- int ok=0;
- affmess(" Entrer Le Nom Du R?pertoire o? se Trouve le Fichier Source(ex Olivier)",14,0);
- read(dirsrc,4,19,70);
- effmess();
- affmess(" Entrer Le Nom Du Fichier ? D?couper",14,0);
- read(inputfile,4,19,30);
- effmess();
- strcpy(tmp,"c:/");
- strcat(tmp,dirsrc);if(dirsrc[0]) strcat(tmp,"/");strcat(tmp,inputfile);
- if(access(tmp,00)){
- error("Le Fichier Sp?cifi? N'existe Pas",tmp);
- ok=1;
- };
- if(!ok){
- affmess(" Entrer Le Nom du R?portoire o? Copier Les Petits Fichiers (ex Carole)",14,0);
- read(dirdest,4,19,75);
- effmess();
- strcpy(tmp,"c:/");strcat(tmp,dirdest);strcpy(tmp1,tmp);
- strcat(tmp,"/");strcat(tmp,"test.$$$");FILE *fp=fopen(tmp,"w");
- if(!fp){affmess(" Ce r?pertoire N'existe Pas. Le Cr?er (o/n) ? ",14,0);int c=getch();
- effmess();
- if(c=='o' || c=='O'){
- if(mkdir(tmp1)!=0){error("Impossible De Cr?er Le R?pertoire",tmp1);ok=1;}
- }else ok=1;
- }
- else {fclose(fp);remove(tmp);};
- if(!ok){
- int srcfile;
- makesrcfile();_dos_open(Tempsrc,O_RDONLY,&srcfile);
- creatfiles(srcfile);
- _dos_close(srcfile);
- };
- };
- if(ok) error("La G?n?ration des Fichiers Est Impossible !","");
- else {affmess(" Op?ration Effectu?e Avec Succ?s Appuyer Sur Une Touche ...",14,1);getch();effmess();};
- };
-
- void menugen(void){
- char *Tab[]={" Machine Locale "," Locale->R?seau "," R?seau->Locale "," R?seau->R?seau "};
- int i=0,ch=12,xd=5,yd=3,y;
- char mess[161];
- noactbgcolor();
- gotoxy(xd,yd);cprintf("%s",Tab[0]);
- gotoxy(xd,yd+2);cprintf("%s",Tab[1]);
- gotoxy(xd,yd+4);cprintf("%s",Tab[2]);
- gotoxy(xd,yd+6);cprintf("%s",Tab[3]);
- i=0;y=yd;
- while(ch!=27){
- actbgcolor();gotoxy(xd,y);cprintf("%s",Tab[i]);gotoxy(1,1);
- ch=getch();
- noactbgcolor();gotoxy(xd,y);cprintf("%s",Tab[i]);
- switch(ch){
- case 72:if(i==0){i=3;y=yd+6;}else {i--;y-=2;};break;
- case 80:if(i==3){i=0;y=yd;} else {i++;y+=2;};break;
- case 13:effln(yd);effln(yd+2);effln(yd+4);effln(yd+6);
- switch(i){
- case 0:ordisrc[0]='\0';ordidest[0]='\0';genetverif();
- break;
- case 1:{ordisrc[0]='\0';
- char tmp[105],tmp1[72];
- int ok=0;
- affmess(" Entrer Le Nom Du R?pertoire o? se Trouve le Fichier Source(ex Olivier)",14,0);
- read(dirsrc,4,19,70);
- effmess();
- affmess(" Entrer Le Nom Du Fichier ? D?couper",14,0);
- read(inputfile,4,19,30);
- effmess();
- strcpy(tmp,"c:/");
- strcat(tmp,dirsrc);if(dirsrc[0])strcat(tmp,"/");strcat(tmp,inputfile);
- if(access(tmp,00)){
- error("Le Fichier Sp?cifi? N'existe Pas",tmp);
- ok=1;
- };
- if(!ok){
- affmess(" Entrer Le Nom R?seau De La Machine destination",14,0);
- read(ordidest,4,19,19);
- effmess();
- affmess(" Entrer Le Nom R?seau Du Disque Destination",14,0);
- read(dirdest,4,19,21);
- effmess();
- affmess(" Entrer Le Nom du R?portoire o? Copier Les Petits Fichiers (ex Carole)",14,0);
- read(tmp,4,19,75);strcat(dirdest,"/");strcat(dirdest,tmp);
- effmess();
- strcpy(tmp,"//");strcat(tmp,ordidest);strcat(tmp,"/");
- strcat(tmp,dirdest);strcpy(tmp1,tmp);
- strcat(tmp,"/");strcat(tmp,"test.$$$");FILE *fp=fopen(tmp,"w");
- if(!fp){affmess(" Ce r?pertoire N'existe Pas. Le Cr?er (o/n) ? ",14,0);int c=getch();
- effmess();
- if(c=='o' || c=='O'){
- if(mkdir(tmp1)!=0){error("Impossible De Cr?er Le R?pertoire",tmp1);ok=1;}
- }else ok=1;
- }
- else {fclose(fp);remove(tmp);};
- if(!ok){
- int srcfile;char* makesrcfile(void); int creatfiles(int);
- makesrcfile();_dos_open(Tempsrc,O_RDONLY,&srcfile);
- creatfiles(srcfile);
- _dos_close(srcfile);
- };
- };
- if(ok) error("La G?n?ration des Fichiers Est Impossible !","");
- else {affmess(" Op?ration Effectu?e Avec Succ?s Appuyer Sur Une Touche ...",14,1);getch();effmess();};
- break;
- };
- case 2:{ordidest[0]='\0';
- char tmp[105],tmp1[72];
- int ok=0;
- affmess(" Entrer Le Nom R?seau De La Machine Source",14,0);
- read(ordisrc,4,19,19);
- effmess();
- affmess(" Entrer Le Nom R?seau Du Disque Source",14,0);
- read(dirsrc,4,19,21);
- effmess();
- affmess(" Entrer Le Nom du R?portoire o? Se Trouve Le Fichier Source (ex Carole)",14,0);
- read(tmp,4,19,75);strcat(dirsrc,"/");strcat(dirsrc,tmp);
- effmess();
- affmess(" Entrer Le Nom Du Fichier ? D?couper",14,0);
- read(inputfile,4,19,30);
- effmess();
- strcpy(tmp,"//");strcat(tmp,ordisrc);strcat(tmp,"/");
- strcat(tmp,dirsrc);strcat(tmp,"/");strcat(tmp,inputfile);
- if(access(tmp,00)){
- error("Le Fichier Sp?cifi? N'existe Pas",tmp);
- ok=1;
- };
- if(!ok){
- affmess(" Entrer Le Nom du R?portoire o? Copier Les Petits Fichiers (ex Carole)",14,0);
- read(dirdest,4,19,75);
- effmess();
- strcpy(tmp,"c:/");strcat(tmp,dirdest);strcpy(tmp1,tmp);
- strcat(tmp,"/");strcat(tmp,"test.$$$");FILE *fp=fopen(tmp,"w");
- if(!fp){affmess(" Ce r?pertoire N'existe Pas. Le Cr?er (o/n) ? ",14,0);int c=getch();
- effmess();
- if(c=='o' || c=='O'){
- if(mkdir(tmp1)!=0){error("Impossible De Cr?er Le R?pertoire",tmp1);ok=1;}
- }else ok=1;
- }
- else {fclose(fp);remove(tmp);};
- if(!ok){
- int srcfile;
- makesrcfile();_dos_open(Tempsrc,O_RDONLY,&srcfile);
- creatfiles(srcfile);
- _dos_close(srcfile);
- };
- };
- if(ok) error("La G?n?ration des Fichiers Est Impossible !","");
- else {affmess(" Op?ration Effectu?e Avec Succ?s Appuyer Sur Une Touche ...",14,1);getch();effmess();};
- break;};
- case 3:{ordidest[0]='\0';
- char tmp[105],tmp1[72];
- int ok=0;
- affmess(" Entrer Le Nom R?seau De La Machine Source",14,0);
- read(ordisrc,4,19,19);
- effmess();
- affmess(" Entrer Le Nom R?seau Du Disque Source",14,0);
- read(dirsrc,4,19,21);
- effmess();
- affmess(" Entrer Le Nom du R?portoire o? Se Trouve Le Fichier Source (ex Carole)",14,0);
- read(tmp,4,19,75);strcat(dirsrc,"/");strcat(dirsrc,tmp);
- effmess();
- affmess(" Entrer Le Nom Du Fichier ? D?couper",14,0);
- read(inputfile,4,19,30);
- effmess();
- strcpy(tmp,"//");strcat(tmp,ordisrc);strcat(tmp,"/");
- strcat(tmp,dirsrc);strcat(tmp,"/");strcat(tmp,inputfile);
- if(access(tmp,00)){
- error("Le Fichier Sp?cifi? N'existe Pas",tmp);
- ok=1;
- };
- if(!ok){
- affmess(" Entrer Le Nom R?seau De La Machine destination",14,0);
- read(ordidest,4,19,19);
- effmess();
- affmess(" Entrer Le Nom R?seau Du Disque Destination",14,0);
- read(dirdest,4,19,21);
- effmess();
- affmess(" Entrer Le Nom du R?portoire o? Copier Les Petits Fichiers (ex Carole)",14,0);
- read(tmp,4,19,75);strcat(dirdest,"/");strcat(dirdest,tmp);
- effmess();
- strcpy(tmp,"//");strcat(tmp,ordidest);strcat(tmp,"/");
- strcat(tmp,dirdest);strcpy(tmp1,tmp);
- strcat(tmp,"/");strcat(tmp,"test.$$$");FILE *fp=fopen(tmp,"w");
- if(!fp){affmess(" Ce r?pertoire N'existe Pas. Le Cr?er (o/n) ? ",14,0);int c=getch();
- effmess();
- if(c=='o' || c=='O'){
- if(mkdir(tmp1)!=0){error("Impossible De Cr?er Le R?pertoire",tmp1);ok=1;}
- }else ok=1;
- }
- else {fclose(fp);remove(tmp);};
- if(!ok){
- int srcfile;
- makesrcfile();_dos_open(Tempsrc,O_RDONLY,&srcfile);
- creatfiles(srcfile);
- _dos_close(srcfile);
- };
- };
- if(ok) error("La G?n?ration des Fichiers Est Impossible !","");
- else {affmess(" Op?ration Effectu?e Avec Succ?s Appuyer Sur Une Touche ...",14,1);getch();effmess();};
- break;}
- };
- return;
- };
- };
- effln(yd);effln(yd+2);effln(yd+4);effln(yd+6);
- };
-
- void menurest(void){
- char *Tab[]={" Machine Locale "," Locale->R?seau "," R?seau->Locale "," R?seau->R?seau "};
- int i=0,ch=12,xd=20,yd=3,y;
- char mess[161];
- noactbgcolor();
- gotoxy(xd,yd);cprintf("%s",Tab[0]);
- gotoxy(xd,yd+2);cprintf("%s",Tab[1]);
- gotoxy(xd,yd+4);cprintf("%s",Tab[2]);
- gotoxy(xd,yd+6);cprintf("%s",Tab[3]);
- i=0;y=yd;
- while(ch!=27){
- actbgcolor();gotoxy(xd,y);cprintf("%s",Tab[i]);gotoxy(1,1);
- ch=getch();
- noactbgcolor();gotoxy(xd,y);cprintf("%s",Tab[i]);
- switch(ch){
- case 72:if(i==0){i=3;y=yd+6;}else {i--;y-=2;};break;
- case 80:if(i==3){i=0;y=yd;} else {i++;y+=2;};break;
- case 13:effln(yd);effln(yd+2);effln(yd+4);effln(yd+6);
- switch(i){
- case 0:{ordisrc[0]='\0';ordidest[0]='\0';char tmp[81],tmp1[101];int ok=0;
- affmess(" Entrer Le Nom Du R?pertoire O? Se Trouve Le Fichier WCT.LST",14,0);
- read(dirsrc,4,19,51);
- effmess();
- strcpy(tmp,"c:/");
- if(dirsrc[0]){strcat(tmp,dirsrc);strcat(tmp,"/wct.lst");}
- else strcat(tmp,"wct.lst");
- if(access(tmp,00)){
- error("Le Fichier Ou R?pertoire Sp?cifi? N'existe Pas",tmp);
- ok=1;
- };
- if(!ok){
- affmess(" Entrer Le Nom Du R?pertoire O? Reconstituer Le Fichier",14,0);
- read(dirdest,4,19,51);
- effmess();
- strcpy(tmp,"c:/");strcat(tmp,dirdest);strcpy(tmp1,tmp);
- strcat(tmp,"/");strcat(tmp,"test.$$$");FILE *fp=fopen(tmp,"w");
- if(!fp){affmess(" Ce r?pertoire N'existe Pas. Le Cr?er (o/n) ? ",14,0);int c=getch();
- effmess();
- if(c=='o' || c=='O'){
- if(mkdir(tmp1)!=0){error("Impossible De Cr?er Le R?pertoire",tmp1);ok=1;}
- }else ok=1;
- }
- else {fclose(fp);remove(tmp);};
- };
- if(!ok){makesrcfile();
- restorefile();
- }
- if(ok) error("La Reg?n?ration des Fichiers Est Impossible !","");
- else {affmess(" Op?ration Effectu?e Avec Succ?s Appuyer Sur Une Touche ...",14,1);getch();effmess();};
- break;
- };
- case 1:{ordisrc[0]='\0';ordidest[0]='\0';char tmp[81],tmp1[101];int ok=0;
- affmess(" Entrer Le Nom Du R?pertoire O? Se Trouve Le Fichier WCT.LST",14,0);
- read(dirsrc,4,19,51);
- effmess();
- strcpy(tmp,"c:/");
- if(dirsrc[0]){strcat(tmp,dirsrc);strcat(tmp,"/wct.lst");}
- else strcat(tmp,"wct.lst");
- if(access(tmp,00)){
- error("Le Fichier Ou R?pertoire Sp?cifi? N'existe Pas",tmp);
- ok=1;
- };
- if(!ok){
- affmess(" Entrer Le Nom R?seau De La Machine destination",14,0);
- read(ordidest,4,19,19);
- effmess();
- affmess(" Entrer Le Nom R?seau Du Disque Destination",14,0);
- read(dirdest,4,19,21);
- effmess();
- affmess(" Entrer Le Nom Du R?pertoire O? Reconstituer Le Fichier",14,0);
- read(tmp,4,19,75);strcat(dirdest,"/");strcat(dirdest,tmp);
- effmess();
- strcpy(tmp,"//");strcat(tmp,ordidest);strcat(tmp,"/");
- strcat(tmp,dirdest);strcpy(tmp1,tmp);
- strcat(tmp,"/");strcat(tmp,"test.$$$");FILE *fp=fopen(tmp,"w");
- if(!fp){affmess(" Ce r?pertoire N'existe Pas. Le Cr?er (o/n) ? ",14,0);int c=getch();
- effmess();
- if(c=='o' || c=='O'){
- if(mkdir(tmp1)!=0){error("Impossible De Cr?er Le R?pertoire",tmp1);ok=1;}
- }else ok=1;
- }
- else {fclose(fp);remove(tmp);};
- };
- if(!ok){makesrcfile();
- restorefile();
- }
- if(ok) error("La Reg?n?ration des Fichiers Est Impossible !","");
- else {affmess(" Op?ration Effectu?e Avec Succ?s Appuyer Sur Une Touche ...",14,1);getch();effmess();};
- break;};
- case 2:{ordisrc[0]='\0';ordidest[0]='\0';char tmp[81],tmp1[101];int ok=0;
- affmess(" Entrer Le Nom R?seau De La Machine Source (WCT.LST)",14,0);
- read(ordisrc,4,19,19);
- effmess();
- affmess(" Entrer Le Nom R?seau Du Disque Source (WCT.LST)",14,0);
- read(dirsrc,4,19,21);
- effmess();
- affmess(" Entrer Le Nom Du R?pertoire O? Se Trouve Le Fichier WCT.LST",14,0);
- read(tmp,4,19,75);strcat(dirsrc,"/");strcat(dirsrc,tmp);
- effmess();
- strcpy(tmp,"//");strcat(tmp,ordisrc);strcat(tmp,"/");
- strcat(tmp,dirsrc);strcat(tmp,"/wct.lst");
- affmess("Patienter ...",14,0);
- if(access(tmp,00)){
- error("Le Fichier Ou R?pertoire Sp?cifi? N'existe Pas",tmp);
- ok=1;
- };effmess();
- if(!ok){
- affmess(" Entrer Le Nom Du R?pertoire O? Reconstituer Le Fichier",14,0);
- read(dirdest,4,19,51);
- effmess();
- strcpy(tmp,"c:/");strcat(tmp,dirdest);strcpy(tmp1,tmp);
- strcat(tmp,"/");strcat(tmp,"test.$$$");affmess("Patienter ...",14,0);
- FILE *fp=fopen(tmp,"w");effmess();
- if(!fp){affmess(" Ce r?pertoire N'existe Pas. Le Cr?er (o/n) ? ",14,0);int c=getch();
- effmess();
- if(c=='o' || c=='O'){
- if(mkdir(tmp1)!=0){error("Impossible De Cr?er Le R?pertoire",tmp1);ok=1;}
- }else ok=1;
- }
- else {fclose(fp);remove(tmp);};
- };
- if(!ok){makesrcfile();
- restorefile();
- }
- if(ok) error("La Reg?n?ration des Fichiers Est Impossible !","");
- else {affmess(" Op?ration Effectu?e Avec Succ?s Appuyer Sur Une Touche ...",14,1);getch();effmess();};
- break;};
- case 3:{ordisrc[0]='\0';ordidest[0]='\0';char tmp[81],tmp1[101];int ok=0;
- affmess(" Entrer Le Nom R?seau De La Machine Source (WCT.LST)",14,0);
- read(ordisrc,4,19,19);
- effmess();
- affmess(" Entrer Le Nom R?seau Du Disque Source (WCT.LST)",14,0);
- read(dirsrc,4,19,21);
- effmess();
- affmess(" Entrer Le Nom Du R?pertoire O? Se Trouve Le Fichier WCT.LST",14,0);
- read(tmp,4,19,75);strcat(dirsrc,"/");strcat(dirsrc,tmp);
- effmess();
- strcpy(tmp,"//");strcat(tmp,ordisrc);strcat(tmp,"/");
- strcat(tmp,dirsrc);strcat(tmp,"/wct.lst");
- affmess("Patienter ...",14,0);
- if(access(tmp,00)){
- error("Le Fichier Ou R?pertoire Sp?cifi? N'existe Pas",tmp);
- ok=1;
- };effmess();
- if(!ok){
- affmess(" Entrer Le Nom R?seau De La Machine destination",14,0);
- read(ordidest,4,19,19);
- effmess();
- affmess(" Entrer Le Nom R?seau Du Disque Destination",14,0);
- read(dirdest,4,19,21);
- effmess();
- affmess(" Entrer Le Nom Du R?pertoire O? Reconstituer Le Fichier",14,0);
- read(tmp,4,19,75);strcat(dirdest,"/");strcat(dirdest,tmp);
- effmess();
- strcpy(tmp,"//");strcat(tmp,ordidest);strcat(tmp,"/");
- strcat(tmp,dirdest);strcpy(tmp1,tmp);
- strcat(tmp,"/");strcat(tmp,"test.$$$");FILE *fp=fopen(tmp,"w");
- if(!fp){affmess(" Ce r?pertoire N'existe Pas. Le Cr?er (o/n) ? ",14,0);int c=getch();
- effmess();
- if(c=='o' || c=='O'){
- if(mkdir(tmp1)!=0){error("Impossible De Cr?er Le R?pertoire",tmp1);ok=1;}
- }else ok=1;
- }
- else {fclose(fp);remove(tmp);};
- };
- if(!ok){makesrcfile();
- restorefile();
- }
- if(ok) error("La Reg?n?ration des Fichiers Est Impossible !","");
- else {affmess(" Op?ration Effectu?e Avec Succ?s Appuyer Sur Une Touche ...",14,1);getch();effmess();};
- break;};
- };
- return;
- };
- };
- effln(yd);effln(yd+2);effln(yd+4);effln(yd+6);
- };
-
- void menuoption(void){
- static char *Tabopt[]={" Taille "," Supprimer "};
- int i=0,ch=12,xd=35,yd=3,y;
- char mess[161];
- noactbgcolor();
- gotoxy(xd,yd);cprintf("%s",Tabopt[0]);
- gotoxy(xd,yd+2);cprintf("%s",Tabopt[1]);
- i=0;y=yd;
- while(ch!=27){
- actbgcolor();gotoxy(xd,y);cprintf("%s",Tabopt[i]);gotoxy(1,1);
- ch=getch();
- noactbgcolor();gotoxy(xd,y);cprintf("%s",Tabopt[i]);
- switch(ch){
- case 72:if(i==0){i=1;y=yd+2;} else {i--;y-=2;};break;
- case 80:if(i==1){i=0;y=yd;} else {i++;y+=2;};break;
- case 13:effln(yd);effln(yd+2);//effln(yd+4);effln(yd+6);
- switch(i){
- case 0:{char s[11];int tel;
- affmess(" Entrer La Taille Des Fichiers D?coup?s (En Ko)",14,0);
- read(s,4,19,5);
- effmess();tel=atoi(s);
- if(tel>0) Taille=tel;
- afftaille();
- break;
- };
- case 1:{ if(filesupp){
- filesupp=0;
- Tabopt[1][strlen(Tabopt[1])-2]=' ';
- }
- else {
- filesupp=1;
- Tabopt[1][strlen(Tabopt[1])-2]='';
- };
- break;
- };
- };
- return;
- };
- };
- effln(yd);effln(yd+2);//effln(yd+4);effln(yd+6);
- };
-
- void affaide(void){
- int y=3;
- textbackground(0);textcolor(14);
- gotoxy(1,y++);cprintf("- Wincut est un programme qui d?coupe de gros fichiers en de petits fichiers.");
- gotoxy(1,y++);cprintf("- Son but principal est de permettre de transporter de gros fichiers de machine en machine.");y++;
- gotoxy(1,y++);cprintf("- Le menu G?n?rer permet de d?couper de gros fichiers. Il pr?sente les options");
- gotoxy(1,y++);cprintf(" Machine Locale qui permet de g?n?rer les petits fichiers ? partir de la machi");
- gotoxy(1,y++);cprintf(" ne locale, Locale->R?seau envoie les petits fichiers dans une machine distant");
- gotoxy(1,y++);cprintf(" e, R?seau->Locale prend un gros fichier en r?seau et le d?coupe dans la machi");
- gotoxy(1,y++);cprintf(" ne locale, R?seau->R?seau qui prend un fichier en r?seau et envoie le r?sulta");
- gotoxy(1,y++);cprintf(" t dans une autre machine distante.");
- gotoxy(1,y++);cprintf("- Le menu Restaurer permet de reconstituer le gros fichier ? partir des petits.");
- gotoxy(1,y++);cprintf(" Les options de ce menu ont la m?me signification que les options du menu pr?c");
- gotoxy(1,y++);cprintf(" ?dent ? la seule diff?rence qu'ils s'appliquent aux petits fichiers.");
- gotoxy(1,y++);cprintf("- Le menu Option permet de modifier la taille des petits fichiers ainsi que de ");
- gotoxy(1,y++);cprintf(" supprimer ou non les petits fichiers lors de la Restauration.");
- gotoxy(1,y++);cprintf("- Le menu Aide appelle cette Aide et Quitter de quitter le programme.");
- textcolor(15+128);
- gotoxy(1,y++);cprintf("- IMPORTANT! Les noms de fichiers doivent ?tre des noms Dos.");
- textcolor(14);
- gotoxy(1,y++);
- gotoxy(1,y++);cprintf("- Wincut est un programme libre d'utilisation.");
- gotoxy(1,y++);
- gotoxy(1,y++);cprintf("- Copyright Avril 2002 -- Olivier MBIELEU (oliviermbieleu@yahoo.fr)");
- gotoxy(1,1);
- getch();
- for(int x=3;x<=y;x++){
- gotoxy(1,x);
- clreol();
- };
- textcolor(15);
- };
-
- void mainmenu(void){
- char *Tab[]={" G?n?rer "," Restaurer "," Options "," Aide "," Quitter "};
- int i=0,x,xd=7,yd=1,ch=2;
- noactbgcolor();gotoxy(1,1);clreol();
- gotoxy(xd,yd);cprintf("%s",Tab[0]);
- gotoxy(xd+15,yd);cprintf("%s",Tab[1]);
- gotoxy(xd+30,yd);cprintf("%s",Tab[2]);
- gotoxy(xd+45,yd);cprintf("%s",Tab[3]);
- gotoxy(xd+60,yd);cprintf("%s",Tab[4]);
- x=xd;i=0;afftaille();
- while(1){
- actbgcolor();gotoxy(x,yd);cprintf("%s",Tab[i]);gotoxy(1,1);
- ch=getch();
- noactbgcolor();gotoxy(x,yd);cprintf("%s",Tab[i]);
- switch(ch){
- case 75:if(i==0){i=4;x=xd+60;} else {i--;x-=15;};
- break;
- case 77:if(i==4){i=0;x=xd;} else {i++;x+=15;};
- break;
- case 16:
- actbgcolor();gotoxy(x,yd);cprintf("%s",Tab[i]);gotoxy(1,1);
- affmess("Voulez-Vous Vraiment Quitter Ce Programme ?(o/n) : ",14,0);int c=getch();
- if(c!='o' && c!='O'){
- effmess();noactbgcolor();gotoxy(x,yd);cprintf("%s",Tab[i]);
- break;};
- textcolor(15);textbackground(0);clrscr();return;
- case 13:case 80:
- actbgcolor();gotoxy(x,yd);cprintf("%s",Tab[i]);gotoxy(1,1);
- switch(i){
- case 0:menugen();break;
- case 1:menurest();break;
- case 2:menuoption();break;
- case 3:affaide();break;
- case 4:affmess("Voulez-Vous Vraiment Quitter Ce Programme ?(o/n) : ",14,0);int c=getch();
- if(c!='o' && c!='O'){
- effmess();noactbgcolor();gotoxy(x,yd);cprintf("%s",Tab[i]);
- break;};
- textcolor(15);textbackground(0);clrscr();return;
- };
- break;
- };
- };
- };
-
- //Fin des Menus
-
- char *makesrcfile(void){ // Cette fonction reconstitue le fichier source (Gros fichier)
- if(ordisrc[0]!='\0'){strcpy(Tempsrc,"//"); strcat(Tempsrc,ordisrc);}
- else strcpy(Tempsrc,"c:");
- if(dirsrc[0]!='\0'){strcat(Tempsrc,"/");strcat(Tempsrc,dirsrc);}
- strcpy(Tempdir,Tempsrc);
- strcat(Tempsrc,"/");strcat(Tempsrc,inputfile);
- return Tempsrc;
- };
-
- char *makedestfile(char *dest){ // Cette fonction crée le nom du premier des petits fichiers (nbfile=1)
- nbfile=1;dest[0]='\0';
- if(ordidest[0]!='\0'){strcpy(Tempmdf,"//");strcat(Tempmdf,ordidest);}
- else strcpy(Tempmdf,"c:");
- if(dirdest[0]!='\0'){strcat(Tempmdf,"/");strcat(Tempmdf,dirdest);}
- char temp[13],input[201],ext[10];retext(inputfile,input,ext);
- ncopy(input,temp,4);strcat(temp,"0");addext(temp,"wct");
- strcpy(dest,Tempmdf); strcat(dest,"/");strcat(dest,temp);
- return dest;
- };
-
- char *makendestfile(char *dest){ // Cette fonction crée les autres noms des petits fichiers (nbfile++)
- nbfile++; char temp[13],tmp[5],input[201],ext[10];retext(inputfile,input,ext);
- ncopy(input,temp,4);strcat(temp,itoa(nbfile-1,tmp,10));addext(temp,"wct");
- strcpy(dest,Tempmdf); strcat(dest,"\\");strcat(dest,temp);
- return dest;
- };
-
- int makewctlst(void){ // Cette Fonction crée le fichier .lst. Ce fichier contient la liste des petits fichiers ainsi que le nom original du fichier.
- //D'autres informations pourront être ajoutées à ce fichier
- char repdest[101],tmp1[5],mess[111],tmp2[13],tp[6],input[31],ext[11];
- FILE *destfile;int i=0;
- strcpy(repdest,Tempmdf);strcat(repdest,"/");strcat(repdest,"wct.lst");
- destfile=fopen(repdest,"w");
- if(!destfile){error("Impossible De Cr?er WCT.LST","Op?ration Annul?e");perror("\n");return 0;}
- retext(inputfile,input,ext);ncopy(input,tmp1,4);
- strcpy(mess,"-- Attention !! Ce Fichier Ne Doit Jamais etre Modifie --");fprintf(destfile,"%s\n",mess);
- strcpy(mess,O_COPY);fprintf(destfile,"%s\n",mess);
- strcpy(mess,"Taille=");strcat(mess,itoa(Taille,tmp2,10));fprintf(destfile,"%s Ko\n",mess);
- strcpy(mess,"Fichier Source=");strcat(mess,inputfile);fprintf(destfile,"%s\n",mess);
- while(i<nbfile){
- strcpy(mess,"Fichier");strcat(mess,itoa(i,tp,10));strcat(mess,"=");
- strcpy(tmp2,tmp1);strcat(tmp2,itoa(i,tp,10));addext(tmp2,"wct");
- strcat(mess,tmp2);fprintf(destfile,"%s\n",mess);
- i++;
- };
- strcpy(mess,"Wincut est un programme Libre d'utilisation ...");
- fprintf(destfile,"\n%s\n",mess);
- strcpy(mess,"Contact : oliviermbieleu@yahoo.fr");
- fprintf(destfile,"\n%s\n",mess);
- fclose(destfile);
- return 1;
- };
-
-
- int filecopy(int src,int dest,int n){ //Cette fonction copie n*BUFSIZE octets du fichier source vers le fichier destination
- unsigned i=0,nread=1,nwrite=1;
- char buf[BUFSIZE];
- while(i<n && nread>0){
- if (_dos_read(src, buf, BUFSIZE, &nread) != 0){error("Copie De Fichier","Erreur Lors De La Lecture Du Fichier");perror("\n");return 0;}
- if(_dos_write(dest, buf, nread, &nwrite) != 0){error("Copie De Fichier","Erreur Lors De L'?criture Dans Le Fichier");perror("\n");return 0;}
- i++;
- };
- return 1;
- };
-
- int creatfiles(int srcfile){ // Cette fonction crée les petits fichiers. C'est elle qui est appelé par la fonction genetverif
- int destfile;
- char dfile[201],mes[]=" Cr?ation De ",mes1[251];
- FILE *fp;
- makedestfile(dfile);
- while(!(eof(srcfile))){
- strcpy(mes1,mes);strcat(mes1,dfile);
- affmess(mes1,15,1);
- fp=fopen(dfile,"w");fclose(fp);
- if(_dos_open(dfile, O_WRONLY, &destfile)!=0){error("Impossible De Cr?er Les Fichiers R?sultats","");perror("\n");return 0;};
- if(!filecopy(srcfile,destfile,Taille)) return 0;
- _dos_close(destfile);
- if(!(eof(srcfile))) makendestfile(dfile);
- effmess();
- };
- makewctlst(); // Création du fichier wct.lst
- return 1;
- };
-
- char *decoupe(char *src,char car,char *s2){ // Cette fonction coupe une chaine de caractere en deux à partir du caractere car
- s2[0]='\0';if(!src[0]) return "";
- for(int i=0;i<strlen(src) && car!=src[i];i++);
- ncopy(src+i+1,s2,100);
- cutspace(s2);
- return s2;
- };
-
- int restorefile(void){ // Cette fonction reconstitue le gros fichier à partir des petits
- char tmplst[201],tmp1[201],temp1src[201],temp2dest[201],temp3[11],moi[201];
- FILE *fp;
- strcpy(tmplst,Tempdir);strcat(tmplst,"/wct.lst");
- fp=fopen(tmplst,"r");
- if(!fp){error("Impossible D'ouvrir Le Fichier 'WCT.LST'","Op?ration Abandonn?e");return 0;};
- fgets(tmp1,200,fp);
- fgets(tmp1,200,fp);tmp1[strlen(tmp1)-1]='\0';
- if(strcmp(tmp1,O_COPY)){error("Le Fichier WCT.LST Est Corrompu","Op?ration Abandonn?e");return 0;};
- fgets(tmp1,200,fp);
- fgets(tmp1,200,fp);tmp1[strlen(tmp1)-1]='\0';decoupe(tmp1,'=',inputfile);
-
- if(ordidest[0]!='\0'){strcpy(temp2dest,"//");strcat(temp2dest,ordidest);}
- else strcpy(temp2dest,"c:");
- if(dirdest[0]!='\0'){strcat(temp2dest,"/");strcat(temp2dest,dirdest);}
- strcat(temp2dest,"/");strcat(temp2dest,inputfile); //Fichier Destination
-
- if(ordisrc[0]!='\0'){strcpy(temp1src,"//");strcat(temp1src,ordisrc);}
- else strcpy(temp1src,"c:"); //Fichiers Sources
- if(dirsrc[0]!='\0'){strcat(temp1src,"/");strcat(temp1src,dirsrc);}
-
- FILE *fp1=fopen(temp2dest,"w");fclose(fp1);
- int destfile, srcfile;
- char oli1[70]="Reg?n?ration de ",oli2[70];
- strcat(oli1,inputfile);strcat(oli1," A Partir De ");strcpy(oli2,oli1);
- if(_dos_open(temp2dest, O_WRONLY, &destfile)!=0){error("Impossible de Cr?er",temp2dest);perror("\nOlivier");return 0;};
- do{
- fgets(tmp1,200,fp);tmp1[strlen(tmp1)-1]='\0';decoupe(tmp1,'=',temp3);
- if(strlen(temp3)>3){
- strcpy(moi,temp1src);strcat(temp1src,"/");strcat(temp1src,temp3);
- if(_dos_open(temp1src,O_RDONLY,&srcfile)!=0){error("Impossible D'ouvrir Le Fichier Source","");perror("\nOlivier");return 0;};
- strcat(oli1,temp3);
- affmess(oli1,15,1);strcpy(oli1,oli2);
- if(!filecopy(srcfile,destfile,32000)) return 0;
- _dos_close(srcfile);if(filesupp)remove(temp1src);
- strcpy(temp1src,moi);
- effmess();
- };
- }while(strlen(temp3)>3);
- _dos_close(destfile);fclose(fp);if(filesupp)remove(tmplst);
- return 1;
- };
-
- void main(void){
- textmode(C80);
- clrscr();
- mainmenu();
- clrscr();
- };
#include<fcntl.h>
#include<stdio.h>
#include<conio.h>
#include<string.h>
#include<stdlib.h>
#include<dir.h>
#include<dos.h>
#include<io.h>
#define BUFSIZE 1024
#define effln(y) eff(1,y)
char dirsrc[201]="",dirdest[201]="",ordisrc[81]="",ordidest[81]="",inputfile[81];
char O_COPY[]=" Wincut 2.0 Copyright Olivier MBIELEU - Avril 2002"; // Variable pour le copyright. Si elle est modifiée, wincut ne pourra plus regenérer les fichiers de la version précédente
char Tempmdf[201],Tempsrc[201],Tempdir[201]; // Variables temporaires pour
int nbfile=0,Taille=1000,filesupp=0;
void affmess(char *s1,int col,int bgc){ //Cette Fonction affiche un message (s1) avec la couleur col et le bgcolor bgc
char tmp[81]; char* ncopy(char*,char*,int);
textcolor(col);textbackground(bgc);gotoxy(2,18);
if(strlen(s1)>78){
ncopy(s1,tmp,78);
cprintf("%s",tmp);
gotoxy(2,19);cprintf("%s",s1+79);
}
else cprintf("%s",s1);
textcolor(15);gotoxy(1,1);
};
void effmess(void){ //Cette Fonction efface le message affiché par affmess
//void eff(int,int);
effln(18);effln(19);
};
void afftaille(void){ // Cette fonction affiche la taille des petits fichiers à créer
char s[91]="Wincut 2.0 -- La Taille Des Fichiers Découpés Est De ",s1[10];
itoa(Taille,s1,10);strcat(s,s1);strcat(s," Ko");
int n=strlen(s);int x=(79-n)/2+1;
gotoxy(1,25);textbackground(1);textcolor(14);clreol();
gotoxy(x,25);cprintf("%s",s);
textbackground(0);textcolor(15);
};
//Function Error
void error(char *s1,char* s2){ // Cette Fonction affiche les messages d'erreurs
void eff(int,int);
textbackground(4);textcolor(14);
gotoxy(1,21);clreol();
cprintf(" Erreur : %s",s1);
if(s2[0])cprintf(" : %s",s2);
getch();textcolor(15);textbackground(0);
effln(21);effln(22);effln(23);
};
//Op?rations Sur Les Chaines De Caract?res
char *ncopy(char *src,char *dest, int n){ // Cette Fonction copie n caractéres de src à dest = strncpy
dest[0]='\0';
if(n<=0)return dest;
int i=-1;
while(i++,i<n && src[i]) dest[i]=src[i];
dest[i]='\0';
return dest;
};
char *addext(char *s,char *ext){ // Cette fonction ajoute une extension (fich.cpp)
strcat(s,".");strcat(s,ext);
return s;
};
char *retext(char *src,char *file,char *ext){ // Cette Fonction retire l'extension (fich.cpp)
int i=0;
while(src[i] && src[i]!='.') i++;
if(src[i]=='\0'){ext[0]='\0';strcpy(file,src);}
else{ncopy(src,file,i);strcpy(ext,&src[i+1]);}
return file;
};
char * cutspace(char* s){ // Cette fonction retire les espaces présent dans une chaine
int i=0,j=-1;char tmp[200];
do{
j++;
if(s[j]!=' ')tmp[i++]=s[j];
}while(s[j]);
strcpy(s,tmp);
return s;
};
char* read(char *rep,int x1,int y,int lg){ // Cette fonction lit une chaine de caractères à l'écran
int x=x1,i=0;
char a;rep[0]='\0';
gotoxy(x1-3,y);cprintf(":->");
while(a=getch(),a!=13 && a!=27){
if(a!=8){if(x<=x1+lg){i++;gotoxy(x,y);cprintf("%c",a);
rep[i-1]=a;x+=1;}else printf("\a");
}
else if(x>x1){x-=1;rep[--i]='\0';gotoxy(x,y);cprintf(" ");gotoxy(x,y);
} else printf("\a");
};rep[i]='\0';
return cutspace(rep);
};
//Menus
void actbgcolor(void){textcolor(15);textbackground(4);};
void noactbgcolor(void){textcolor(15);textbackground(1);};
void eff(int x,int y){textcolor(15);textbackground(0);gotoxy(x,y);clreol();};
char* makesrcfile(void); int creatfiles(int); int restorefile(void);
void genetverif(void){ // Cette fonction génére les petits fichiers
char tmp[105],tmp1[72];
int ok=0;
affmess(" Entrer Le Nom Du R?pertoire o? se Trouve le Fichier Source(ex Olivier)",14,0);
read(dirsrc,4,19,70);
effmess();
affmess(" Entrer Le Nom Du Fichier ? D?couper",14,0);
read(inputfile,4,19,30);
effmess();
strcpy(tmp,"c:/");
strcat(tmp,dirsrc);if(dirsrc[0]) strcat(tmp,"/");strcat(tmp,inputfile);
if(access(tmp,00)){
error("Le Fichier Sp?cifi? N'existe Pas",tmp);
ok=1;
};
if(!ok){
affmess(" Entrer Le Nom du R?portoire o? Copier Les Petits Fichiers (ex Carole)",14,0);
read(dirdest,4,19,75);
effmess();
strcpy(tmp,"c:/");strcat(tmp,dirdest);strcpy(tmp1,tmp);
strcat(tmp,"/");strcat(tmp,"test.$$$");FILE *fp=fopen(tmp,"w");
if(!fp){affmess(" Ce r?pertoire N'existe Pas. Le Cr?er (o/n) ? ",14,0);int c=getch();
effmess();
if(c=='o' || c=='O'){
if(mkdir(tmp1)!=0){error("Impossible De Cr?er Le R?pertoire",tmp1);ok=1;}
}else ok=1;
}
else {fclose(fp);remove(tmp);};
if(!ok){
int srcfile;
makesrcfile();_dos_open(Tempsrc,O_RDONLY,&srcfile);
creatfiles(srcfile);
_dos_close(srcfile);
};
};
if(ok) error("La G?n?ration des Fichiers Est Impossible !","");
else {affmess(" Op?ration Effectu?e Avec Succ?s Appuyer Sur Une Touche ...",14,1);getch();effmess();};
};
void menugen(void){
char *Tab[]={" Machine Locale "," Locale->R?seau "," R?seau->Locale "," R?seau->R?seau "};
int i=0,ch=12,xd=5,yd=3,y;
char mess[161];
noactbgcolor();
gotoxy(xd,yd);cprintf("%s",Tab[0]);
gotoxy(xd,yd+2);cprintf("%s",Tab[1]);
gotoxy(xd,yd+4);cprintf("%s",Tab[2]);
gotoxy(xd,yd+6);cprintf("%s",Tab[3]);
i=0;y=yd;
while(ch!=27){
actbgcolor();gotoxy(xd,y);cprintf("%s",Tab[i]);gotoxy(1,1);
ch=getch();
noactbgcolor();gotoxy(xd,y);cprintf("%s",Tab[i]);
switch(ch){
case 72:if(i==0){i=3;y=yd+6;}else {i--;y-=2;};break;
case 80:if(i==3){i=0;y=yd;} else {i++;y+=2;};break;
case 13:effln(yd);effln(yd+2);effln(yd+4);effln(yd+6);
switch(i){
case 0:ordisrc[0]='\0';ordidest[0]='\0';genetverif();
break;
case 1:{ordisrc[0]='\0';
char tmp[105],tmp1[72];
int ok=0;
affmess(" Entrer Le Nom Du R?pertoire o? se Trouve le Fichier Source(ex Olivier)",14,0);
read(dirsrc,4,19,70);
effmess();
affmess(" Entrer Le Nom Du Fichier ? D?couper",14,0);
read(inputfile,4,19,30);
effmess();
strcpy(tmp,"c:/");
strcat(tmp,dirsrc);if(dirsrc[0])strcat(tmp,"/");strcat(tmp,inputfile);
if(access(tmp,00)){
error("Le Fichier Sp?cifi? N'existe Pas",tmp);
ok=1;
};
if(!ok){
affmess(" Entrer Le Nom R?seau De La Machine destination",14,0);
read(ordidest,4,19,19);
effmess();
affmess(" Entrer Le Nom R?seau Du Disque Destination",14,0);
read(dirdest,4,19,21);
effmess();
affmess(" Entrer Le Nom du R?portoire o? Copier Les Petits Fichiers (ex Carole)",14,0);
read(tmp,4,19,75);strcat(dirdest,"/");strcat(dirdest,tmp);
effmess();
strcpy(tmp,"//");strcat(tmp,ordidest);strcat(tmp,"/");
strcat(tmp,dirdest);strcpy(tmp1,tmp);
strcat(tmp,"/");strcat(tmp,"test.$$$");FILE *fp=fopen(tmp,"w");
if(!fp){affmess(" Ce r?pertoire N'existe Pas. Le Cr?er (o/n) ? ",14,0);int c=getch();
effmess();
if(c=='o' || c=='O'){
if(mkdir(tmp1)!=0){error("Impossible De Cr?er Le R?pertoire",tmp1);ok=1;}
}else ok=1;
}
else {fclose(fp);remove(tmp);};
if(!ok){
int srcfile;char* makesrcfile(void); int creatfiles(int);
makesrcfile();_dos_open(Tempsrc,O_RDONLY,&srcfile);
creatfiles(srcfile);
_dos_close(srcfile);
};
};
if(ok) error("La G?n?ration des Fichiers Est Impossible !","");
else {affmess(" Op?ration Effectu?e Avec Succ?s Appuyer Sur Une Touche ...",14,1);getch();effmess();};
break;
};
case 2:{ordidest[0]='\0';
char tmp[105],tmp1[72];
int ok=0;
affmess(" Entrer Le Nom R?seau De La Machine Source",14,0);
read(ordisrc,4,19,19);
effmess();
affmess(" Entrer Le Nom R?seau Du Disque Source",14,0);
read(dirsrc,4,19,21);
effmess();
affmess(" Entrer Le Nom du R?portoire o? Se Trouve Le Fichier Source (ex Carole)",14,0);
read(tmp,4,19,75);strcat(dirsrc,"/");strcat(dirsrc,tmp);
effmess();
affmess(" Entrer Le Nom Du Fichier ? D?couper",14,0);
read(inputfile,4,19,30);
effmess();
strcpy(tmp,"//");strcat(tmp,ordisrc);strcat(tmp,"/");
strcat(tmp,dirsrc);strcat(tmp,"/");strcat(tmp,inputfile);
if(access(tmp,00)){
error("Le Fichier Sp?cifi? N'existe Pas",tmp);
ok=1;
};
if(!ok){
affmess(" Entrer Le Nom du R?portoire o? Copier Les Petits Fichiers (ex Carole)",14,0);
read(dirdest,4,19,75);
effmess();
strcpy(tmp,"c:/");strcat(tmp,dirdest);strcpy(tmp1,tmp);
strcat(tmp,"/");strcat(tmp,"test.$$$");FILE *fp=fopen(tmp,"w");
if(!fp){affmess(" Ce r?pertoire N'existe Pas. Le Cr?er (o/n) ? ",14,0);int c=getch();
effmess();
if(c=='o' || c=='O'){
if(mkdir(tmp1)!=0){error("Impossible De Cr?er Le R?pertoire",tmp1);ok=1;}
}else ok=1;
}
else {fclose(fp);remove(tmp);};
if(!ok){
int srcfile;
makesrcfile();_dos_open(Tempsrc,O_RDONLY,&srcfile);
creatfiles(srcfile);
_dos_close(srcfile);
};
};
if(ok) error("La G?n?ration des Fichiers Est Impossible !","");
else {affmess(" Op?ration Effectu?e Avec Succ?s Appuyer Sur Une Touche ...",14,1);getch();effmess();};
break;};
case 3:{ordidest[0]='\0';
char tmp[105],tmp1[72];
int ok=0;
affmess(" Entrer Le Nom R?seau De La Machine Source",14,0);
read(ordisrc,4,19,19);
effmess();
affmess(" Entrer Le Nom R?seau Du Disque Source",14,0);
read(dirsrc,4,19,21);
effmess();
affmess(" Entrer Le Nom du R?portoire o? Se Trouve Le Fichier Source (ex Carole)",14,0);
read(tmp,4,19,75);strcat(dirsrc,"/");strcat(dirsrc,tmp);
effmess();
affmess(" Entrer Le Nom Du Fichier ? D?couper",14,0);
read(inputfile,4,19,30);
effmess();
strcpy(tmp,"//");strcat(tmp,ordisrc);strcat(tmp,"/");
strcat(tmp,dirsrc);strcat(tmp,"/");strcat(tmp,inputfile);
if(access(tmp,00)){
error("Le Fichier Sp?cifi? N'existe Pas",tmp);
ok=1;
};
if(!ok){
affmess(" Entrer Le Nom R?seau De La Machine destination",14,0);
read(ordidest,4,19,19);
effmess();
affmess(" Entrer Le Nom R?seau Du Disque Destination",14,0);
read(dirdest,4,19,21);
effmess();
affmess(" Entrer Le Nom du R?portoire o? Copier Les Petits Fichiers (ex Carole)",14,0);
read(tmp,4,19,75);strcat(dirdest,"/");strcat(dirdest,tmp);
effmess();
strcpy(tmp,"//");strcat(tmp,ordidest);strcat(tmp,"/");
strcat(tmp,dirdest);strcpy(tmp1,tmp);
strcat(tmp,"/");strcat(tmp,"test.$$$");FILE *fp=fopen(tmp,"w");
if(!fp){affmess(" Ce r?pertoire N'existe Pas. Le Cr?er (o/n) ? ",14,0);int c=getch();
effmess();
if(c=='o' || c=='O'){
if(mkdir(tmp1)!=0){error("Impossible De Cr?er Le R?pertoire",tmp1);ok=1;}
}else ok=1;
}
else {fclose(fp);remove(tmp);};
if(!ok){
int srcfile;
makesrcfile();_dos_open(Tempsrc,O_RDONLY,&srcfile);
creatfiles(srcfile);
_dos_close(srcfile);
};
};
if(ok) error("La G?n?ration des Fichiers Est Impossible !","");
else {affmess(" Op?ration Effectu?e Avec Succ?s Appuyer Sur Une Touche ...",14,1);getch();effmess();};
break;}
};
return;
};
};
effln(yd);effln(yd+2);effln(yd+4);effln(yd+6);
};
void menurest(void){
char *Tab[]={" Machine Locale "," Locale->R?seau "," R?seau->Locale "," R?seau->R?seau "};
int i=0,ch=12,xd=20,yd=3,y;
char mess[161];
noactbgcolor();
gotoxy(xd,yd);cprintf("%s",Tab[0]);
gotoxy(xd,yd+2);cprintf("%s",Tab[1]);
gotoxy(xd,yd+4);cprintf("%s",Tab[2]);
gotoxy(xd,yd+6);cprintf("%s",Tab[3]);
i=0;y=yd;
while(ch!=27){
actbgcolor();gotoxy(xd,y);cprintf("%s",Tab[i]);gotoxy(1,1);
ch=getch();
noactbgcolor();gotoxy(xd,y);cprintf("%s",Tab[i]);
switch(ch){
case 72:if(i==0){i=3;y=yd+6;}else {i--;y-=2;};break;
case 80:if(i==3){i=0;y=yd;} else {i++;y+=2;};break;
case 13:effln(yd);effln(yd+2);effln(yd+4);effln(yd+6);
switch(i){
case 0:{ordisrc[0]='\0';ordidest[0]='\0';char tmp[81],tmp1[101];int ok=0;
affmess(" Entrer Le Nom Du R?pertoire O? Se Trouve Le Fichier WCT.LST",14,0);
read(dirsrc,4,19,51);
effmess();
strcpy(tmp,"c:/");
if(dirsrc[0]){strcat(tmp,dirsrc);strcat(tmp,"/wct.lst");}
else strcat(tmp,"wct.lst");
if(access(tmp,00)){
error("Le Fichier Ou R?pertoire Sp?cifi? N'existe Pas",tmp);
ok=1;
};
if(!ok){
affmess(" Entrer Le Nom Du R?pertoire O? Reconstituer Le Fichier",14,0);
read(dirdest,4,19,51);
effmess();
strcpy(tmp,"c:/");strcat(tmp,dirdest);strcpy(tmp1,tmp);
strcat(tmp,"/");strcat(tmp,"test.$$$");FILE *fp=fopen(tmp,"w");
if(!fp){affmess(" Ce r?pertoire N'existe Pas. Le Cr?er (o/n) ? ",14,0);int c=getch();
effmess();
if(c=='o' || c=='O'){
if(mkdir(tmp1)!=0){error("Impossible De Cr?er Le R?pertoire",tmp1);ok=1;}
}else ok=1;
}
else {fclose(fp);remove(tmp);};
};
if(!ok){makesrcfile();
restorefile();
}
if(ok) error("La Reg?n?ration des Fichiers Est Impossible !","");
else {affmess(" Op?ration Effectu?e Avec Succ?s Appuyer Sur Une Touche ...",14,1);getch();effmess();};
break;
};
case 1:{ordisrc[0]='\0';ordidest[0]='\0';char tmp[81],tmp1[101];int ok=0;
affmess(" Entrer Le Nom Du R?pertoire O? Se Trouve Le Fichier WCT.LST",14,0);
read(dirsrc,4,19,51);
effmess();
strcpy(tmp,"c:/");
if(dirsrc[0]){strcat(tmp,dirsrc);strcat(tmp,"/wct.lst");}
else strcat(tmp,"wct.lst");
if(access(tmp,00)){
error("Le Fichier Ou R?pertoire Sp?cifi? N'existe Pas",tmp);
ok=1;
};
if(!ok){
affmess(" Entrer Le Nom R?seau De La Machine destination",14,0);
read(ordidest,4,19,19);
effmess();
affmess(" Entrer Le Nom R?seau Du Disque Destination",14,0);
read(dirdest,4,19,21);
effmess();
affmess(" Entrer Le Nom Du R?pertoire O? Reconstituer Le Fichier",14,0);
read(tmp,4,19,75);strcat(dirdest,"/");strcat(dirdest,tmp);
effmess();
strcpy(tmp,"//");strcat(tmp,ordidest);strcat(tmp,"/");
strcat(tmp,dirdest);strcpy(tmp1,tmp);
strcat(tmp,"/");strcat(tmp,"test.$$$");FILE *fp=fopen(tmp,"w");
if(!fp){affmess(" Ce r?pertoire N'existe Pas. Le Cr?er (o/n) ? ",14,0);int c=getch();
effmess();
if(c=='o' || c=='O'){
if(mkdir(tmp1)!=0){error("Impossible De Cr?er Le R?pertoire",tmp1);ok=1;}
}else ok=1;
}
else {fclose(fp);remove(tmp);};
};
if(!ok){makesrcfile();
restorefile();
}
if(ok) error("La Reg?n?ration des Fichiers Est Impossible !","");
else {affmess(" Op?ration Effectu?e Avec Succ?s Appuyer Sur Une Touche ...",14,1);getch();effmess();};
break;};
case 2:{ordisrc[0]='\0';ordidest[0]='\0';char tmp[81],tmp1[101];int ok=0;
affmess(" Entrer Le Nom R?seau De La Machine Source (WCT.LST)",14,0);
read(ordisrc,4,19,19);
effmess();
affmess(" Entrer Le Nom R?seau Du Disque Source (WCT.LST)",14,0);
read(dirsrc,4,19,21);
effmess();
affmess(" Entrer Le Nom Du R?pertoire O? Se Trouve Le Fichier WCT.LST",14,0);
read(tmp,4,19,75);strcat(dirsrc,"/");strcat(dirsrc,tmp);
effmess();
strcpy(tmp,"//");strcat(tmp,ordisrc);strcat(tmp,"/");
strcat(tmp,dirsrc);strcat(tmp,"/wct.lst");
affmess("Patienter ...",14,0);
if(access(tmp,00)){
error("Le Fichier Ou R?pertoire Sp?cifi? N'existe Pas",tmp);
ok=1;
};effmess();
if(!ok){
affmess(" Entrer Le Nom Du R?pertoire O? Reconstituer Le Fichier",14,0);
read(dirdest,4,19,51);
effmess();
strcpy(tmp,"c:/");strcat(tmp,dirdest);strcpy(tmp1,tmp);
strcat(tmp,"/");strcat(tmp,"test.$$$");affmess("Patienter ...",14,0);
FILE *fp=fopen(tmp,"w");effmess();
if(!fp){affmess(" Ce r?pertoire N'existe Pas. Le Cr?er (o/n) ? ",14,0);int c=getch();
effmess();
if(c=='o' || c=='O'){
if(mkdir(tmp1)!=0){error("Impossible De Cr?er Le R?pertoire",tmp1);ok=1;}
}else ok=1;
}
else {fclose(fp);remove(tmp);};
};
if(!ok){makesrcfile();
restorefile();
}
if(ok) error("La Reg?n?ration des Fichiers Est Impossible !","");
else {affmess(" Op?ration Effectu?e Avec Succ?s Appuyer Sur Une Touche ...",14,1);getch();effmess();};
break;};
case 3:{ordisrc[0]='\0';ordidest[0]='\0';char tmp[81],tmp1[101];int ok=0;
affmess(" Entrer Le Nom R?seau De La Machine Source (WCT.LST)",14,0);
read(ordisrc,4,19,19);
effmess();
affmess(" Entrer Le Nom R?seau Du Disque Source (WCT.LST)",14,0);
read(dirsrc,4,19,21);
effmess();
affmess(" Entrer Le Nom Du R?pertoire O? Se Trouve Le Fichier WCT.LST",14,0);
read(tmp,4,19,75);strcat(dirsrc,"/");strcat(dirsrc,tmp);
effmess();
strcpy(tmp,"//");strcat(tmp,ordisrc);strcat(tmp,"/");
strcat(tmp,dirsrc);strcat(tmp,"/wct.lst");
affmess("Patienter ...",14,0);
if(access(tmp,00)){
error("Le Fichier Ou R?pertoire Sp?cifi? N'existe Pas",tmp);
ok=1;
};effmess();
if(!ok){
affmess(" Entrer Le Nom R?seau De La Machine destination",14,0);
read(ordidest,4,19,19);
effmess();
affmess(" Entrer Le Nom R?seau Du Disque Destination",14,0);
read(dirdest,4,19,21);
effmess();
affmess(" Entrer Le Nom Du R?pertoire O? Reconstituer Le Fichier",14,0);
read(tmp,4,19,75);strcat(dirdest,"/");strcat(dirdest,tmp);
effmess();
strcpy(tmp,"//");strcat(tmp,ordidest);strcat(tmp,"/");
strcat(tmp,dirdest);strcpy(tmp1,tmp);
strcat(tmp,"/");strcat(tmp,"test.$$$");FILE *fp=fopen(tmp,"w");
if(!fp){affmess(" Ce r?pertoire N'existe Pas. Le Cr?er (o/n) ? ",14,0);int c=getch();
effmess();
if(c=='o' || c=='O'){
if(mkdir(tmp1)!=0){error("Impossible De Cr?er Le R?pertoire",tmp1);ok=1;}
}else ok=1;
}
else {fclose(fp);remove(tmp);};
};
if(!ok){makesrcfile();
restorefile();
}
if(ok) error("La Reg?n?ration des Fichiers Est Impossible !","");
else {affmess(" Op?ration Effectu?e Avec Succ?s Appuyer Sur Une Touche ...",14,1);getch();effmess();};
break;};
};
return;
};
};
effln(yd);effln(yd+2);effln(yd+4);effln(yd+6);
};
void menuoption(void){
static char *Tabopt[]={" Taille "," Supprimer "};
int i=0,ch=12,xd=35,yd=3,y;
char mess[161];
noactbgcolor();
gotoxy(xd,yd);cprintf("%s",Tabopt[0]);
gotoxy(xd,yd+2);cprintf("%s",Tabopt[1]);
i=0;y=yd;
while(ch!=27){
actbgcolor();gotoxy(xd,y);cprintf("%s",Tabopt[i]);gotoxy(1,1);
ch=getch();
noactbgcolor();gotoxy(xd,y);cprintf("%s",Tabopt[i]);
switch(ch){
case 72:if(i==0){i=1;y=yd+2;} else {i--;y-=2;};break;
case 80:if(i==1){i=0;y=yd;} else {i++;y+=2;};break;
case 13:effln(yd);effln(yd+2);//effln(yd+4);effln(yd+6);
switch(i){
case 0:{char s[11];int tel;
affmess(" Entrer La Taille Des Fichiers D?coup?s (En Ko)",14,0);
read(s,4,19,5);
effmess();tel=atoi(s);
if(tel>0) Taille=tel;
afftaille();
break;
};
case 1:{ if(filesupp){
filesupp=0;
Tabopt[1][strlen(Tabopt[1])-2]=' ';
}
else {
filesupp=1;
Tabopt[1][strlen(Tabopt[1])-2]='';
};
break;
};
};
return;
};
};
effln(yd);effln(yd+2);//effln(yd+4);effln(yd+6);
};
void affaide(void){
int y=3;
textbackground(0);textcolor(14);
gotoxy(1,y++);cprintf("- Wincut est un programme qui d?coupe de gros fichiers en de petits fichiers.");
gotoxy(1,y++);cprintf("- Son but principal est de permettre de transporter de gros fichiers de machine en machine.");y++;
gotoxy(1,y++);cprintf("- Le menu G?n?rer permet de d?couper de gros fichiers. Il pr?sente les options");
gotoxy(1,y++);cprintf(" Machine Locale qui permet de g?n?rer les petits fichiers ? partir de la machi");
gotoxy(1,y++);cprintf(" ne locale, Locale->R?seau envoie les petits fichiers dans une machine distant");
gotoxy(1,y++);cprintf(" e, R?seau->Locale prend un gros fichier en r?seau et le d?coupe dans la machi");
gotoxy(1,y++);cprintf(" ne locale, R?seau->R?seau qui prend un fichier en r?seau et envoie le r?sulta");
gotoxy(1,y++);cprintf(" t dans une autre machine distante.");
gotoxy(1,y++);cprintf("- Le menu Restaurer permet de reconstituer le gros fichier ? partir des petits.");
gotoxy(1,y++);cprintf(" Les options de ce menu ont la m?me signification que les options du menu pr?c");
gotoxy(1,y++);cprintf(" ?dent ? la seule diff?rence qu'ils s'appliquent aux petits fichiers.");
gotoxy(1,y++);cprintf("- Le menu Option permet de modifier la taille des petits fichiers ainsi que de ");
gotoxy(1,y++);cprintf(" supprimer ou non les petits fichiers lors de la Restauration.");
gotoxy(1,y++);cprintf("- Le menu Aide appelle cette Aide et Quitter de quitter le programme.");
textcolor(15+128);
gotoxy(1,y++);cprintf("- IMPORTANT! Les noms de fichiers doivent ?tre des noms Dos.");
textcolor(14);
gotoxy(1,y++);
gotoxy(1,y++);cprintf("- Wincut est un programme libre d'utilisation.");
gotoxy(1,y++);
gotoxy(1,y++);cprintf("- Copyright Avril 2002 -- Olivier MBIELEU (oliviermbieleu@yahoo.fr)");
gotoxy(1,1);
getch();
for(int x=3;x<=y;x++){
gotoxy(1,x);
clreol();
};
textcolor(15);
};
void mainmenu(void){
char *Tab[]={" G?n?rer "," Restaurer "," Options "," Aide "," Quitter "};
int i=0,x,xd=7,yd=1,ch=2;
noactbgcolor();gotoxy(1,1);clreol();
gotoxy(xd,yd);cprintf("%s",Tab[0]);
gotoxy(xd+15,yd);cprintf("%s",Tab[1]);
gotoxy(xd+30,yd);cprintf("%s",Tab[2]);
gotoxy(xd+45,yd);cprintf("%s",Tab[3]);
gotoxy(xd+60,yd);cprintf("%s",Tab[4]);
x=xd;i=0;afftaille();
while(1){
actbgcolor();gotoxy(x,yd);cprintf("%s",Tab[i]);gotoxy(1,1);
ch=getch();
noactbgcolor();gotoxy(x,yd);cprintf("%s",Tab[i]);
switch(ch){
case 75:if(i==0){i=4;x=xd+60;} else {i--;x-=15;};
break;
case 77:if(i==4){i=0;x=xd;} else {i++;x+=15;};
break;
case 16:
actbgcolor();gotoxy(x,yd);cprintf("%s",Tab[i]);gotoxy(1,1);
affmess("Voulez-Vous Vraiment Quitter Ce Programme ?(o/n) : ",14,0);int c=getch();
if(c!='o' && c!='O'){
effmess();noactbgcolor();gotoxy(x,yd);cprintf("%s",Tab[i]);
break;};
textcolor(15);textbackground(0);clrscr();return;
case 13:case 80:
actbgcolor();gotoxy(x,yd);cprintf("%s",Tab[i]);gotoxy(1,1);
switch(i){
case 0:menugen();break;
case 1:menurest();break;
case 2:menuoption();break;
case 3:affaide();break;
case 4:affmess("Voulez-Vous Vraiment Quitter Ce Programme ?(o/n) : ",14,0);int c=getch();
if(c!='o' && c!='O'){
effmess();noactbgcolor();gotoxy(x,yd);cprintf("%s",Tab[i]);
break;};
textcolor(15);textbackground(0);clrscr();return;
};
break;
};
};
};
//Fin des Menus
char *makesrcfile(void){ // Cette fonction reconstitue le fichier source (Gros fichier)
if(ordisrc[0]!='\0'){strcpy(Tempsrc,"//"); strcat(Tempsrc,ordisrc);}
else strcpy(Tempsrc,"c:");
if(dirsrc[0]!='\0'){strcat(Tempsrc,"/");strcat(Tempsrc,dirsrc);}
strcpy(Tempdir,Tempsrc);
strcat(Tempsrc,"/");strcat(Tempsrc,inputfile);
return Tempsrc;
};
char *makedestfile(char *dest){ // Cette fonction crée le nom du premier des petits fichiers (nbfile=1)
nbfile=1;dest[0]='\0';
if(ordidest[0]!='\0'){strcpy(Tempmdf,"//");strcat(Tempmdf,ordidest);}
else strcpy(Tempmdf,"c:");
if(dirdest[0]!='\0'){strcat(Tempmdf,"/");strcat(Tempmdf,dirdest);}
char temp[13],input[201],ext[10];retext(inputfile,input,ext);
ncopy(input,temp,4);strcat(temp,"0");addext(temp,"wct");
strcpy(dest,Tempmdf); strcat(dest,"/");strcat(dest,temp);
return dest;
};
char *makendestfile(char *dest){ // Cette fonction crée les autres noms des petits fichiers (nbfile++)
nbfile++; char temp[13],tmp[5],input[201],ext[10];retext(inputfile,input,ext);
ncopy(input,temp,4);strcat(temp,itoa(nbfile-1,tmp,10));addext(temp,"wct");
strcpy(dest,Tempmdf); strcat(dest,"\\");strcat(dest,temp);
return dest;
};
int makewctlst(void){ // Cette Fonction crée le fichier .lst. Ce fichier contient la liste des petits fichiers ainsi que le nom original du fichier.
//D'autres informations pourront être ajoutées à ce fichier
char repdest[101],tmp1[5],mess[111],tmp2[13],tp[6],input[31],ext[11];
FILE *destfile;int i=0;
strcpy(repdest,Tempmdf);strcat(repdest,"/");strcat(repdest,"wct.lst");
destfile=fopen(repdest,"w");
if(!destfile){error("Impossible De Cr?er WCT.LST","Op?ration Annul?e");perror("\n");return 0;}
retext(inputfile,input,ext);ncopy(input,tmp1,4);
strcpy(mess,"-- Attention !! Ce Fichier Ne Doit Jamais etre Modifie --");fprintf(destfile,"%s\n",mess);
strcpy(mess,O_COPY);fprintf(destfile,"%s\n",mess);
strcpy(mess,"Taille=");strcat(mess,itoa(Taille,tmp2,10));fprintf(destfile,"%s Ko\n",mess);
strcpy(mess,"Fichier Source=");strcat(mess,inputfile);fprintf(destfile,"%s\n",mess);
while(i<nbfile){
strcpy(mess,"Fichier");strcat(mess,itoa(i,tp,10));strcat(mess,"=");
strcpy(tmp2,tmp1);strcat(tmp2,itoa(i,tp,10));addext(tmp2,"wct");
strcat(mess,tmp2);fprintf(destfile,"%s\n",mess);
i++;
};
strcpy(mess,"Wincut est un programme Libre d'utilisation ...");
fprintf(destfile,"\n%s\n",mess);
strcpy(mess,"Contact : oliviermbieleu@yahoo.fr");
fprintf(destfile,"\n%s\n",mess);
fclose(destfile);
return 1;
};
int filecopy(int src,int dest,int n){ //Cette fonction copie n*BUFSIZE octets du fichier source vers le fichier destination
unsigned i=0,nread=1,nwrite=1;
char buf[BUFSIZE];
while(i<n && nread>0){
if (_dos_read(src, buf, BUFSIZE, &nread) != 0){error("Copie De Fichier","Erreur Lors De La Lecture Du Fichier");perror("\n");return 0;}
if(_dos_write(dest, buf, nread, &nwrite) != 0){error("Copie De Fichier","Erreur Lors De L'?criture Dans Le Fichier");perror("\n");return 0;}
i++;
};
return 1;
};
int creatfiles(int srcfile){ // Cette fonction crée les petits fichiers. C'est elle qui est appelé par la fonction genetverif
int destfile;
char dfile[201],mes[]=" Cr?ation De ",mes1[251];
FILE *fp;
makedestfile(dfile);
while(!(eof(srcfile))){
strcpy(mes1,mes);strcat(mes1,dfile);
affmess(mes1,15,1);
fp=fopen(dfile,"w");fclose(fp);
if(_dos_open(dfile, O_WRONLY, &destfile)!=0){error("Impossible De Cr?er Les Fichiers R?sultats","");perror("\n");return 0;};
if(!filecopy(srcfile,destfile,Taille)) return 0;
_dos_close(destfile);
if(!(eof(srcfile))) makendestfile(dfile);
effmess();
};
makewctlst(); // Création du fichier wct.lst
return 1;
};
char *decoupe(char *src,char car,char *s2){ // Cette fonction coupe une chaine de caractere en deux à partir du caractere car
s2[0]='\0';if(!src[0]) return "";
for(int i=0;i<strlen(src) && car!=src[i];i++);
ncopy(src+i+1,s2,100);
cutspace(s2);
return s2;
};
int restorefile(void){ // Cette fonction reconstitue le gros fichier à partir des petits
char tmplst[201],tmp1[201],temp1src[201],temp2dest[201],temp3[11],moi[201];
FILE *fp;
strcpy(tmplst,Tempdir);strcat(tmplst,"/wct.lst");
fp=fopen(tmplst,"r");
if(!fp){error("Impossible D'ouvrir Le Fichier 'WCT.LST'","Op?ration Abandonn?e");return 0;};
fgets(tmp1,200,fp);
fgets(tmp1,200,fp);tmp1[strlen(tmp1)-1]='\0';
if(strcmp(tmp1,O_COPY)){error("Le Fichier WCT.LST Est Corrompu","Op?ration Abandonn?e");return 0;};
fgets(tmp1,200,fp);
fgets(tmp1,200,fp);tmp1[strlen(tmp1)-1]='\0';decoupe(tmp1,'=',inputfile);
if(ordidest[0]!='\0'){strcpy(temp2dest,"//");strcat(temp2dest,ordidest);}
else strcpy(temp2dest,"c:");
if(dirdest[0]!='\0'){strcat(temp2dest,"/");strcat(temp2dest,dirdest);}
strcat(temp2dest,"/");strcat(temp2dest,inputfile); //Fichier Destination
if(ordisrc[0]!='\0'){strcpy(temp1src,"//");strcat(temp1src,ordisrc);}
else strcpy(temp1src,"c:"); //Fichiers Sources
if(dirsrc[0]!='\0'){strcat(temp1src,"/");strcat(temp1src,dirsrc);}
FILE *fp1=fopen(temp2dest,"w");fclose(fp1);
int destfile, srcfile;
char oli1[70]="Reg?n?ration de ",oli2[70];
strcat(oli1,inputfile);strcat(oli1," A Partir De ");strcpy(oli2,oli1);
if(_dos_open(temp2dest, O_WRONLY, &destfile)!=0){error("Impossible de Cr?er",temp2dest);perror("\nOlivier");return 0;};
do{
fgets(tmp1,200,fp);tmp1[strlen(tmp1)-1]='\0';decoupe(tmp1,'=',temp3);
if(strlen(temp3)>3){
strcpy(moi,temp1src);strcat(temp1src,"/");strcat(temp1src,temp3);
if(_dos_open(temp1src,O_RDONLY,&srcfile)!=0){error("Impossible D'ouvrir Le Fichier Source","");perror("\nOlivier");return 0;};
strcat(oli1,temp3);
affmess(oli1,15,1);strcpy(oli1,oli2);
if(!filecopy(srcfile,destfile,32000)) return 0;
_dos_close(srcfile);if(filesupp)remove(temp1src);
strcpy(temp1src,moi);
effmess();
};
}while(strlen(temp3)>3);
_dos_close(destfile);fclose(fp);if(filesupp)remove(tmplst);
return 1;
};
void main(void){
textmode(C80);
clrscr();
mainmenu();
clrscr();
};
Sources de la même categorie
Commentaires et avis
|
Derniers Blogs
QUELQUES TRUCS INTéRESSANTS (05/09/2010)QUELQUES TRUCS INTéRESSANTS (05/09/2010) par coq
Cette fois-ci : .NET Debug / Performance Sécurité SQL Server .NET Determining if a type is defined in the .NET Framework (blog de Scott Dorman) Ha tiens, je n'avais jamais vraiment pensé à utiliser le jeton de clé publique...
Cliquez pour lire la suite de l'article par coq ENUMERABLECOLLECTIONENUMERABLECOLLECTION par Matthieu MEZIL
Prenons le scénario suivant. On utilise MVVM. On a les deux classes suivantes dans le model : public class Child { } public class Parent { private ObservableCollection < Child > _children; public ObservableCollection < Child > Children { get {...
Cliquez pour lire la suite de l'article par Matthieu MEZIL [HS] CHROME 6 + MOI = COUP DE GUEULE ![HS] CHROME 6 + MOI = COUP DE GUEULE ! par JeremyJeanson
Attention, le poste qui suit n'est pas la complainte d'une personne : Qui n'aime pas Chrome. D'un anti Google. D'un développeur qui a un poil énorme dans la main. Ceux qui me fréquentent savent que je change de navigateur favori tous les 2 ou 3 mois afin ...
Cliquez pour lire la suite de l'article par JeremyJeanson [WP7] UTILISER UN WRAPPANEL DANS UNE APPLICATION WINDOWS PHONE 7[WP7] UTILISER UN WRAPPANEL DANS UNE APPLICATION WINDOWS PHONE 7 par Audrey
Lors de la réalisation de ma 2ème application Windows Phone 7, j'ai souhaité utiliser un WrapPanel pour afficher plusieurs photos. Mais le contrôle WrapPanel ne fait pas parti de la liste des contrôles inclus dans le SDK de la version Beta des outils pour...
Cliquez pour lire la suite de l'article par Audrey
Forum
LISTE ET TABLEAULISTE ET TABLEAU par dida87
Cliquez pour lire la suite par dida87
Logiciels
WebLogAndPass (1.0.0)WEBLOGANDPASS (1.0.0)WebLogAndPass est un logiciel permettant de mémoriser vos sites préférés et pour chacun d'entre-e... Cliquez pour télécharger WebLogAndPass uTorrent (2.0.4)UTORRENT (2.0.4)C'est un client BitTorrent très puissant et très performant. Comme son nom l'indique, uTorrent (m... Cliquez pour télécharger uTorrent Bureau de Gestion - ERP Devis Facturation (2.02)BUREAU DE GESTION - ERP DEVIS FACTURATION (2.02)- Version gratuite du 10/06/2010
Le Bureau de Gestion est un logiciel dédié à la gestion de l'en... Cliquez pour télécharger Bureau de Gestion - ERP Devis Facturation 4Videosoft Transfert iPod Mac (3.2.08)4VIDEOSOFT TRANSFERT IPOD MAC (3.2.08)4Videosoft Transfert iPod-Mac caractérise principalement à transférer les fichiers iPod vers Mac.... Cliquez pour télécharger 4Videosoft Transfert iPod Mac 4Videosoft HD Convertisseur (3.3.08)4VIDEOSOFT HD CONVERTISSEUR (3.3.08)Etant le meilleur HD Vidéo Convertisseur, 4Videosoft HD Convertisseur, vous pouvez regarder la vi... Cliquez pour télécharger 4Videosoft HD Convertisseur
|