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

51

22.08.2007, 22:30

Hmm ... wie wäre es, wenn du uns sagst, was er dir Ausgibt. also beim 1. cout ...

an sonnsten kann dein Problem daran liegen, das die Länge nicht null basiert ist ... und find_last_of aber null-basierte Werte zurück geben spollte ... also noch 1 von tmp_name.length() abziehen ... aber ist nur so ne Überlegung.
Devil Entertainment :: Your education is our inspiration
Der Spieleprogrammierer :: Community Magazin
Merlin - A Legend awakes :: You are a dedicated C++ (DirectX) programmer and you have ability to work in a team? Contact us!
Siedler II.5 RttR :: The old settlers-style is comming back!

Also known as (D)Evil

Toa

Alter Hase

  • »Toa« ist der Autor dieses Themas

Beiträge: 944

Beruf: Research associate

  • Private Nachricht senden

52

22.08.2007, 22:34

Also es liegt 100 % an dem

Quellcode

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


Wenn ich die FUnktion dann so schreibe :

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
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 != ".." )
       {
        std::cout << tmp_name << std::endl;
        directory_list.push_back(tmp_name);
}
}


Verzeichnis sieht so aus :

Quellcode

1
2
.svn
lala.sav


Dann gibt er mir .svn aus aber das lala.sav nicht :/ sehr komisch .. mit dem

Quellcode

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


Also zusatz der If Schleife gibt er mir nicht mal .svn aus .. :/

Was soll ich nun machen :/

53

23.08.2007, 16:12

Ja warum sollte er auch .svn ausgeben? Wäre nicht sinnvoll ...
hab dir doch schon geschrieben was du machen sollst:

C-/C++-Quelltext

1
tmp_name.find_last_of(extension) == (tmp_name.length() - extension.length() - 1)
... - 1, da find_last_of null-basiert sein sollte.
Devil Entertainment :: Your education is our inspiration
Der Spieleprogrammierer :: Community Magazin
Merlin - A Legend awakes :: You are a dedicated C++ (DirectX) programmer and you have ability to work in a team? Contact us!
Siedler II.5 RttR :: The old settlers-style is comming back!

Also known as (D)Evil

Toa

Alter Hase

  • »Toa« ist der Autor dieses Themas

Beiträge: 944

Beruf: Research associate

  • Private Nachricht senden

54

23.08.2007, 16:29

Er geht einfach nicht in die IF schleife , die bedingung ergibt nicht treu für ihn.
Sieht nun so aus :

C-/C++-Quelltext

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


MFG Toa

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

55

23.08.2007, 16:44

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

56

23.08.2007, 18:26

oO wie kommst du denn darauf ^^ seid wann ist die extension denn nur 1 char lang :D
Devil Entertainment :: Your education is our inspiration
Der Spieleprogrammierer :: Community Magazin
Merlin - A Legend awakes :: You are a dedicated C++ (DirectX) programmer and you have ability to work in a team? Contact us!
Siedler II.5 RttR :: The old settlers-style is comming back!

Also known as (D)Evil

Toa

Alter Hase

  • »Toa« ist der Autor dieses Themas

Beiträge: 944

Beruf: Research associate

  • Private Nachricht senden

57

23.08.2007, 19:13

Ups :

Quellcode

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


C-/C++-Quelltext

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


DIe If bedingung liefert leider trotzdem kein True :/ ... das gibts doch net oda ?

@ David

Ich möchte testen ob die file die eingelesen wird die endung .sav hat also zb:

lala.sav so files sollen eingelesen werden und ordner und andere nicht

58

23.08.2007, 19:59

Sama du scheinst den Code j noch nicht mal zu kapieren ?! extension.length() sind schon die 4! -1 dann nur noch dazu damit er eine null-indexierung hat.
Devil Entertainment :: Your education is our inspiration
Der Spieleprogrammierer :: Community Magazin
Merlin - A Legend awakes :: You are a dedicated C++ (DirectX) programmer and you have ability to work in a team? Contact us!
Siedler II.5 RttR :: The old settlers-style is comming back!

Also known as (D)Evil

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

59

23.08.2007, 20:05

Zitat von »"Deviloper"«

oO wie kommst du denn darauf ^^ seid wann ist die extension denn nur 1 char lang :D


Schonmal geschaut was find_last_of() zurückgibt? :roll:
@D13_Dreinig

Toa

Alter Hase

  • »Toa« ist der Autor dieses Themas

Beiträge: 944

Beruf: Research associate

  • Private Nachricht senden

60

23.08.2007, 20:07

Ihr verwirrt mich xD .. ich steh grad voll aufm Schlauch , was soll ich Nullen und warum ? ... zeigt das pls ma... raff grad nichts jeder sagt was anderes

Werbeanzeige