FindNext -> Ich komm nicht klar



  • Ich hab mir jetzt schon x Threads hier angeschaut, aber irgendwie bekomm ichs nicht hin...

    AnsiString pfad = GetCommandLine();
      pfad = pfad.SubString(0, pfad.Pos("Planer.exe")-1);
    
      TSearchRec fund;
    
      if (FindFirst(pfad+"*.xlsx", faAnyFile, fund) == 0)
      {
        do
        {
          if ((fund.Attr & faAnyFile) == fund.Attr)
          {
            Application->MessageBox(fund.Name.c_str(),"DEBUG",MB_ICONINFORMATION);
          }
        } while (FindNext(fund) == 0);
        FindClose(fund);
      }
    

    Application->MessageBox(fund.Name.c_str(),"DEBUG",MB_ICONINFORMATION); wird nie aufgerufen obwohl eine Datei dort ist, * funzt auch nicht



  • erstmal ein paar Hinweise:

    1. [Edit]AnsiString beginnt immer bei 1 und nicht bei 0[/Edit]
    2. um den Pfad der Anwendung zu ermitteln kann man ExtractFilePath und Application->ExeName verwenden

    eine Frage: suchst du wirklich Dateien mit der Extension xlsx oder nur xls?



  • Hallo,

    was steht denn in "pfad" drin?

    mfg, Micha!



  • @Linnea ja imo such ich nach xlsx
    @RandomAccess85 ahhh, danke, hier war der fehler es stand ein " am Anfang und @Linnea ja das mit dem Index spielte auch mit rein

    Ein GROßES THX! 😃



  • Hallo,

    du solltest aber trotzdem um solche Fehler zu vermeiden auf von Linnea genannte methode zurückgreifen 🙂

    was passiert denn zum Beispiel bei dir wenn jemand den Dateinamen ändert 😉

    AnsiString pfad = ExtractFilePath(Application->ExeName);
    //oder
    AnsiString pfad = ExtractFilePath(ParamStr(0));
    

    mfg, Micha


Anmelden zum Antworten