Dsy Network www | forum | my | didattica | howto | wiki | el goog | stats | blog | dona | rappresentanti
Homepage
 Register   Calendar   Members  Faq   Search  Logout 
.dsy:it. : Powered by vBulletin version 2.3.1 .dsy:it. > Community > Forum De Bell Tolls > [INFORMATICA] conteggio stringhe ripetute (C)
Pages (2): « 1 [2]   Last Thread   Next Thread
Author
Thread    Expand all | Contract all    Post New Thread    Post A Reply
Collapse
Flyzone
.coltellino:svizzero.

User info:
Registered: Jan 2003
Posts: 1956 (0.24 al dì)
Location:
Corso:
Anno:
Time Online: 19 Days, 22:20:19 [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged

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 :)

29-01-2004 19:21
Click Here to See the Profile for Flyzone Click Here to See the Blog of Flyzone Click here to Send Flyzone a Private Message Find more posts by Flyzone Add Flyzone to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
Collapse
DeepBlue
tired guy

User info:
Registered: Sep 2003
Posts: 4258 (0.54 al dì)
Location: CSN
Corso: Info tlc
Anno:
Time Online: 52 Days, 8:40:31 [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged

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! ~

29-01-2004 20:20
Click Here to See the Profile for DeepBlue Click Here to See the Blog of DeepBlue Click here to Send DeepBlue a Private Message Find more posts by DeepBlue Add DeepBlue to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
Collapse
DeepBlue
tired guy

User info:
Registered: Sep 2003
Posts: 4258 (0.54 al dì)
Location: CSN
Corso: Info tlc
Anno:
Time Online: 52 Days, 8:40:31 [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged

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! ~

29-01-2004 20:22
Click Here to See the Profile for DeepBlue Click Here to See the Blog of DeepBlue Click here to Send DeepBlue a Private Message Find more posts by DeepBlue Add DeepBlue to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
Collapse
Flyzone
.coltellino:svizzero.

User info:
Registered: Jan 2003
Posts: 1956 (0.24 al dì)
Location:
Corso:
Anno:
Time Online: 19 Days, 22:20:19 [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged

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

29-01-2004 23:18
Click Here to See the Profile for Flyzone Click Here to See the Blog of Flyzone Click here to Send Flyzone a Private Message Find more posts by Flyzone Add Flyzone to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
Collapse
DeepBlue
tired guy

User info:
Registered: Sep 2003
Posts: 4258 (0.54 al dì)
Location: CSN
Corso: Info tlc
Anno:
Time Online: 52 Days, 8:40:31 [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged

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! ~

29-01-2004 23:21
Click Here to See the Profile for DeepBlue Click Here to See the Blog of DeepBlue Click here to Send DeepBlue a Private Message Find more posts by DeepBlue Add DeepBlue to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
Collapse
DeepBlue
tired guy

User info:
Registered: Sep 2003
Posts: 4258 (0.54 al dì)
Location: CSN
Corso: Info tlc
Anno:
Time Online: 52 Days, 8:40:31 [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged

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! ~

Last edited by DeepBlue on 30-01-2004 at 13:06

30-01-2004 13:03
Click Here to See the Profile for DeepBlue Click Here to See the Blog of DeepBlue Click here to Send DeepBlue a Private Message Find more posts by DeepBlue Add DeepBlue to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
All times are GMT. The time now is 17:57.    Post New Thread    Post A Reply
Pages (2): « 1 [2]   Last Thread   Next Thread
Show Printable Version | Email this Page | Subscribe to this Thread | Add to Bookmarks

Forum Jump:
Rate This Thread:

Forum Rules:
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
HTML code is OFF
vB code is ON
Smilies are ON
[IMG] code is ON
 

Powered by: vBulletin v2.3.1 - Copyright ©2000 - 2002, Jelsoft Enterprises Limited
Mantained by dsy crew (email) | Collabora con noi | Segnalaci un bug | Archive | Regolamento | Licenze | Thanks | Syndacate
Pagina generata in 0.072 seconds (63.50% PHP - 36.50% MySQL) con 25 query.