Retourner au contenu associé (entrée de forum : Algo en C, quel livre choisir)
Posté par coucou747 le 21 juillet 2004 à 21:48. En réponse au message Algo en C, quel livre choisir. Évalué à -1.
AltStyle によって変換されたページ (->オリジナル) / アドレス: モード: デフォルト 音声ブラウザ ルビ付き 配色反転 文字拡大 モバイル
# mon code :
Posté par coucou747 . En réponse au message Algo en C, quel livre choisir. Évalué à -1.
#include <stdlib.h>
#include <string.h>
int short fich[4000000];
unsigned long int tfile;
void remplacer(char *chaine1, char *chaine2);
void lien(char *chaine);
int main(){
FILE *fichier;
char nom[81];
unsigned long int i=0, j;
system("ls *.log");
printf("nom du fichier image :");
scanf("%80s", nom );
printf("\n---analyse du fichier---\n");
fichier = fopen( nom , "r" ) ;
if ( ! fichier ){
printf("\n---erreur d'ouverture de fichier---\n");
exit(1);
}
while(1){
fscanf(fichier, "%c", &fich[i]);
i++;
if (feof(fichier)) break;
}
printf("\n---Fin du fichier---\n");
tfile=i;
for ( j = tfile+5 ; j > 0; j-- )
fich[j]=fich[ j - 5];
tfile+=5;
if (fclose(fichier)) {
printf("\n---erreur de fermeture de fichier---\n");
exit(1);
}
remplacer("|\"LNOR", " ");
remplacer("|\"LGRA", " ");
remplacer("|\"LITA", " ");
remplacer("|\"LRED", " ");
remplacer("\n", "");
liens("http://");
printf("Nom du fichier fin :");
scanf("%80s", nom );
printf("\n");
fichier = fopen( nom , "w" ) ;
if ( ! fichier ){
printf("\n---erreur d'ouverture de fichier---\n");
exit(1);
}
for ( i=4 ; i < tfile; i++ ) {
fprintf( fichier, "%c", fich[i] );
}
if (fclose(fichier)) {
printf("\n---erreur de fermeture de fichier---\n");
exit(1);
}
exit(1);
}
void remplacer(char *chaine1, char *chaine2){
int i, j, verif, l1, l2;
l1=strlen(chaine1);
l2=strlen(chaine2);
printf("On remplace la chaine ''%s'' de %d caractères, par la chaine ''%s'' ne %d caractères.\n", chaine1, l1, chaine2, l2);
for (i=0; i<tfile;i++){
verif=0;
for (j=0; j<l1;j++){
if ( fich[i+j] == *(chaine1 + j) ){
verif++;
}
}
if (verif==l1){
for ( j = i ; j < tfile - l1; j++ )
fich[j]=fich[ j + l1];
for ( j = tfile+l2 ; j > i; j-- )
fich[j]=fich[ j - l2];
for ( j = i ; j < i + l2 ; j++ )
fich[j]=*( chaine2 + j -i);
tfile=tfile+l2-l1;
}
}
}
void liens(char *chaine){
printf("Rencherche de site\n");
int short i, j, verif, tchaine, debut, fin, l1, l2;
char *chaine2, *chaine3;
tchaine=strlen(chaine);
printf("Chaine %s de %d caractères\n", chaine, tchaine);
for (i=0; i<tfile;i++){
verif=0;
for (j=0; j<tchaine;j++){
if ( fich[i+j] == *(chaine + j) ){
verif++;
}
}
if (verif==tchaine){
printf("Site trouvé\n");
debut=1;
while(fich[i+debut]!=32 && fich[i+debut]!=13 && fich[i+debut]!=60 && fich[i+debut]!=62 ){
debut--;
}
debut++;
printf("debut de l'url au caractère :%d\n", debut);
fin=0;
while( fich[i+fin]!=32 && fich[i+fin]!=13 && fich[i+fin]!=60 && fich[i+fin]!=62 ){
fin++;
}
printf("fin de l'url au caractère :%d\n", fin);
printf("taille de l'url :%d\n", fin-debut);
chaine2 = (char *)malloc((fin-debut)*sizeof(char)+1);
chaine3 = (char *)malloc((2*(fin-debut)+17)*sizeof(char)+1);
for (j=0;j<fin-debut;j++){
*(chaine2+j)=fich[i+debut+j];
*(chaine3+j+9)=fich[i+debut+j];
*(chaine3+j+11+fin-debut)=fich[i+debut+j];
}
printf("%s\n", chaine2);
*( chaine3 ) = 60 ;
*( chaine3 + 1 ) = 97 ;
*( chaine3 + 2 ) = 32 ;
*( chaine3 + 3 ) = 104 ;
*( chaine3 + 4 ) = 114 ;
*( chaine3 + 5 ) = 101 ;
*( chaine3 + 6 ) = 102 ;
*( chaine3 + 7 ) = 61 ;
*( chaine3 + 8 ) = 34 ;
*( chaine3 + 9 + fin - debut ) = 34 ;
*( chaine3 + 10 + fin - debut ) = 62 ;
*( chaine3 + 11 + ( fin - debut ) * 2 ) = 60 ;
*( chaine3 + 12 + ( fin - debut ) * 2 ) = 47 ;
*( chaine3 + 13 + ( fin - debut ) * 2 ) = 97 ;
*( chaine3 + 14 + ( fin - debut ) * 2 ) = 62 ;
*( chaine3 + 15 + ( fin - debut ) * 2 ) = 32 ;
*( chaine3 + 16 + ( fin - debut ) * 2 ) = 0 ;
*( chaine3 + 17 + ( fin - debut ) * 2 ) = 0 ;
printf("%s\n", chaine3);
l1=1+(fin-debut);
l2=17+(fin-debut)*2;
printf("%d %d", l2, strlen(chaine3));
for ( j = i + debut; j < tfile - l1+1; j++ )
fich[j]=fich[ j + l1-1];
for ( j = tfile+l2 ; j > i+debut; j-- )
fich[j]=fich[ j - l2];
for ( j = 0; j < l2; j++ )
fich[j+i+debut]=*( chaine3 + j);
tfile=tfile+l2-l1;
i=i+l2+1;
}
}
}