Wie kann man "Suchen"?
-
Jo erstmal ein krfätiges "Moin!" von mir in die Runde!
Ich benutze den Bloodshed C++ Compiler und möchte gerne wie mit der Windows suche suchen...
Leider weiß ich nicht wie - hab bis jetzt nur Mathe Progs geschrieben...
Gegoogled und hier die Suchefunktion hab ich schon benutzt.
Ich möchte nur bestimmte verzeichnisse durchsuchen (das programm soll für meine mutter sein!) und zwar nach *.doc dateien...
anscheinend hat microsoft irgendetwas dafür schon rausgebracht aber das kann ich nicht einbinden - vllt geht das ja nur mit nem ms produkt
wenn es geht bitte etwas anfängerfreundlich erklären oder links posten, die anfänger freundlich sind (auch in english..)
jo also nochmal zusammenfassend:
Sucheprogramm:
Durchsucht bestimmte verzeichnisse (,die ich vorher einbinde)
zeigt nur *.doc dateien an
am besten wäre es wenn man sie direkt ausführen könnte...ist das mit dem kostenlosen bloodshed Dev C++ möglich?
am besten gibt meine z.b. ein "hans" und es werden dann alle dateien aus den verzeichnissen angezeigt, die das wort hans enthalten ...
übrigens: ich habe meine icq und msn addy hier hinterlassen...
Gruß
CSMaster2000//edit: das prog sollte unter Windows me und xp funktionieren..
-
ja klar ist das möglich.. schau dir mal die fstreams an mit ifstream.. lade eine zeile der datei und vergleiche
string x; in pos; x = "haha"; pos = x.find("haha");
das gibt dir dann die position von haha...
mfg burnner
-
und in der FAQ steht was über alle Dateien finden in nem Verzeichnis und dann gabs hier irgendwo noch nen beitrag, wo gefragt wurde, wie man in nem ganzen Verzeichnisbaum suchen kann (rekursiv)
-
burnner schrieb:
ja klar ist das möglich.. schau dir mal die fstreams an mit ifstream.. lade eine zeile der datei und vergleiche
string x; in pos; x = "haha"; pos = x.find("haha");
das gibt dir dann die position von haha...
mfg burnner
hmm gut --
aber wie kann ich dann angeben wo das "haha" gesucht wird...
und - bitte versteh das ich bin anfänger - x ist jetzt da definiert.. kann ich da >>cin x; eingeben?
also meine mutter soll dann was eingeben und ich sag dem programm >>cin x
x wäre dann das was was sie eingibt .. nur warum ist das da definiert...
und kann ich in *.doc dateien suchen?
Gruß
CSMaster2000
-
Hi!
Dafür benötigst du die WinAPI, MFC oder VCL.
Mit MFC kann man sich eine Liste von Dateien liefern lassen mit einer bestimmten Dateiendung. Wenn du mehrere Verzeichnisse und auch deren Unterverzeichnisse auslesen willst, kannst du das rekursiv machen.Hier habe ich einen Code mit den MFC der eine Liste mit den Dateinamen liefert:
std::list<std::string> tmp; int bWorking = findFile(); CFileFind finder; while(bWorking) { bWorking = finder.FindNextFile(); if(!isDirectory()) tmp.push_back(static_cast<std::string>(finder.GetFileName())); }
Oder das direkte suchen einer Datei:
string path = "C:\\"; string fileend = "bla.doc"; finder.FindFile((path+"\\"+fileend).c_str());
Code-Hacker
-
Code-Hacker schrieb:
Hi!
Dafür benötigst du die WinAPI, MFC oder VCL.
Mit MFC kann man sich eine Liste von Dateien liefern lassen mit einer bestimmten Dateiendung. Wenn du mehrere Verzeichnisse und auch deren Unterverzeichnisse auslesen willst, kannst du das rekursiv machen.Hier habe ich einen Code mit den MFC der eine Liste mit den Dateinamen liefert:
std::list<std::string> tmp; int bWorking = findFile(); CFileFind finder; while(bWorking) { bWorking = finder.FindNextFile(); if(!isDirectory()) tmp.push_back(static_cast<std::string>(finder.GetFileName())); }
Oder das direkte suchen einer Datei:
string path = "C:\\"; string fileend = "bla.doc"; finder.FindFile((path+"\\"+fileend).c_str());
Code-Hacker
so - wo bekomm ich die her und kann ich die auch benutzen oder bracuh ich ein teuren microsoft compiler dazu?
btw:
man das forum ist schnell ^^Gruß
CSMaster2000
-
ups ich meinte du willst in einer datei suchen^^
-
Hi!
Um die MFC benutzen zu können brauchst du Visual Studio. Dies gibt es allerdings mittlerweile für die Kommandozeilenebene kostenfrei (Direktdownload: http://download.microsoft.com/download/3/9/b/39bac755-0a1e-4d0b-b72c-3a158b7444c4/VCToolkitSetup.exe). Hierbei handelt es sich um das Visual C++ .NET Toolkit 2003, mit Compiler und Linker. Um die MFC verwenden zu können musst du die Datei die Datei afx.h einbinden (#include <afx.h>).
Code-Hacker
-
burnner schrieb:
ups ich meinte du willst in einer datei suchen^^
jein
ich will in dateien suchen, die sich in verschiedenen ordnern befinden..
also beispiel:
im Ordner C:\Docs\ befinden sich die ordner "1" und "2" und darin *.doc dateien (also word dateien) und ich will, dass die ordner 1 und 2 nach *.doc dateinen durchsucht werden und mir die dateien angezeigt werden, die das eingebene wort (bsp: hans) enthalten
Gruß
CSMaster2000
-
Code-Hacker schrieb:
Hi!
Um die MFC benutzen zu können brauchst du Visual Studio. Dies gibt es allerdings mittlerweile für die Kommandozeilenebene kostenfrei (Direktdownload: http://download.microsoft.com/download/3/9/b/39bac755-0a1e-4d0b-b72c-3a158b7444c4/VCToolkitSetup.exe). Hierbei handelt es sich um das Visual C++ .NET Toolkit 2003, mit Compiler und Linker. Um die MFC verwenden zu können musst du die Datei die Datei afx.h einbinden (#include <afx.h>).
Code-Hacker
404 - file not found!
Gruß
CSMaster2000//edit: habs selebr gefunden.. danke
-
Hi!
Das mit dem Suchen in einer Doc-Datei geht mit Standard-C++ nicht. Da kommt dann beispielsweise sowas raus (habe es eben getestet):
ð¤◄Óí▒
Achja Informationen zum VC++ Toolkit findest du hier:
http://msdn.microsoft.com/visualc/vctoolkit2003/Code-Hacker
-
-
Code-Hacker schrieb:
Hi!
Das mit dem Suchen in einer Doc-Datei geht mit Standard-C++ nicht. Da kommt dann beispielsweise sowas raus (habe es eben getestet):
ð¤◄Óí▒
Achja Informationen zum VC++ Toolkit findest du hier:
http://msdn.microsoft.com/visualc/vctoolkit2003/Code-Hacker
und mit dem toolkit?
Gruß
CSMaster2000
-
Hi!
Das Toolkit sind ein Compiler und Linker damit du die MFC verwenden kannst. Ich weiß nicht ob die MFC Doc-Dateien unterstützen. Ich weiß das es .NET kann (was du mit dem Toolkit theoretisch auch verwenden könntest, allerdings müsstest du dich dann in managed C++ einarbeiten).
Komisch, bei mir funktioniert der von mir genannte Link.
Code-Hacker
-
also ich hab mir das nun runtergeladen...
so anscheinend funktionieren die datein net mit meinem bloodshed dev-c++ zusammen - ok also habe ich die search.cpp erstellt um darin zu schreiben...
nur leider kann ich das net kompilieren...
er meint immer er würde die uostream.h net finden...
also es wäre toll wenn mir jmd erklären könnte was ich nun machen soll
Gruß
CSMaster2000
-
ich werd das gefühl net los, dass mir dateien fehlen mit dem vc toolkit (bsp: die afx.h!!!)
also nochmal:
kann ich irgendwie ohne ms zusätze unter cplusplus suchen?
Gruß
CSMaster2000
-
Wenn ihr innerhalb von Dateien suchen wollt, muesst ihr auch wissen, welches
Dateiformat diese Datei hat, sprich, wie ist der Datei aufgebaut. .doc Dateien
sind keine Textdateien, es ist nur natuerlich, dass nichtlesbares Zeug rauskommt,
wenn man die Datei normal liesst.Beschreibungen von Dateiformaten kannst du z. B. hier bekommen:
oder hier:
Alternativ kann man mal nach Librarys suchen, welche entsprechende Formate
bereits lesen koennen.mfg
v R
-
virtuell Realisticer schrieb:
Wenn ihr innerhalb von Dateien suchen wollt, muesst ihr auch wissen, welches
Dateiformat diese Datei hat, sprich, wie ist der Datei aufgebaut. .doc Dateien
sind keine Textdateien, es ist nur natuerlich, dass nichtlesbares Zeug rauskommt,
wenn man die Datei normal liesst.Beschreibungen von Dateiformaten kannst du z. B. hier bekommen:
oder hier:
Alternativ kann man mal nach Librarys suchen, welche entsprechende Formate
bereits lesen koennen.mfg
v Rnana ---
also wenn ich doc dateien mit nem normalen editor öffne kann man den text lesen!
ich weiß aber nicht wie ich mit normalen c++ (kein ms visual c++ oder so) in dateien suchen kann...
Gruß
CSMaster2000
-
Hi!
Ich glaube MS bietet etwas zum auslesen von DOC-Dateien. Wie gesagt, es gibt das auf jedenfall für .NET was man mit dem Toolkit ja auch verwenden kann.
Um die MFC verwenden zu können musst du nebenbei noch die Verwendung von MFC aktivieren. Ich weiß aber leider nicht wie man das bei der Kommandozeile angibt, da man dies im VS in den Konfigurationseinstellungen macht.
Aber eigentlich müsste man dazu was in der MSDN finden oder so.Außerdem solltest du mal nach der afx.h suchen. Diese müsste in etwa dieser Ordnerhierarchie zu finden sein:
.......\Microsoft Visual Studio .NET 2003\Vc7\atlmfc\includeCode-Hacker
-
Soweit ich weiß gibt es die MFC nur in Verbindung mit der IDE Visual C++.
Zweitens du kannst ein MFC Programm nur mit einem Microsoft Compiler übersetzen welcher die ganzen MFC Libraries besitzt die du dazu benötigst.
Du möchtest nach Dateien suchen, dann würd ich dir raten mit Boost::FileSystem (hieß doch so, oder?) Alle Dateinamen auszulesen und mit dem Suchbegriff zu vergleichen.
Boost ist eine Library und gibt es auf www.boost.org