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
[TECHDAYS2012] OUI J'Y SERAI![TECHDAYS2012] OUI J'Y SERAI! par JeremyJeanson
Bonsoir, Certes, je l'annonce avec un peu de retard, mais je serai effectivement au Techdays demain. Comme l'an dernier, je participerai au programme ATE (Ask The Expert). Si vous avez des questions Workflow, WCF, AppFabric ou plus généralement .net, n'hé...
Cliquez pour lire la suite de l'article par JeremyJeanson TFS INTEGRATION TOOLS - SUIVI DES SYNCHRONISATIONS AVEC REPORTING SERVICESTFS INTEGRATION TOOLS - SUIVI DES SYNCHRONISATIONS AVEC REPORTING SERVICES par vfabing
Afin de s'assurer du bon fonctionnement des différentes synchronisations effectuées par les TFS Integration Tools, 2 rapports sont présents dès l'installation. Il suffit alors d'effectuer les manipulations suivantes pour pouvoir les visualiser : Loca...
Cliquez pour lire la suite de l'article par vfabing CSS CONTENT STATE SELECTORS (PERSONNAL DRAFT)CSS CONTENT STATE SELECTORS (PERSONNAL DRAFT) par FREMYCOMPANY
Bonjour à tous, Je viens de publier une proposition comprenant 5 pseudo-classes pour le CSS Working Group ayant trait à l'état de chargement d'un élément (ex: IMG,VIDEO,AUDIO,OBJECT pour l'HTML.). Si le c½ur vous en dit, vous pouvez retrouver cette p...
Cliquez pour lire la suite de l'article par FREMYCOMPANY MBA : POURQUOI FAIRE ET COMMENT LE CHOISIR ?MBA : POURQUOI FAIRE ET COMMENT LE CHOISIR ? par ROMELARD Fabrice
Formation initiale Durant la formation, le découpage classique est le suivant (je donnerai les équivalences Suisse lorsque je les connaîtrais) : Ecole primaire jusqu'au Collège : Formation générale permettant d'obtenir les méthodes...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice Y'A DES ERREURS QUI PEUVENT RENDRE LE DéVELOPPEUR VIOLENTY'A DES ERREURS QUI PEUVENT RENDRE LE DéVELOPPEUR VIOLENT par Aleks
Quand on a ce genre d'erreur sans log :
Et bas on a juste envie de choper le gas de Microsoft qu'a développé ça et lui foutre des baffes de Coboye ! ...
Cliquez pour lire la suite de l'article par Aleks
Forum
RE : ARBRE BINAIRERE : ARBRE BINAIRE par pacotheking
Cliquez pour lire la suite par pacotheking
Logiciels
Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning COLLECTOR PLUS (3.00B)COLLECTOR PLUS (3.00B)COLLECTOR PLUS version 3.00B est un logiciel utilisant une base de données alimentée par :
- L... Cliquez pour télécharger COLLECTOR PLUS PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO LettresFaciles 2011 (8.0.0.1)LETTRESFACILES 2011 (8.0.0.1)LettresFaciles est un logiciel facilitant la création et la rédaction de lettres types.
Son inte... Cliquez pour télécharger LettresFaciles 2011
|