Salve, Vi chiedo aiuto per poter risolvere un problema:
Ho in una dir una serie di file all'interno dei quali vi sono le informazioni che mi servono.
Io riesco a scegliere i file da leggere e a scrivere le informazioni (data aaaammgg, e n. file xxx) richieste in un altro file ma quello che non riesco proprio a fare è scrivere nel file la sola data e n. file + nuova.
Mi spiego meglio il numero file arriva a 099 e poi riparte da 001, se prendo in considerazione il valore + alto, quando ho 5 file dal 097 allo 002 mi dà come risultato il 099 anzichè il 002 quindi la data mi può aiutare, dovrei stabilire quale numero file è il più nuovo.
Per favore aiutatemi a trovare una soluzione...
Grazie anticipatamente.
I file in dir sono diversi, io considero solo quelli nominati "aggbd0", all'interno dei quali (tutti con lo stesso tracciato e la stessa informazione su ogni riga [n. righe indefinito]) l'info richiesta è dalla pos 629 - 640 \nCodice:#include <dirent.h> #include <iostream> #include <string.h> using namespace std; main () { FILE *fo,*fi; string path; DIR* d; char buf[20]; d = opendir(path.c_str()); dirent* f; fo = fopen("ag.txt", "w"); if (fo == NULL) { printf("Errore aprendo il file 'fo'\n","ag.txt"); exit(0); } while (f = readdir(d)) { strncpy(buf,f->d_name,20); if (!strncmp(buf, "aggbd0", 6)) { char appo[20]= ""; char app1[650]= ""; fi = fopen(buf, "r"); if (fi == NULL) { printf("Errore aprendo il file 'fi'\n","ag.txt"); exit(0); } fgets(app1,641,fi); strncpy(appo,app1+629,11); fclose(fi); fprintf(fo,"%s\n",appo); }} fclose(fo); }
Il tracciato tipo (prima riga):
xxxxxxxxxx19 114171 xxxxTxxxxxIExxxx xxxxxG xxL 20090105800000522800002700200701318000005131000026 5020011231800000503400002600 000000000000000000000000 0000000000000000000000000309 00000000 00000000Y00000000 B03BA0193180990000000000000000000S 0000000019960714199607153 C 00000000 00000000 00000000 00000000B 00000000 00000000 00000000 E 0 0606 1066601011 00000000 000000000000000 000000000000000 000000000000000 10110011578000000000000000000000000 20091005048
Grazie.
l.V.
P.S.: compilo con borland bcc32 ver. 5.5.1.1



Rispondi Citando







