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

Anonymous

unregistriert

1

15.01.2009, 16:53

Datei (fstream) löschen?

Hi,

ich habe das Problem, dass es in meinem neuen Spiel einen "Neu Anfangen"-Modus gibt. Dabei will ich, dass all die Dateien gelöscht werden.
Das heißt:

Menü > Optionen > Neu Anfangen > Dateien löschen

Ich benutz die Methode:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
        // Speichern und Beenden

        else if (Auswahl == 3)
        {
            ofstream OutputSpielstand ("Spielstand.1sr", ios::binary);
            OutputSpielstand.write ((char*) &Spieler, sizeof (Spieler));
            OutputSpielstand.close ();

            ofstream OutputGame ("Spielstand.1sr", ios::binary | ios::app);
            OutputGame.write ((char*) &Game, sizeof (Game));
            OutputGame.close ();

            ofstream OutputLevelauswahl ("Spielstand.1sr", ios::binary | ios::app);
            OutputLevelauswahl.write ((char*) &Levelauswahl, sizeof (Levelauswahl));
            OutputLevelauswahl.close ();
        }

Anonymous

unregistriert

2

15.01.2009, 16:55

Tipp für das nächste mal:

1. Hol nicht zu weit aus (Keinen interessiert wo das "Neu Anfangen" ist)
2. Komm zum Punkt.

Einfach sagen: "Hey, ist es möglich mit std::fstream eine Datei zu löschen? wenn nicht, wie kann ich eine löschen?"

Back to Topic:

fstream kann nur Dateien anlegen und modifizieren, nicht löschen, kopieren oder verschieben.

Für Windows gibt es DeleteFile.
http://msdn.microsoft.com/en-us/library/aa363915.aspx

drakon

Supermoderator

Beiträge: 6 513

Wohnort: Schweiz

Beruf: Entrepreneur

  • Private Nachricht senden

3

15.01.2009, 17:02

*Hust* In C gäbe es remove *Hust*

Duck und weg. :D

Anonymous

unregistriert

4

15.01.2009, 17:03

Zitat von »"unsigned long"«

Tipp für das nächste mal:

1. Hol nicht zu weit aus (Keinen interessiert wo das "Neu Anfangen" ist)
2. Komm zum Punkt.

Einfach sagen: "Hey, ist es möglich mit std::fstream eine Datei zu löschen? wenn nicht, wie kann ich eine löschen?"

Back to Topic:

fstream kann nur Dateien anlegen und modifizieren, nicht löschen, kopieren oder verschieben.

Für Windows gibt es DeleteFile.
http://msdn.microsoft.com/en-us/library/aa363915.aspx


Kann ich das jetzt auch normal so bei der Datei machen, die ich mit fstream erstellt habe?

drakon

Supermoderator

Beiträge: 6 513

Wohnort: Schweiz

Beruf: Entrepreneur

  • Private Nachricht senden

Anonymous

unregistriert

6

15.01.2009, 17:08

drakon
kusch kusch! :roll:

Luca
*tilt*

Mal so ne bescheidene Frage: Was denkst du hätte es für einen Unterschied, ob ich fstreams, FILE oder CreateFile aus der WinAPI benutze, in der Datei?

Anonymous

unregistriert

7

15.01.2009, 18:10

Ich habs jetzt versucht als erst Damit:

C-/C++-Quelltext

1
2
3
4
5
6
7
        // Neu Anfangen - Spieldaten löschen

        else if (Auswahl == 4)
        {
            BOOL WINAPI DeleteFile  (
            __in  LPCTSTR Spielstand.1sr
            );
        }


Kommt leider folgende Fehlermeldungen:

Quellcode

1
2
1>.\Hauptmenü.cpp(280) : error C2059: Syntaxfehler: 'Ungültiges Suffix für Zahl'
1>.\Hauptmenü.cpp(280) : error C2143: Syntaxfehler: Es fehlt ',' vor 'Konstante'


Die verstehe ich nicht. mit lpSpielstand.1sr habe ich es auch schon versucht.

Das ergibt keine Fehler:

C-/C++-Quelltext

1
2
3
            BOOL WINAPI DeleteFile  (
            __in  LPCTSTR InputSpielstand
            );


Jedoch löscht es meine Daten nicht.
Über die MSDN habe ich nachgeforscht; nichts gefunden.

8

15.01.2009, 18:16

Probiers mal so:

C-/C++-Quelltext

1
2
3
4
5
// Neu Anfangen - Spieldaten löschen

else if (Auswahl == 4)
{
    DeleteFile ("Spielstand.1sr");
}


Im übrigen: Reicht es nicht, die Dateien einfach zu leeren?
fka tm

Anonymous

unregistriert

9

15.01.2009, 18:22

Du musst noch viel lernen... viele viele grundlagen... sehr viele grundlagen...

Anonymous

unregistriert

10

15.01.2009, 18:23

Zitat von »"TrikkieMikkie"«

Probiers mal so:

C-/C++-Quelltext

1
2
3
4
5
// Neu Anfangen - Spieldaten löschen

else if (Auswahl == 4)
{
    DeleteFile ("Spielstand.1sr");
}


Im übrigen: Reicht es nicht, die Dateien einfach zu leeren?


Fehlermeldung:

Quellcode

1
2
1>.\Hauptmenü.cpp(279) : error C2664: 'DeleteFileW': Konvertierung des Parameters 1 von 'const char [15]' in 'LPCWSTR' nicht möglich
1>        Die Typen, auf die verwiesen wird, sind nicht verknüpft; die Konvertierung erfordert einen reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat


Will sie darum nicht leeren^^

Werbeanzeige