Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

Toa

Alter Hase

  • »Toa« ist der Autor dieses Themas

Beiträge: 944

Beruf: Research associate

  • Private Nachricht senden

1

06.08.2007, 23:57

Ausgelesene FIles eines Verzeichnis in Strings Speichern ?

Hey ho ,

Wollte mal fragen ob es möglich ist files die so aus einem Verzeichnis ausgelesen werden in einem String zu speichern :

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
    DIR *dirHandle;  
    struct dirent * dirEntry;

    dirHandle = opendir("Saves\\");
    if (dirHandle) {
    while (0 != (dirEntry = readdir(dirHandle))) {
    puts(dirEntry->d_name);
    }
    closedir(dirHandle);
    }

also jede File in einem eigenen String bzw nur die namen der FIles also nicht der File INHALT sondern Der NAME der FIle !!

Thx

MFG Toa

[/cpp]

grek40

Alter Hase

Beiträge: 1 491

Wohnort: Dresden

  • Private Nachricht senden

2

07.08.2007, 00:26

Es wär gut, wenn du nochmal deutlicher formulierst, wo dein Problem liegt.

Allgemeine Antwort: Ja, es ist möglich ;)

Toa

Alter Hase

  • »Toa« ist der Autor dieses Themas

Beiträge: 944

Beruf: Research associate

  • Private Nachricht senden

3

07.08.2007, 00:27

Okay , ich weiß nicht wie ich die namen der files des ausgelesenen Verzeichnisses in strings speichere ^.^ ....

Edit : Ups Frage vergessen xD ..

Könnte mir das Vielleicht jemand Zeigen ?

grek40

Alter Hase

Beiträge: 1 491

Wohnort: Dresden

  • Private Nachricht senden

4

07.08.2007, 00:45

Also um ehrlich zu sein, die von dir genutzten Funktionen im Code oben hab ich noch nie gesehen / genutzt - das muss aber nicht zwingend was heißen^^

Unter Windows würde ich einfach direkt die Funktionen der WinAPI verwenden *ma schnell Code aus der PlatformSDK-Doku kopier und veränder*:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#define _WIN32_WINNT 0x0501

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

int main()
{
   WIN32_FIND_DATA FindFileData;
   HANDLE hFind = INVALID_HANDLE_VALUE;
   std::string Spec="*.*";  // directory specification

   DWORD dwError;


   hFind = FindFirstFile(Spec.c_str(), &FindFileData);

   if (hFind == INVALID_HANDLE_VALUE) 
   {
      std::cout << "Invalid file handle. Error is " << GetLastError() << std::endl;
      return (-1);
   } 
   else 
   {
      std::cout << "First file name is " << FindFileData.cFileName << std::endl;
      while (FindNextFile(hFind, &FindFileData) != 0) 
      {
         std::cout << "Next file name is " << FindFileData.cFileName << std::endl;
      }
    
      dwError = GetLastError();
      FindClose(hFind);
      if (dwError != ERROR_NO_MORE_FILES) 
      {
         std::cout << "FindNextFile error. Error is " << dwError << std::endl;
         return (-1);
      }
   }
   return (0);
}


Um die strings zu speichern müsstest du halt überall wo ich jetzt den Dateiname ausgebe einfach den Dateiname in einem std::string speichern.

Toa

Alter Hase

  • »Toa« ist der Autor dieses Themas

Beiträge: 944

Beruf: Research associate

  • Private Nachricht senden

5

07.08.2007, 00:57

der Code funzt nicht ..Error ist 87 ... Kann man den Oberen Code von mir nicht anpassen ?

Fred

Supermoderator

Beiträge: 2 121

Beruf: Softwareentwickler

  • Private Nachricht senden

6

07.08.2007, 01:05

Da ist doch auch ein Fehler drin^^

C-/C++-Quelltext

1
#inlcude <iostream>


müsste es wohl heißen

Toa

Alter Hase

  • »Toa« ist der Autor dieses Themas

Beiträge: 944

Beruf: Research associate

  • Private Nachricht senden

7

07.08.2007, 01:10

Daran liegts nicht hab andere header verwendet

Fred

Supermoderator

Beiträge: 2 121

Beruf: Softwareentwickler

  • Private Nachricht senden

8

07.08.2007, 01:21

Meine Kristallkugel, die ich vor nem halben Jahr oder so ei amazon bestellt hab, ist immer noch nicht da.^^

Bei mir läuft der Code von grek40, bis auf das Unicode nicht unterstützt wird :?, ohne Fehlermeldung durch und funktioniert.

Sag doch bitte mal welche anderen Header du verwendest und was für Fehler kommen. Sonst kann man dir wohl nur schwer helfen.

Welche Header hast du denn bei deinem Code verwendet.

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

9

07.08.2007, 09:34

Vermutlich hat Toa irgendeine Linux Distribution und kein Windows... :roll: Das würde auch seinen Code erklären! :P

Hier ein Beispiel:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#include <iostream>
#include <vector>
#include <iterator>
#include <dirent.h>

int main()
{
    DIR* handle;
    struct dirent* entry;
    std::vector< std::string > directory_list;

    handle = opendir( "/" );

    if ( !handle )
    {
        std::cerr << "Error: Verzeichnis konnte nicht gefunden werden" << std::endl;
        return -1;
    }

    // Namen auslesen

    while ( entry = readdir( handle ) )
    {
        directory_list.push_back( entry->d_name );
    }

    closedir( handle );

    // Und zum Schluss in die Konsole ausgeben

    std::copy( directory_list.begin(), directory_list.end(),
        std::ostream_iterator< std::string >( std::cout, "\n" ) );
}
@D13_Dreinig

Toa

Alter Hase

  • »Toa« ist der Autor dieses Themas

Beiträge: 944

Beruf: Research associate

  • Private Nachricht senden

10

07.08.2007, 10:35

Okay das von David_pb Klappt , nur listet das ja auch das verzeichnis auf wie mein code , ich brauch abba jeden FIlename des verzeichnisses in einem anderen string gespeichert :/ , möchte das ganze dann für ein menü ausgeben aber das hab ich schon . Wie kann ich denn die Namen der Files in verschiedene strings speichern ?

Werbeanzeige