Ĺadny brzuch
Siemka mam jeszcze jeden problem a mianowicie musze napisac programik do wyszukiwania plikow :( wie ktos moze jak sie tego czepic :D:D:D
Może być winapi?#include <stdio.h> #include <stdlib.h> #include <string> #include <windows.h> using namespace std; string p; WIN32_FIND_DATA wd; int c=0; void szukaj(char* sciezka, char* fn) { p = sciezka+(string)"\\*.*"; void* f = FindFirstFile(p.c_str(),&wd); bool b = true; if (!f) b = false; while (b) { b = FindNextFile(f,&wd); if (wd.cFileName[0]!='.') { if (wd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) szukaj((char*)(sciezka+(string)"\\"+wd.cFileName) .c_str(),fn); if (!strcmp(wd.cFileName,fn)) { printf("Znaleziono plik w: %s\n",sciezka); c++; } } } } int main() { char* f = new char[256]; printf("Podaj nazwe pliku do znalezienia: "); scanf("%s",f); char path[] = "a:"; for (int i=0; i<26; i++) { if (GetDriveType(path)==DRIVE_FIXED) szukaj(path,f); path[0]++; } if (!c) printf("Nie znaleziono pliku\n"); else printf("Znaleziono plikow: %d\n",c); system("pause"); }
//down:
pętlą
w ogóle
Użytkownik Cyrkiel edytował ten post 12 czerwiec 2006, 18:59
Ale gdzie on ma tego szukać? Jeśli pliku w jakimś katalogu to musisz otworzyć ten katalog a potem jakąś pentlą porównać nazwy plików z szukaną nazwą. Pisałem kedyś coś podobnego, niestety nie napisałem :( idzie się zgubić jak musisz cały dysk przeszukać i wogule.
moze nie wiem ja dopiero zaczynam to pisac zastanawia mnie zawsze jedno dlaczego ludzie myla biblioteki od C z bibliotekami C++ dobra :) ja juz sobie biblioteki po zmieniam na c++. Dzieki :D :D :D aaa i ztego co widze to tutaj using namespace std; jest zbedne bo nie ma cout ani cin :P
Użytkownik inf16 edytował ten post 12 czerwiec 2006, 21:09
aaa i ztego co widze to tutaj using namespace std; jest zbedne bo nie ma cout ani cin :P Ale jest string :D :D :D :D
Użytkownik Cyrkiel edytował ten post 12 czerwiec 2006, 21:17
Hmm, pozatym już kiedyś napisałem coś podobnego bez użycia WiaAPI i jest w FAQ.
BTW: Cyrkiel - masz oryginalne metody przechowywania danych w C++ - raz char innym razem string i znów rzutowanie na char...
BTW: Cyrkiel - masz oryginalne metody przechowywania danych w C++ - raz char innym razem string i znów rzutowanie na char... Nie miałem pomysłu, jak inaczej możnaby to zrobić, a w c++ piszę rzadko ;)
zanotowane.pl doc.pisz.pl pdf.pisz.pl zsf.htw.pl
Może być winapi?#include <stdio.h> #include <stdlib.h> #include <string> #include <windows.h> using namespace std; string p; WIN32_FIND_DATA wd; int c=0; void szukaj(char* sciezka, char* fn) { p = sciezka+(string)"\\*.*"; void* f = FindFirstFile(p.c_str(),&wd); bool b = true; if (!f) b = false; while (b) { b = FindNextFile(f,&wd); if (wd.cFileName[0]!='.') { if (wd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) szukaj((char*)(sciezka+(string)"\\"+wd.cFileName) .c_str(),fn); if (!strcmp(wd.cFileName,fn)) { printf("Znaleziono plik w: %s\n",sciezka); c++; } } } } int main() { char* f = new char[256]; printf("Podaj nazwe pliku do znalezienia: "); scanf("%s",f); char path[] = "a:"; for (int i=0; i<26; i++) { if (GetDriveType(path)==DRIVE_FIXED) szukaj(path,f); path[0]++; } if (!c) printf("Nie znaleziono pliku\n"); else printf("Znaleziono plikow: %d\n",c); system("pause"); }
//down:
pętlą
w ogóle
Użytkownik Cyrkiel edytował ten post 12 czerwiec 2006, 18:59
Ale gdzie on ma tego szukać? Jeśli pliku w jakimś katalogu to musisz otworzyć ten katalog a potem jakąś pentlą porównać nazwy plików z szukaną nazwą. Pisałem kedyś coś podobnego, niestety nie napisałem :( idzie się zgubić jak musisz cały dysk przeszukać i wogule.
moze nie wiem ja dopiero zaczynam to pisac zastanawia mnie zawsze jedno dlaczego ludzie myla biblioteki od C z bibliotekami C++ dobra :) ja juz sobie biblioteki po zmieniam na c++. Dzieki :D :D :D aaa i ztego co widze to tutaj using namespace std; jest zbedne bo nie ma cout ani cin :P
Użytkownik inf16 edytował ten post 12 czerwiec 2006, 21:09
aaa i ztego co widze to tutaj using namespace std; jest zbedne bo nie ma cout ani cin :P Ale jest string :D :D :D :D
Użytkownik Cyrkiel edytował ten post 12 czerwiec 2006, 21:17
Hmm, pozatym już kiedyś napisałem coś podobnego bez użycia WiaAPI i jest w FAQ.
BTW: Cyrkiel - masz oryginalne metody przechowywania danych w C++ - raz char innym razem string i znów rzutowanie na char...
BTW: Cyrkiel - masz oryginalne metody przechowywania danych w C++ - raz char innym razem string i znów rzutowanie na char... Nie miałem pomysłu, jak inaczej możnaby to zrobić, a w c++ piszę rzadko ;)