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

storage

Treue Seele

  • »storage« ist der Autor dieses Themas

Beiträge: 138

Wohnort: Bad Salzungen

  • Private Nachricht senden

1

19.11.2007, 14:42

Datei Lesen und Schreiben

Hi leutz!

Ich habe mir jetzt ne Windows Application geschrieben, die funktioniert soweit auch ganz gut.Das Problem ist wenn ich meine Datei in das Listview Lade und dann noch ein Item in Listview über das Formular hinzufüge,habe ich eine Zeile die leer ist dazwischen.Ich weiß einfach nicht woran das liegt,wenn ich über das Formular ein Item in die Listview eintrage wird das auch gleich gespeichert in der File und wenn ich das Programm ernuet lade und wieder die datei laden lasse,ist der leerraum weg,der kommt nur wenn ich nachdem laden noch ein Item über das Formular adde.

Datei lesen:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
        AnsiString sTempFile;
    sTempFile = ExtractFilePath(Application->ExeName) + "\\realmlist.txt";
    char* sFile = sTempFile.c_str();
    fstream file(sFile, ios::app|ios::in);
    char buffer[255];
    if (file.good())
    {
        while(!file.eof())
        {
            file.getline(buffer,sizeof(buffer));
            lv->AddItem(buffer, lv);
            cmdLoad->Enabled = false;
            cmdAddRealm->Enabled = true;
        }
    }
    else
    {
        ShowMessage("Fehler beim öffnen der Datei!");
        file.close();
    }



Datei Schreiben:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
AnsiString sTempFile;
    sTempFile = ExtractFilePath(Application->ExeName) + "\\realmlist.txt";
    char* sFile = sTempFile.c_str();
    fstream file(sFile, ios::app|ios::in);
    if (file.good())
    {
        file << txtRealm->Text.c_str();
        lv->AddItem(txtRealm->Text, lv);
    }
    else
    {
        ShowMessage("Fehler beim öffnen der Datei!");
        file.close();
    }

Osram

Alter Hase

Beiträge: 889

Wohnort: Weissenthurm

Beruf: SW Entwickler

  • Private Nachricht senden

2

19.11.2007, 20:13

Debug es halt durch, indem Du auf jedes
lv->AddItem()
einen Breakpoint setzt und dann nachschaust ob bzw wann und wo ein leerer String übergeben wird.

Ist evtl die letzte Zeile in Deiner Datei leer?
"Games are algorithmic entertainment."

storage

Treue Seele

  • »storage« ist der Autor dieses Themas

Beiträge: 138

Wohnort: Bad Salzungen

  • Private Nachricht senden

3

19.11.2007, 20:30

Ja die ist leer,weil ich zum Programm nur einen Eintag mitliefere,den rest können die User dann selbst hinein schreiben.Ich ahbe auch gemerkt wenn cih die datei mit notepad oder Editor anlege und den Cursor vor dem wort lasse er alles anhägt an das erste wort und wenn ich den Cursor hinter dem wort mache,kommt das mit der einen freien stelle im listview.

Werbeanzeige