JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen 
 medals.php?sid=26bbf9a77ec41cb2c90637c61793a67eMedaillen   RegistrierenRegistrieren   ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

Sinnvolle Anwendung von _chdir() und _findfirst()

 
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Entwicklung
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
SilverDragon
Mini JLI'ler



Anmeldedatum: 02.01.2004
Beiträge: 6
Wohnort: Detmold
Medaillen: Keine

BeitragVerfasst am: 16.04.2004, 22:18    Titel: Sinnvolle Anwendung von _chdir() und _findfirst() Antworten mit Zitat

Also beim lesen eines SCode sind mir die beiden funktionen aufgefallen,
Code:
 int _chdir(const char * dirname);
int _findfirst("*.txt",&f);


mir geht es jetzt überwiegend darum das ich in meiner anwendung, eine DialogBox erstellen kann wo jede datei nacheinander aus einen bestimmten Ordner, in einen editfeld auf gelistet werden OHNE Endung (Beispiel: Im Ordner Test1.txt, Test2.txt und im editfeld sortiert Test1, Test2) und nun wollte ich mal die frage stellen ob ich die beiden Funktionen dafür nutzen kann, hab mal ein testprogramm erstellt aber wurde ich mit einen Absturz des Programmes bedient, leider. Wenn jemand mal ne Idee hat wie ich die sinnvoll einsetzten kann ohne Absturz oder ne andere lösung hat wie es noch geht

(Dialog öffnen --> Vordefinierter Ordner einlesen(z.b. C:\Windows) --> alle dateien mit der endung txt rausuchen und via CB_ADDSTRING ins Editfeld zeilenweise und sortiert schicken bloss den namen ohne endung
--> Selektierte Datei einladen und im Programm verwenden)

die möglichkeiten mit den WindowsDialog aus der commdlg.lib und
Code:

DlgDirList(hDlg,szTemp,IDC_LIST,IDC_DIRECTORY,DDL_DIRECTORY);
,
die möchte ich NICHT in mein programm verwenden, suche also nach einer dritten möglichkeit, die es gibt aber die ich leider noch net umsetzten kann. Confused Sad

Würde mich über ein Turtor oder Beispielcode sehr freuen (aber es gibt ja fast kaum einen der was für einen noch anfänger tut oder??) Laughing[/list]
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden AIM-Name
C++Builder
Senior JLI'ler



Anmeldedatum: 04.10.2003
Beiträge: 235

Medaillen: Keine

BeitragVerfasst am: 17.04.2004, 14:39    Titel: Antworten mit Zitat

hi,

ich hab dir das mal abgeschrieben und angepasst
(ist aus dem Buch 3D-Spiele mit C++ und DirectX von Alexander Rudolph (auf ziehmlich gut das Teil))

Code:

#include <iostream.h>
#include <io.h>
#include <string.h>

int main(void)
{
   struct _finddata_t  c_file; // Struktur zum File Finden
   long                hFile;  // Handle wird von _findfirst zurückgegeben und
                        // von _findnext als Parameter verlangt
   const long          MaxLenght = 100; // maximale Größe der Strings
   char                Filename[MaxLenght];// hier isse dann weg

   //falls überhaupt eine Datei gefunden wird
     // "C:/Windows(*.txt" gibt an das in C:\Windows gesucht wird
     // und nur nach Dateien die auf .txt enden
   if((hFile = _findfirst("C:/Windows/*.txt",&c_file)) != -1)
   {
      //suche solange nach Dateien bis alle durch sind
      while(_findnext(hFile, &c_file) == 0)
      {
         //Filename auf 'nichts' setzen ('\0' gibt das ende eines strings an
         // da davor nichts steht ist der string also leer)
         memset( Filename, '\0', MaxLenght);

         //den Namen der gefundenen Datei durchgehen
         for( long pos=0; pos<MaxLenght; pos++)
         {
            //falls am Punkt des Dateinames angekommen Schleife verlassen
            if(c_file.name[pos] == '.')
               break;

            //ansonsten das Zeichen in den Dateiname kopieren
            Filename[pos] = c_file.name[pos];
         }

         //wenn Name fertig kopiert dann ausgeben
            //hier müsstes du den Dateiname an dien Dialogfeld übergeben
            //wie das jetzt geht weiß ich nich
         cout << Filename << endl;
      }
   }

   return 0;
}


die Kommentare sollten alles erklären wenn nicht frag!

MfG
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
SilverDragon
Mini JLI'ler



Anmeldedatum: 02.01.2004
Beiträge: 6
Wohnort: Detmold
Medaillen: Keine

BeitragVerfasst am: 17.04.2004, 17:00    Titel: Antworten mit Zitat

Danke für die Antwort hilft mir doch schon ein kleines bisschen weiter muss bloss mal sehen das ich das jetzt noch irgendwie hinbekomme das die dateien im editfeld in einem Dialog angezeigt bekomme.

Wie heisst es so schön von nix kommt nix Very Happy
_________________
Ist leider noch immer kein Meister vom Himmel gefallen
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden AIM-Name
nigs
Super JLI'ler



Anmeldedatum: 19.12.2002
Beiträge: 359

Medaillen: Keine

BeitragVerfasst am: 17.04.2004, 18:46    Titel: Antworten mit Zitat

@silverdragon das sprichwort geht anderst:
"Von nix kommt nigs. "
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
SilverDragon
Mini JLI'ler



Anmeldedatum: 02.01.2004
Beiträge: 6
Wohnort: Detmold
Medaillen: Keine

BeitragVerfasst am: 18.04.2004, 17:18    Titel: Antworten mit Zitat

@nigs Danke für den Tip, werd es mir mal merken Very Happy

So das Thema kann jetzt abgehakt werden dank CBuilder Anwendung funzt und ohne absturz
_________________
Ist leider noch immer kein Meister vom Himmel gefallen
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden AIM-Name
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Entwicklung Alle Zeiten sind GMT
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.


Powered by phpBB © 2001, 2005 phpBB Group
Deutsche Übersetzung von phpBB.de

Impressum