.dsy:it. Pages (2): « 1 [2]
Show 150 posts per page

.dsy:it. (http://www.dsy.it/forum/)
- Forum De Bell Tolls (http://www.dsy.it/forum/forumdisplay.php?forumid=7)
-- [INFORMATICA] conteggio stringhe ripetute (C) (http://www.dsy.it/forum/showthread.php?threadid=8361)


Posted by Flyzone on 29-01-2004 19:21:

Originally posted by DeepBlue
Cmq con fgets e fseek, con un paio di cicli forse la cosa si risolve. Forse...

un paio? :eek: prego inizia tu!! (non credo proprio che quello che ho scritto sia un paio :D )


Ma perche` non vuoi usare i puntatori? Sono specifiche di progetto (naaaa) o ti inorridiscono? :rolleyes:

La prima che hai detto: specifiche di progetto :roll:
(Della serie: il capo - per niente programmatore - ha in mano un libro proibito :roll: )
Però se ci pensi è meglio così: faccio ovviamente più fatica, ma si impara di più, sotto sotto mi piace :)


Posted by DeepBlue on 29-01-2004 20:20:

Originally posted by Gwath
Beh ma nei confronti è molto più veloce e poi ha i record già salvati...


Su file molto grossi rende di più una hash table, ne convengo.
Il problema è che non può usare i puntatori, quindi la vedo dura

__________________
~ get Debian! ~ get FreeBSD! ~ get OpenBSD! ~


Posted by DeepBlue on 29-01-2004 20:22:

Originally posted by Flyzone
un paio? :eek: prego inizia tu!! (non credo proprio che quello che ho scritto sia un paio :D )

Ehm... :P
Dai vedo cosa riesco a scrivere e poi ti faccio sapere :P


La prima che hai detto: specifiche di progetto :roll:
(Della serie: il capo - per niente programmatore - ha in mano un libro proibito :roll: )

Argh! non invidio la tua posizione! Ma cercare di fargli capire i vantaggi anche a runtime che si possono ricavare dall'uso dei puntatori? Fiato sprecato immagino :(

__________________
~ get Debian! ~ get FreeBSD! ~ get OpenBSD! ~


Posted by Flyzone on 29-01-2004 23:18:

Originally posted by DeepBlue
Fiato sprecato immagino :(

Off-Topic:
psssssssssss se ti dico che vengo pagato a ore... e tanto, dici che conviene sprecare fiato? :D


Posted by DeepBlue on 29-01-2004 23:21:

Originally posted by Flyzone
Off-Topic:
psssssssssss se ti dico che vengo pagato a ore... e tanto, dici che conviene sprecare fiato? :D


Ti dico: dov'è che lavori? :D

__________________
~ get Debian! ~ get FreeBSD! ~ get OpenBSD! ~


Posted by DeepBlue on 30-01-2004 13:03:

Ho sfornato una prima versione del programmino.
Ho utilizzato i puntatori pero`, ma magari trai spunto o convinci il tuo capo :P
Volendo il programma si potrebbe ottimizzare ancora un o', vedi tu :)

Se non si legge qui sotto, vai qui

#include <stdio.h>

int main (int argc, char *argv[]){

FILE *fp;
int i=0, z=0, occorrenza=0;
char *stringa;
int dimensione;
char *buffer;
char *posizione;
char loc_buffer[40]={0};
char ch;

if (argc < 2) {
printf("\nParametro mancante. Usare 'cerca parola_da_cercare'\n");
exit(0);
}

stringa=argv[1]; // assegno a stringa la parola da cercare
dimensione=strlen(stringa); // dimensione della parola

if ((fp=fopen("testo.txt","r"))== NULL){
printf("\nIl file non esiste o e` gia` in uso\n");
exit(0);
}
while (fgetc(fp) != EOF) { // conto i caratteri presenti nel testo
i++;
}

printf("\nSalvataggio buffer");
buffer=(char *)malloc(sizeof(char) * (i+1)); // alloco lo spazio per il buffer
fseek(fp, 0, 0); // mi riposiziono all'inizio del file
i=0;
while ((ch = fgetc(fp)) != EOF) { // carico il buffer
buffer[i]=ch;
i++;
}
printf("\nBuffer salvato, inizio controllo");
for( ; z<=i; z++){ // leggo il contenuto del file
if(buffer[z]==stringa[0]){ // confronto il primo carattere della stringa con i char letti
posizione=&buffer[z]; // salvo la posizione del buffer
strncpy(loc_buffer,posizione,strlen(stringa));
// copio N caratteri su un buffer locale x non sporcare l'altro
if (strcmp(loc_buffer, stringa)==0){ // se trovo la stringa incremento il contatore
occorrenza++;
} // if strcmp
} // il confronto
} // ciclo for

fclose(fp);
free((void *) buffer); // libero la memoria
printf("\nSono state trovate %d occorrenze per la parola %s\n", occorrenza, stringa);

return 0;


}

__________________
~ get Debian! ~ get FreeBSD! ~ get OpenBSD! ~


All times are GMT. The time now is 06:56. Pages (2): « 1 [2]
Show all 21 posts from this thread on one page

Powered by: vBulletin Version 2.3.1
Copyright © Jelsoft Enterprises Limited 2000 - 2002.