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

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

61

23.08.2007, 20:11

Ich zitiere mich:

Zitat von »"David_pb"«

Schonwieder if-schleife? :-O Was genau willst du egtl testen? Ob die Extension tatsächlich ganz am Ende steht?

In dem Fall einfach:

C-/C++-Quelltext

1
if (tmp_name != "." && tmp_name != ".." && tmp_name.find_last_of(extension) == tmp_name.length() - 1)
@D13_Dreinig

Toa

Alter Hase

  • »Toa« ist der Autor dieses Themas

Beiträge: 944

Beruf: Research associate

  • Private Nachricht senden

62

23.08.2007, 20:17

Juhh es wird schon mal eingelesen jetzt hab ich nur noch ein anderes Prob ..

Das Umlagern geht nicht mehr :/

C-/C++-Quelltext

1
2
3
string slot1 = directory_list[ 0 ];
  string slot2 = directory_list[ 1 ];
  string slot3 = directory_list[ 2 ];

wenn ich slot 1 ausgebe wird nichts ausgegeben .. mach ich nun was falsch ?

Edit : mh... mit directory_list[ 0 ] kann ich die eingelesene FIle auch net ausgeben

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

63

23.08.2007, 20:27

Zeigmal den Codeteil.
@D13_Dreinig

Toa

Alter Hase

  • »Toa« ist der Autor dieses Themas

Beiträge: 944

Beruf: Research associate

  • Private Nachricht senden

64

23.08.2007, 20:29

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
string slot1 = directory_list[ 0 ];
  string slot2 = directory_list[ 1 ];
  string slot3 = directory_list[ 2 ];


    m_CursorCon(0,5);
    cout <<"ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»\n"; // NULL

    cout <<"\n";
    cout <<"  " << slot1 << "\t\n";
    cout <<"\n";
    cout <<"ÈÍÍÍÍÍÍÍÍÍÍÍÍÍͼ\n"; // NULL

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

65

23.08.2007, 20:31

Aber der Rest wird ausgegeben? Bzw, schonmal im Debugger geschaut was in slot1 steht? Oder was in der Schleife beim einlesen in den Vector kopiert wurde?
@D13_Dreinig

Toa

Alter Hase

  • »Toa« ist der Autor dieses Themas

Beiträge: 944

Beruf: Research associate

  • Private Nachricht senden

66

23.08.2007, 20:33

also in der Schleife hab ich durch

Quellcode

1
 std::cout << tmp_name << std::endl; 


Getestet und da wird lala.sav eingelesen

aber weder durch directory_list[ 0 ] noch durch den STring kann ich es ausgeben ...

EdIT :

Es befindet sich nur eine Datei in dem Verzeichnis die auch eingelesen wird , ... lala.sav

Edit 2 :

Jetzt hab ich ein zweites Sav in das Verzeichnis und das wird in der Schleife nicht eingelesen :/

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

67

23.08.2007, 20:43

Dann zeigmal her, den aktuellen Code.
@D13_Dreinig

Toa

Alter Hase

  • »Toa« ist der Autor dieses Themas

Beiträge: 944

Beruf: Research associate

  • Private Nachricht senden

68

23.08.2007, 20:48

Code sieht so aus :

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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
DIR* handle;
    dirent* entry;

    vector< string > directory_list(3);

     std::string extension(".sav");

    handle = opendir( "Saves\\" );

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




   for (dirent* entry = readdir(handle); entry && directory_list.size() <= 3; entry = readdir(handle))
{

    std::string tmp_name(entry->d_name);


   if (tmp_name != "." && tmp_name != ".." && tmp_name.find_last_of(extension) == tmp_name.length() - 1)
       {
        std::cout << tmp_name << std::endl;
        directory_list.push_back(tmp_name);
}
}

//&& tmp_name.find_last_of(extension) == tmp_name.length() - extension.length()


    closedir( handle );

/// Ausgabe der Slotboxen und implementierung der STrings des Vectors !


    colorcout('1',"-----------------");
    colorcout('1',"Spielstaende\n");
    colorcout('1',"-----------------");
    m_CursorCon(30,0);
    colorcout('2',"Press Space to see the Stats");
    m_CursorCon(30,2);
    colorcout('2',"Press Entf to delete a Account");
    cout <<"\n";
    cout <<"\n";



  string slot1 = directory_list[ 0 ];
  string slot2 = directory_list[ 1 ];
  string slot3 = directory_list[ 2 ];


    m_CursorCon(0,5);
    cout <<"ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»\n"; // NULL

    cout <<"\n";
    cout <<"  " << slot1 << "\t\n";
    cout <<"\n";
    cout <<"ÈÍÍÍÍÍÍÍÍÍÍÍÍÍͼ\n"; // NULL




    cout <<"ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»\n"; // NULL

    cout <<"\n";
    cout <<"  " << slot2 << "\t\n";
    cout <<"\n";
    cout <<"ÈÍÍÍÍÍÍÍÍÍÍÍÍÍͼ\n"; // NULL


    cout <<"ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»\n"; // NULL

    cout <<"\n";
    cout <<"  " << slot3 << "\t\n";
    cout <<"\n";
    cout <<"ÈÍÍÍÍÍÍÍÍÍÍÍÍÍͼ\n"; // NUL


Verzeichnis so :

Quellcode

1
2
3
 Ordner ( .svn)
           lala.sav
            Toa.sav


FunktionsWeiße :

Es sollen nur Files mit der Endung .sav eingelesen werden.
DIe dann in die SLots strings umgelagert werden( Die namen)
und deren Namen dann in den Boxen ausgegeben

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

69

23.08.2007, 20:55

Der Fehler ist hier:

C-/C++-Quelltext

1
vector< string > directory_list(3);


Lass die (3) weg, oder greif auf vorhandene Einträge zu:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
int i = 0;

        while ( ( entry = readdir( handle ) ) && ( directory_list.size() <= 3 ) )
        {
                std::string tmp_name( entry->d_name );

                if ( tmp_name != "." && tmp_name != ".." && tmp_name.find_last_of( extension ) == tmp_name.length()-1 )
                {
                        directory_list[ i ] = entry->d_name;
                        ++i;
                }
        }
@D13_Dreinig

Toa

Alter Hase

  • »Toa« ist der Autor dieses Themas

Beiträge: 944

Beruf: Research associate

  • Private Nachricht senden

70

23.08.2007, 20:58

Ahh du hast Recht darauf hab ich gar net mehr geachtet das da oben ja noch Dic_list(3) is :/ hab den Fehler Ununterbrochen in der Schleife gesucht ....

ICh bedanke mich bei allen für eure Mühe =) ... bin nun super Glücklich das es geht hihi

MFG Toa

Werbeanzeige