|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#21 |
|
Member
Iscritto dal: Sep 2001
Città: pisa
Messaggi: 70
|
Ultima domanda:
Codice:
struct dati
{
int codice;
char cognome[40];
char nome[40];
char cfs[17]; /*per il codice fiscale*/
char ddn[11]; /*per la data di nascita*/
} anagraf[100];
Si accede alla struttura così: anagraf[1].codice; anagraf[1].cognome[1]; ecc. domanda precedente: Questo algoritmo cerca una stringa (pattern) all'interno di un altra stringa (buffer): Codice:
for (i=0,j=0; j<strlen(pattern) && i<strlen(buffer); i++,j++)
while (buffer[i] != pattern[j]){
i -= j-1;
j = 0;}
if (j == strlen(pattern)) return (i-strlen(pattern))+1;
else return -1;
domanda precedente: int main(int argc, char *argv[]) /*non ho ben chiaro perchè dev'essere così*/ argc e argv[] servono per inserire argomenti dalla riga di comando Se il programma si chiama raoul..... ed esegui : raoul.exe ara arb arc argc contiene il numero di argomenti: 4 [raoul.exe, ara, arb, arc] argv contiene gli argomenti: argv[1] è la stringa "raoul.exe" argv[2] è la stringa "ara" argv[argc-1] è la stringa "arc" ecc... in effetti non mi pare che nel programma utilizzi argomenti da riga di comando quindi potresti utilizzare: int main(){ ......... |
|
|
|
|
|
#22 |
|
Senior Member
Iscritto dal: Sep 2004
Messaggi: 3967
|
Ragazzi, davvero un enorme grazie a tutti
So che non serve a niente, ma davvero vi sono grato
|
|
|
|
|
|
#23 | |
|
Senior Member
Iscritto dal: Sep 2004
Messaggi: 3967
|
Quote:
Ho provato ad integrarlo nel codice, ma senza risultato. In che modo potrei adattarlo per la ricerca su di un file? Thx. RaouL.
__________________
Dai wafer di silicio nasce: LoHacker... il primo biscotto Geek
|
|
|
|
|
|
|
#24 |
|
Member
Iscritto dal: Sep 2001
Città: pisa
Messaggi: 70
|
Codice:
int sottostringa(char pattern[],char filename[]){
/* EFFECTS: Ricerca pattern all'interno del file filename
int fd, i, j;
struct stat info; //struttura per le informazione sui file
open(filename,O_RDONLY); // apre il file
stat(filename, &info) // legge le info sul file
int size = info.st_size; // size prende la dimensione del file
char buffer[size];
// metti in buffer tutto il contenuto del file
read(fd,buffer,size);
for (i=0,j=0; j<strlen(pattern) && i<strlen(buffer); i++,j++)
while (buffer[i] != pattern[j]){
i -= j-1;
j = 0;}
if (j == strlen(pattern)) return (i-strlen(pattern))+1;
else return -1;
}
se la stringa "ciao" è nel file restituisce la posizione altrimenti -1 Attenzione al fatto che non si controlla l'esito delle chiamate open(filename,O_RDONLY); stat(filename, &info); Le quali restituiscono -1 in caso di insuccesso in oltre read(fd,buffer,size); riempie il contenuto di una variabile con quello di un intero file. Per un esempio va bene ma attenzione alla dimensione del file. Ci sono tanti altri modi per realizzare funzioni simili |
|
|
|
|
|
#25 | |
|
Senior Member
Iscritto dal: Sep 2004
Messaggi: 3967
|
Quote:
__________________
Dai wafer di silicio nasce: LoHacker... il primo biscotto Geek
|
|
|
|
|
|
|
#26 |
|
Senior Member
Iscritto dal: Sep 2004
Messaggi: 3967
|
Rieccomi
Mi era venuta solo un'altra malsana idea ![]() Se il file di prova sul quale scrivo i dati, si trovasse su una periferica esterna, tipo su un dispositivo seriale, cosa dovrei studiarmi per farlo lavorare da li? Thx. RaouL.
__________________
Dai wafer di silicio nasce: LoHacker... il primo biscotto Geek
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 09:35.




















