1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57
| void carSuiv(){
if(tampon[enAvant]==EOF){
if(enAvant==STN1){
charger2();
enAvant++;
c=tampon[enAvant++];
}
else if(enAvant==STN2){
charger1();
enAvant=0;
c=tampon[enAvant++];
}
else{
c=tampon[enAvant];
//fin du fichier atteint
}
}
else
c=tampon[enAvant++];
}
void reculer(){
if(enAvant==0)
if(ftell(source)>=STN1){
fseek(source,-STN1-derniers,SEEK_CUR);
derniers=0;
charger2();
fseek(source,-STN1,SEEK_CUR);
enAvant=STN2-1;
}
else{
//début du fichier atteint
enAvant=1;
}
else if(enAvant==STN1+1){
fseek(source,-STN1-derniers,SEEK_CUR);
derniers=0;
charger1();
fseek(source,-STN1,SEEK_CUR);
enAvant--;
}
enAvant--;
}
void charger1(){
derniers=fread(tampon,1,STN1,source);
tampon[derniers]=EOF;
if(derniers==STN1)
derniers=0;
}
void charger2(){
derniers=fread(tampon+STN1+1,1,STN1,source);
tampon[derniers+STN1+1]=EOF;
if(derniers==STN1)
derniers=0;
} |