Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
SilverDragon Mini JLI'ler
Anmeldedatum: 02.01.2004 Beiträge: 6 Wohnort: Detmold Medaillen: Keine
|
Verfasst am: 16.04.2004, 22:18 Titel: Sinnvolle Anwendung von _chdir() und _findfirst() |
|
|
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.
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??) [/list] |
|
Nach oben |
|
|
C++Builder Senior JLI'ler
Anmeldedatum: 04.10.2003 Beiträge: 235
Medaillen: Keine
|
Verfasst am: 17.04.2004, 14:39 Titel: |
|
|
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 |
|
|
SilverDragon Mini JLI'ler
Anmeldedatum: 02.01.2004 Beiträge: 6 Wohnort: Detmold Medaillen: Keine
|
Verfasst am: 17.04.2004, 17:00 Titel: |
|
|
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 _________________ Ist leider noch immer kein Meister vom Himmel gefallen |
|
Nach oben |
|
|
nigs Super JLI'ler
Anmeldedatum: 19.12.2002 Beiträge: 359
Medaillen: Keine
|
Verfasst am: 17.04.2004, 18:46 Titel: |
|
|
@silverdragon das sprichwort geht anderst:
"Von nix kommt nigs. " |
|
Nach oben |
|
|
SilverDragon Mini JLI'ler
Anmeldedatum: 02.01.2004 Beiträge: 6 Wohnort: Detmold Medaillen: Keine
|
Verfasst am: 18.04.2004, 17:18 Titel: |
|
|
@nigs Danke für den Tip, werd es mir mal merken
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 |
|
|
|