Wichtige Fragen (Anfängerin)



  • also ersteinmal ein dickes hallo ihr..

    hab mal eine wichtige Frage..ich bin im zweiten ausbildungsjahr und soll jetz ein Programm schreiben..mit dem ich alle dateien aus dem gesamten Netzwerk suche!!

    Der Kunde muss zuerst den Dateinamen und dann die Ednung eingeben..dann soll das Programm das gesamte Netzwerk durchlaufen und alle Dateien die auf das eingegebene entsprechen mit dem gesamten Pfad in einer Listbox ausgegeben werden.

    Hatten bis jetzt noch nie so etwas und weiss wirklich nicht wie das anstellen soll wäre echt lieb wenn ihr mir helfen könntet vielen dank!!

    bin 2. Lehrjahr der Ausbildungsrichtugn Assistent für Softwaretechnologie..



  • Weißt du denn, wie du auf einer lokalen Festplatte nach einer Datei mit einem bestimmten Namen suchst?



  • ich sehe drei sachen, die nicht zu c++ standard passen:

    netzwerk (socket)(winapi oder linux)
    verzeichnis durchlaufen (winapi oder linux)
    Listbox (welche gui verwendet ihr)

    teile dem moderator windows oder linux und compiler, dann wirst du entsprechend verschoben.
    versuche, bessere überschriften zu wählen für dein topic, und zeig schonmal ein wenig code, der fertig ist, damit die leute einen ansatz haben, wo du schwierigkeiten hast.



  • tut mir leid werde ich ab jetzt machen..

    habe auch auf lokaler noch nicht gesucht..
    im moment bin ich soweit:

    TForm1 *Form1;
    TStringList*ENDUNG;
    //---------------------------------------------------------------------------
    __fastcall TForm1::TForm1(TComponent* Owner)
            : TForm(Owner)
    {
    }
    //---------------------------------------------------------------------------
    
    void __fastcall TForm1::Button2Click(TObject *Sender)
    {
    AnsiString end;
    end=Edit2->Text;
    ListBox1->Items->Add(end);
    ListBox1->Items->SaveToFile("endungen.txt");
    }
    //---------------------------------------------------------------------------
    void __fastcall TForm1::FormCreate(TObject *Sender)
    {
    ListBox1->Items->LoadFromFile("endungen.txt");
    StatusBar1->Panels->Items[2]->Text="   Datum :  "+Date();
    }
    //---------------------------------------------------------------------------
    void __fastcall TForm1::Button3Click(TObject *Sender)
    {
    int in_dex, button;
    button=Application->MessageBox("Endung wirklich löschen?","Löschen?",16+4);
    if(button==6)
    {
    in_dex=ListBox1->ItemIndex;
    ListBox1->Items->Delete(in_dex);
    ListBox1->Items->SaveToFile("endungen.txt");
    }
    }
    //---------------------------------------------------------------------------
    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
    AnsiString dn, end;
    int wahl;
    ENDUNG=new TStringList;
    ENDUNG->LoadFromFile("endungen.txt");
    dn=Edit1->Text;
    wahl=ListBox1->ItemIndex;
    end=ENDUNG->Strings[wahl];
    Panel2->Caption=dn+end;
    }
    //---------------------------------------------------------------------------
    void __fastcall TForm1::Button4Click(TObject *Sender)
    {
    GroupBox4->Visible=true;
    }
    

    habe nur die felder zum eingeben und löschen fertig..jetzt muss ich halt die suche starten..
    weiss aber halt nicht wie..
    Verwende Windows..
    Und C++ Builder 6



  • mist wieso postet das dauernd zweimal???
    ich klicke doch nur einmal auf den button..hab aber probs mit dem internet..



  • Dieser Thread wurde von Moderator/in HumeSikkins aus dem Forum C++ in das Forum VCL/CLX (Borland C++ Builder) verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • Hallo

    zum Suchen in Verzeichnissen : schau dir FindFirst/FindNext in der BCB-Hilfe an, da ist auch ein Beispiel dazu.
    zum Suchen im Netzwerk : solange Netzwerkverzeichnisse an lokale Laufwerke gebunden sind, kannst du diese genauso wie lokale Verzeichnisse durchsuchen.

    bis bald
    akari



  • Dankeschön

    {
      TSearchRec sr;
      int iAttributes = 0;
      StringGrid1->RowCount = 1;
      StringGrid1->RowCount = 0;
      iAttributes |= faReadOnly * CheckBox1->Checked;
      iAttributes |= faHidden * CheckBox2->Checked;
      iAttributes |= faSysFile * CheckBox3->Checked;
      iAttributes |= faVolumeID * CheckBox4->Checked;
      iAttributes |= faDirectory * CheckBox5->Checked;
      iAttributes |= faArchive * CheckBox6->Checked;
      iAttributes |= faAnyFile * CheckBox7->Checked;
      if (FindFirst(Edit1->Text, iAttributes, sr) == 0)
      {
        do
        {
          if ((sr.Attr & iAttributes) == sr.Attr)
          {
            StringGrid1->RowCount = StringGrid1->RowCount + 1;
            StringGrid1->Cells[0][StringGrid1->RowCount-1] = sr.Name;
            StringGrid1->Cells[1][StringGrid1->RowCount-1] = IntToStr(sr.Size);
          }
        } while (FindNext(sr) == 0);
        FindClose(sr);
      }
    }
    

    habe diesen code eingebunden..nun geht aber leider noch nix..
    mache nun doch im StringGrid ^^is etwas einfacher als in ListBox..

    werde zuerst ein programm für lokale suche machen..um erstmal da rein zu kommen..

    könnt ihr mir noch paar tipps geben??

    mit dem hilfetext bin ich etwas weiter..aber leider noch nich so wie erhofft..
    hab mir das ganze etwas leichter vorgestellt...



  • Hallo

    der Code stimmt schon.
    Du must dir nur noch mal überlegen, wozu die CheckBoxen da sind. Wenn nämlich keine von denen true ist, gibt es auch keine gefundenen Dateien.
    Aktivier mal die CheckBox7 für das Attribut AnyFile und gib in Edit1 ein * ein , und schon werden dir alle Dateien und Unterverzeichnisse aus dem aktuellen Verzeichniss angezeigt.

    bis bald
    akari



  • am besten du packst das in eine Funktion, die sich selbst aufruft und diese routine dann so auch für alle unterordner ausführt... so durchsuchst du wirklich alles...



  • vielen vielen dank ^^

    geht jetzt...
    jetzt muss ich nur noch Ordner von Dateien trennen..und die Dateien dann in eine ListBox schreiben..

    hast du hierzu vielleicht auch ein paar tipps..vielen dank echt ^^



  • Hallo

    zum Trennen von Dateien und Verzeichnissen benutzt diese Abfrage

    if ((sr.Attr & faDirectory) == sr.Attr)
    {
      // Verzeichniss
      }
    else
    {
      // Datei
      }
    

    /Edit : Hier wären Kenntnisse von Bitoperationen und -vergleichen angebracht, damit du denn Sinn dahinter verstehst.

    bis bald
    akari



  • dankeschön echt!!

    jetz klappt alles super ^^

    jetz muss ich das nur noch für netzwerk umsetzen..naja mal sehn obs wird..jedenfalls ganz lieben dank echt ^^
    *knuddel* 🙂



  • softkuecki schrieb:

    ganz lieben dank echt ^^
    *knuddel* 🙂

    *würg* *auf Schleimspur ausrutsch*

    Die alten Tricks sind doch noch immer die Besten...



  • GefakteFrau schrieb:

    softkuecki schrieb:

    ganz lieben dank echt ^^
    *knuddel* 🙂

    *würg* *auf Schleimspur ausrutsch*

    Die alten Tricks sind doch noch immer die Besten...

    [OT]
    die ist aber echt...
    ->link in ihrer signatur
    [/OT]



  • GefakteFrau schrieb:

    softkuecki schrieb:

    ganz lieben dank echt ^^
    *knuddel* 🙂

    *würg* *auf Schleimspur ausrutsch*

    Die alten Tricks sind doch noch immer die Besten...

    häh was gehtn mit dir ab??
    bisschen balla balla was?
    habe mich nur bedankt


Anmelden zum Antworten