Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - Utilizzo calloc e realloc...
Forum - C/C++ - Utilizzo calloc e realloc... - Pagina 3

Pagine: [ 1 2 3 4 ] Precedente | Prossimo
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 22:00
Martedì, 29/07/2008
ma allora come posso generare la lista dei file???

PM Quote
Avatar
gantonio (Normal User)
Guru^2


Messaggi: 1532
Iscritto: 09/09/2007

Segnala al moderatore
Postato alle 22:18
Martedì, 29/07/2008
E cosa c'entrava il togliere i 3 caratteri finali con la lista dei file?

La lista dei file la ottieni - te lo ripeto - creando una "lista semplice" (linked list) e aggiungendo un elemento man mano che i file vengono trovati.

PM Quote
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 23:14
Martedì, 29/07/2008
io li volevo togliere perchè:
Codice sorgente - presumibilmente Plain Text

  1. strcpy(pf, p);
  2.   strcat(pf, "\\*.*");


questo codice fa si che se p è uguale a "C:" pf sarà uguale a "C:\\*.*", quindi volevo togliere *.* per sostituirlo con il nome del file in modo da avere un percorso corretto.
Forse però potrei ottenere il percorso anche scriendo questo quando è stato trovato un file:
Codice sorgente - presumibilmente Plain Text

  1. strcpy(tlist, p);
  2. strcat(tlist, "\\");
  3. strcat(tlist, fd.cFileName)
  4. codice per generare la lista


dici che funzionerà(a me sembra di si!!!)???
tra l'altro sulla mia guida (guida completa al c++ 4°edizione di Herbert Schildt) di dovrebbe essere qualcosa!!! domani provo ciao!:k:

PM Quote
Avatar
gantonio (Normal User)
Guru^2


Messaggi: 1532
Iscritto: 09/09/2007

Segnala al moderatore
Postato alle 8:21
Mercoledì, 30/07/2008
Beh ... mi fa piacere che ci sei arrivato ...

Nelle prime righe, la maschera *.* serve alla FindFirstFile per sapere quali file deve trovare.
Quello NON e' il file trovato ma il file DA TROVARE e quindi NON ti serve.

Quello che ti serve e' - come hai detto - il file mentre viene trovato in quanto, all'interno del ciclo, lo inserisci cosi' com'e', nella tua lista SENZA togliere nulla.

Ok?

Ultima modifica effettuata da gantonio il 30/07/2008 alle 8:21
PM Quote
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 10:22
Mercoledì, 30/07/2008
ok mi metto all'opera!!!

PM Quote
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 10:46
Mercoledì, 30/07/2008
ciao,
coi puntatori non ci so fare + di tanto (lo li studierò ma vorrei il programma pronto per fine mattina!!!)... non so se in questo codice l'errore è di visualizzazione o di assegnamento alla list (ti ho segnato i 2 punti con possibili errori):
Codice sorgente - presumibilmente C++

  1. #include <iostream.h>
  2. #include <stdio.h>
  3. #include <windows.h>
  4. #include <list>
  5. #include <cstdlib>
  6. using namespace std;
  7.  
  8. list<char> lista;
  9.  
  10. void search(char *p)
  11. {
  12.   WIN32_FIND_DATA fd;
  13.  
  14.   int dim;
  15.   char tlist[MAX_PATH];
  16.   char pf[MAX_PATH];
  17.   strcpy(pf, p);
  18.   strcat(pf, "\\*.*");
  19.  
  20.  
  21.   HANDLE h = FindFirstFile(pf, &fd);
  22.   if (h != INVALID_HANDLE_VALUE)
  23.   {
  24.     do
  25.     {
  26.       if( strcmp(fd.cFileName, ".") && strcmp(fd.cFileName, ".."))
  27.       {
  28.         if(fd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
  29.         {
  30.           printf ("[%s]\n", fd.cFileName);
  31.  
  32.           char pf[MAX_PATH];
  33.           strcpy(pf, p);
  34.           strcat(pf, "\\");
  35.           strcat(pf, fd.cFileName);
  36.  
  37.           search(pf);
  38.         }
  39.         else
  40.         {
  41.           printf ("\t%s\n", fd.cFileName);
  42.           strcpy(tlist, p);
  43.           strcat(tlist, "\\");
  44.           strcat(tlist, fd.cFileName);
  45.           lista.push_back(*tlist);/*possibile errore (penso sia questo)*/
  46.         }
  47.       }
  48.     } while (FindNextFile(h, &fd));
  49.  
  50.     FindClose(h);
  51.   }
  52.   else
  53.     printf("Errore %d\n", GetLastError ());
  54. }
  55.  
  56. int main()
  57. {
  58.   char percorso[MAX_PATH];
  59.  
  60.  
  61.   cout<<"Inserire il percorso in effettuare la ricerca:  ";
  62.   cin>>percorso;
  63.  
  64.   search(percorso);
  65.  
  66.   cout<<endl<<endl<<endl;
  67.  
  68.   //possibile errore di visualizzazione
  69.   list<char>::iterator a = lista.begin();
  70.   while(a != lista.end())
  71.   {
  72.         cout<<*a<<endl;
  73.         a++;
  74.   }
  75.  
  76.   system("pause");
  77. }


ciao grazie:k:

Ultima modifica effettuata da il 30/07/2008 alle 10:51
PM Quote
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 11:24
Mercoledì, 30/07/2008
ps: se non hai tempo per correggerlo momentaneamente dimmi dov'è l'errore!!!
please

PM Quote
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 19:55
Giovedì, 31/07/2008
heilà antonio??? mi abbandoni alla fine???

PM Quote
Pagine: [ 1 2 3 4 ] Precedente | Prossimo