Vi PAGO se mi aiutate! Sono disperato !

di il
1 risposte

Vi PAGO se mi aiutate! Sono disperato !

Ciao amico del forum!
Ho urgentemente bisogno del tuo aiuto , e se me lo darai prima di tutti gli altri e correttamente ti farò una generosa donazione a mezzo vaglia postale .
Sono disperato . Aiutami !

Tempo fa un mio amico mi aveva scritto un programma in C , che mi serviva per l’università . Serviva a leggere indirizzi e-mail da una pagina web per poi copiarli su un testo .

Il programma però leggeva anche le stringhe

lunghe N caratteri prima di un carattere X e M caratteri dopo di questo . Io all’università faccio java e non conosco il C -

Ora io ti spedisco il programma e ti chiedo molto umilmente se me lo puoi modificare in modo che in pratica



apre un file da un elenco di file con il percorso ( index.txt )

legge e cerca da ogni file una stringa fatta in questo modo ( in pratica un indirizzo e-mail del tipo mailto: )

cioè



mailto: (inizia così)

@ ( ha questo carattere centrale )

.com ( finisce così altro alla fine ) .



e lo trascrive su un file di testo



In pratica da un elenco di pagine web devo trascrivere gli indirizzi e-mail ivi



contenuti su un file di testo .



Ti prego di farmi avere il programma al più presto possibile ( se possibile oggi stesso )

perchè mi serve urgentemente per l'università .



Inviamelo su .

Ti ringrazio veramente di cuore .
Per favore aiutami , sono disperato .



Per favore testa il programma . Grazie

Ciao e grazie di nuovo .



Il programma e’ questo.



#include <stdio.h>

#include <stdlib.h>

#include <string.h>



#define CHS "@"

#define STREND ".com"

#define IFILE "index.txt"

#define STRIN "mailto:"

#define N 20

#define M 20

#define OFILE "out.txt"





int str_fine_c_for(const char *dest_str, const char *orig_str) {



int co=strlen(orig_str);

int cx=strlen(dest_str);

if (co>cx) return 0;

while (--co>=0) {

if (orig_str[co]!=dest_str[--cx]) return 0;

}

return 1;

}



int str_fine_c_rev(const char *dest_str, const char *orig_str) {



int co=strlen(orig_str);

int cd=0;

int cx=strlen(dest_str);

if ((co)>(strlen(dest_str))) return 0;

while (cd<co) {

if (orig_str[cd++]!=dest_str[--cx]) return 0;

}

return 1;

}



char *Copia_Indietro(FILE *sorgente, int num_char, const char *str_fine, const char *str_inizio) {

static char *risult;

char *risultato = calloc(num_char+1,sizeof(char));



int cont=0;

risult= risultato;





fseek(sorgente,strlen(str_inizio)-2*sizeof(char),SEEK_CUR);

fread(&risultato[cont],sizeof(char),1,sorgente);



risultato[cont+1]='\0';

while (++cont<num_char && ftell(sorgente)>=2 && str_fine_c_rev(risultato,str_fine)==0) {

fseek(sorgente,-2*sizeof(char),SEEK_CUR);

fread(&risultato[cont],sizeof(char),1,sorgente);

risultato[cont+1]='\0';

}

return risult;

}



char *Copia_Avanti(FILE *sorgente,int num_char, const char *str_fine) {

static char *risult;

char *risultato = calloc(num_char+1,sizeof(char));



int cont=-1;

risult= risultato;

fseek(sorgente,-1*sizeof(char),SEEK_CUR);

risultato[0]='\0';

while (++cont<num_char && feof(sorgente)==0 && str_fine_c_for(risultato,str_fine)==0) {

fread(&risultato[cont],sizeof(char),1,sorgente);

risultato[cont+1]='\0';

}

return risult;

}



int Trova_Stringa(FILE *origine,const char *da_trovare) {

char a='\0';

long int curs;

while (feof(origine)==0) {

fread(&a,sizeof(char),1,origine);

if (da_trovare[0]==a) {

int cx;

char *temporanea;

curs=ftell(origine);









temporanea=calloc(strlen(da_trovare)+1,sizeof(char));



temporanea[0]=a;





for (cx=1;cx<strlen(da_trovare);cx++) {

fread(&temporanea[cx],sizeof(char),1,origine);

temporanea[cx+1]='\0';

if (feof(origine)!=0) break;

}

temporanea[cx+1]='\0';

fseek(origine,curs,SEEK_SET);

if (str_fine_c_for(temporanea,da_trovare)==1) return 1;

}

}

return 0;

}



int Scrivi_Stringa(FILE *Origine,FILE *Destinazione) {

long int cur_pos=ftell(Origine);

char *prima=Copia_Indietro(Origine,M,STRIN,CHS);

char *dopo=Copia_Avanti(Origine,N,STREND);

clearerr(Origine);

fseek(Origine,cur_pos,SEEK_SET);



fprintf(Destinazione,"%s\n%s\n",prima,dopo);

return 1;

}









FILE *lettura;

FILE *Outfile;



main() {

FILE *Lista=fopen(IFILE,"r");

if (Lista==NULL) exit(EXIT_FAILURE);



Outfile=fopen("out.txt","w");









while (feof(Lista)==0) {

char tmp_path[500]="\0";

fscanf(Lista," %s",&tmp_path);

lettura=fopen(tmp_path,"r");

if (lettura!=NULL) {

int r=Trova_Stringa(lettura,CHS);

if (r==1) Scrivi_Stringa(lettura,Outfile);

fclose(lettura);



} else fprintf(stderr,"Impossibile aprire %s\n",tmp_path);

}

fclose(Outfile);

}

1 Risposte

  • Re: Vi PAGO se mi aiutate! Sono disperato !

    Precisavo.Se qualche mal pensante ha pensato male , questo è parte di una tesina universitaria sugli algoritmi di ricerca , non un progetto di spammer . Grazie .
Devi accedere o registrarti per scrivere nel forum
1 risposte