mikrocontroller.net

Forum: PC-Programmierung C++ Datei aus File zählen


Autor: Pascal (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Guten Tag

Ich möchte mit meinem kleinen Programm die Dateien aus dem Ordner lesen 
und zählen, wie viele Files sich im Ordner befinden.
Bin ich auf einem guten Weg, kann mir jemand Inputs geben?
Komme nicht weiter und hab 5 Errors.

Besten Dank Pascal

Autor: Pascal (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sorry Hier ist mein Code:

void CFilemakeDlg::Show()
{
HANDLE hSearch = FindFirstFile(".\\Debug\\*.exe") || (".\\*.exe");
BOOL MoreFiles = FALSE;
int count_file  = 0;
int count_dir = 0;

  if (hSearch = INVALID_HANDLE_VALUE) return -1;

      do {
        if (FData.dwFileAttributes == FILE_ATTRIBUTE_DIRECTORY)
    {
    count_dir++; // Ordnerzähler um 1 erhöhen
    }
    else
    {
    count_file++; // Dateizähler um 1 erhöhen
                 }
    MoreFiles = FindNextFile(hSearch,&FData);
    }
}

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Komme nicht weiter und hab 5 Errors.

WELCHE?!

>  if (hSearch = INVALID_HANDLE_VALUE) return -1;

Ersetze = durch ==

Autor: Pascal (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
FindFirst function does not have 1 parameter
dwFileAttributes must hace a class/struct/union type

die anderen Fehler sollte ich mit richtigem Deklarieren beheben können.

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> FindFirst function does not have 1 parameter

Na, was sagt uns das?
HANDLE FindFirstFile(
  LPCTSTR lpFileName,               // file name
  LPWIN32_FIND_DATA lpFindFileData  // data buffer
);

(Funktionsprototyp, so in Win32-API-Funktion deklariert)


Achja, und was ist
HANDLE hSearch = FindFirstFile(".\\Debug\\*.exe") || (".\\*.exe");

das für ein Quatsch?

Autor: Rolf Magnus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>>  if (hSearch = INVALID_HANDLE_VALUE) return -1;
>
> Ersetze = durch ==

Das ist doch mal so einer von den klassischen Fehlern, der man gleich 
erkannt hätte, wenn man die Konstante auf die linke Seite geschrieben 
hätte.

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das sieht aber hässlich aus ... und anständige C-Compiler erzeugen bei 
genau diesem Statement wenigstens eine Warnung.

Autor: Rolf Magnus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Das sieht aber hässlich aus ...

Es sieht ungewohnt aus, wenn man es nur in der anderen Reihenfolge 
kennt.

> und anständige C-Compiler erzeugen bei genau diesem Statement
> wenigstens eine Warnung.

Was nervt, wenn man wirklich eine Zuweisung gemeint hat. Dann muß man 
sich mit so Krücken behelfen wie die Klammern beim if doppelt 
auszuführen, um den Compiler zu beruhigen.

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Was nervt, wenn man wirklich eine Zuweisung gemeint hat.

... was man sich natürlich genauso abgewöhnen könnte wie man sich die 
"hässliche" Schreibweise angewöhnen könnte.

Also alles nur eine Frage der Gewohnheit; ich vermeide es, Zuweisungen 
in Vergleichsoperationen zu verwenden.

Also:
Jeder Weg ist richtig, aber das "Programm" von Pascal strotzt vor 
Fehlern.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.