Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » VC++ / MFC » problem beim Suchen

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 < [ 2 ]
000
19.07.2005, 18:32 Uhr
Chef-Koch



hallo Codergemeinde,

Ich habe ein Problem : Ich will , dass mein prog alle Ordner durchsucht. Das Problem ist jetz:


C++:
    CFileFind finder;
    BOOL bWorking = finder.FindFile("E:\\*.");


    while(bWorking)
    {

    bWorking = finder.FindNextFile( );
    
    MessageBox((LPCTSTR) finder.GetFilePath(), "es wurden dateien gefunden!" , MB_OK);

};


das funktioniert ja noch! Es findet jetzt alle Ordner die in E\ sind. Wie mache ichs jetzt , dass ich z.B. mach:


C++:
while(!finder.GetPath("..\...\datei.exe")
...



oder so.. Es soll halt die Ordner durchsuchen , schaun ob ne bestimmte Datei drinne is und wenn nicht den nächsten Ordner durchsucht usw.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
20.07.2005, 00:58 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


Musst du rekursiv Programmieren. Bei jedem "File" was der findet gucken ob es sich um einen selbst um einen Ordner handelt und diesen dann auch wieder ggf. durchsuchen...
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
20.07.2005, 14:07 Uhr
Chef-Koch



also ich schaffe es ja schon dass er "nur" Ordner findet ...
man kann es ja so machen , dass er zuerst alle dateien in dem Ordner findet und wenn nicht , dann sucht er alle Ordner und durchsuchte diese dann schreittweise. aber mein eigentliches Prob ist : ich kann nicht schreeiben , dass er wenn er diese datei nicht findet (also in einer while Schleife), dasser dann die Ordner durchsucht.
das geht nicht:

C++:
while(!finder.GetPath("bla\\blubb\\blablablubb.bla")
...



ich habs dann mal anders probiert ging aber auch nicht:


C++:

    CFileFind finder;
    BOOL bWorking = finder.FindFile("E:\\*.");
BOOL cWorking = finder.FindFile(bWorking"\\bla.blbb) // geht es dass ich da irgendwelche Variablen oder sonst was davorsetzte??

while(!cWorking)
{
...
}



danke für die Antworten geht es so nicht doch??
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
20.07.2005, 15:22 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


ich würde mal so machen:


C++:
CFileFind finder;
BOOL bWorking = finder.FindFile("E:\\*.");

  while(bWorking)
  {

    bWorking = finder.FindNextFile( );
    
    if(finder.GetFileName() == "blablubb.txt")
    {
      // gefunden
    }
  }


--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
20.07.2005, 15:29 Uhr
Chef-Koch



mhh ok ich versuchs mal , obwohl ichs kaum glaub .. weil ja die Zeile:


C++:
BOOL bWorking = finder.FindFile("E:\\*.");


macht ja dass er nur Ordner findet egal ^^ ich sags euch dann ob funktioniert

EDIT: nee geht nicht... er findet wirklich nur Ordner , aber ich hae eine IDEEE nämlich irgendwie so:


C++:
    bWorking = finder.FindFile("E:\\*.")
    

        while(bWorking)
        {
            bWorking = finder.FindNextFile( );

                if(finder.GetFileName() == "*"
                {
                                // hier soll ein befehl rein , der erkennt welchen Namen "*"  hat
                //dann kann man , wenn man den Order hat den Order durchsuchen
                               // ( ich weiß da aber leider auch nicht so recht wie ichs anstellen soll)

                                }
        }


Dieser Post wurde am 20.07.2005 um 15:52 Uhr von Chef-Koch editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
20.07.2005, 15:59 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


ich würde mal entweder *.* suchen lassen oder einfach * mit *. findet er nur dateinamen die keine endung haben (also ordner)
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
20.07.2005, 16:25 Uhr
Chef-Koch



aso jaaaaa ok , is wohl besser ich kann oben drüber ja noch eine Zeile machen , womit er dann erstmal Laufwerk E: Durchsucht und dann , wenn ers nicht findet die Ordner sucht..

aber weiß einer einen Befehl wie ich den Namen von der gefundenen Datei rausbekomme???
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
21.07.2005, 14:13 Uhr
Chef-Koch



Ok ich hab jetz rumprobiert unds immer noch ned geschafft ,aber kann mir jmd. sagen ob ich BOOL in string umwandeln kann also ca so:


C++:

CFileFind  finder;

BOOL bWorking = finder.FindFile( )

string bla = finder.FindFile ( )

...



EDIT: Mist , der nimmt ja gar keine String an ... gibts in MCF überhaupt ne Variable die Texte enthalten kann.

Dieser Post wurde am 21.07.2005 um 14:16 Uhr von Chef-Koch editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
21.07.2005, 14:21 Uhr
GuenniAtWork



Ja ne Variable vom Typ CString zum Beispiel.


Zitat von Chef-Koch:

aber weiß einer einen Befehl wie ich den Namen von der gefundenen Datei rausbekomme???



Schaust Du hier

MFC-Library dein Freund und Helfer.
--
Gruß GuenniAtWork

Dieser Post wurde am 21.07.2005 um 14:24 Uhr von GuenniAtWork editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
21.07.2005, 14:52 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


Ansonsten les mal meinen Post ... da steht wie man den dateinamen kriegt ...
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 < [ 2 ]     [ VC++ / MFC ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: