laufwerke finden



  • hallo ich möchte den Rechner auf seine Laufwerke durchlaufen lassen..

    for (int i=1;i<=ParamCount();i++)
      {
        if (LowerCase(ParamStr(i)) == "auto")
        {
            char name[512] = {0};
            DWORD len = sizeof(name);
            GetComputerName(name,&len);
            AnsiString tmp = "\\\\Server-2\\Suche\\";
            tmp += name;
            tmp += AnsiString(".txt");
            std::ofstream ofs(tmp.c_str());
            for(int i=65;i<=90;i++)
            {
                    if (GetDriveType((char)i + ":\\") == DRIVE_FIXED)
                    {
                              suche((char)i + ":\\", ofs);
                    }
            }
    
        }
        else if (LowerCase(ParamStr(i)) == "exit")
          Application->Terminate();
      }
    

    Mein Quelltext..nun folgende Frage..

    Ich suche für jeden Laufwerkbuchsteben ersteinmal die Zahl (Q ist z.B meines wissens her 133(kann das sein?)) und dies benötige ich nun für a-z..
    hat jemand von euch ein tabelle etc dafür??

    dann möchte ich die zahlen wieder in buchstaben umwandeln und vergleichen..ob das laufwerk vorhanden ist

    wisst ihr eine möglichkeit??
    Mein Anfang siehe oben

    Dankeschön



  • ASCII-Tabelle



  • dankeschön..

    wie wandle ich nun aber dieser Ascii Zahlen wieder in Buchstaben und vergleiche diese dann mit den vorhandenen Laufwerken??

    Es sollen dann die vorhandenen Laufwerke sofort durchsucht werden..



  • Problem gelöst..
    für alle mit dem selben Prob hier meine lösung:

    void __fastcall TForm2::FormCreate(TObject *Sender)
    {
      for (int i=1;i<=ParamCount();i++)
      {
        if (LowerCase(ParamStr(i)) == "auto")
        {
            char name[512] = {0};
            DWORD len = sizeof(name);
            GetComputerName(name,&len);
            AnsiString tmp = "\\\\Server-2\\Suche\\";
            tmp += name;
            tmp += AnsiString(".txt");
            std::ofstream ofs(tmp.c_str());
            for(int i=65;i<=90;i++)
            {       AnsiString s = (AnsiString)(char)i + ":\\";
                    char * c;
                    c = s.c_str();
                    if (GetDriveType(c) == DRIVE_FIXED)
                    {
                              suche(s, ofs);
                    }
            }
    
        }
        else if (LowerCase(ParamStr(i)) == "exit")
          Application->Terminate();
      }
    
    }
    

    Bis denn



  • Sieht ja ein bißchen wüst aus. 😉

    Wie wäre es hiermit:

    char name[512] = {0}; 
    	DWORD len = sizeof(name); 
    	GetComputerName(name,&len); 
    	AnsiString tmp = "\\\\Server-2\\Suche\\" + AnsiString(name) + ".txt"; 
    	std::ofstream ofs(tmp.c_str());
    	AnsiString s;
    	for( char i ='C';i<='Z';i++) 
    	{
    		s = AnsiString((char)i) + ":\\"; 
    		if (GetDriveType(s.c_str()) == DRIVE_FIXED) 
    		{ 
    			suche(s, ofs); 
    		} 
    	}
    


  • des sind die richtigen 😉

    ich bin froh des es läuft und jetz wird es auch noch als "wüst" beschimpft..tztz..

    nee habs selber schon aufgeräumt ^^
    hab des hier gleich nachm fertig schreiben reingepostet..deshalb war es noch etwas wirr 😉

    cu


Anmelden zum Antworten