ListView Daten Speichern und Laden



  • Hallo...

    ich hoffe dass ich hier richtig bin...
    leider hat die suche nichts gefunden...

    hab ein kleines prog geschrieben das über 4 TextBoxen Daten in eine ListView schreibt... (Die ListView hat 4 Spalten)
    Diese Speicher ich dann über eine Methode in eine Datei...
    Jetzt der Fehler: Beim laden der Datei werden nur die ersten beiden Spalten gefüllt und die letzten beiden bleiben leer...

    Ich denke der Fehler ist in Zeile 45-47 aber ich sehe ihn nicht 😞

    Ich Danke für jede Hilfe...

    Code:

    //-----------------------------------------------------------
    //----------------DatenSpeichern-----------------------------
    bool DatenSpeichern(String^ name)
    			 {
    				 if(Medienname=="") {  SpeichernUnter(); }
    				else 
    				{
    				 try
    				 {
    				 IO::FileStream^ fs = gcnew IO::FileStream(name, IO::FileMode::Create, IO::FileAccess::Write);
    				 IO::BinaryWriter^ dat = gcnew IO::BinaryWriter(fs);
    				 dat->Write(listView1->Items->Count);
    				 for each(ListViewItem^ lvi in listView1->Items)
    				 {
    					 dat->Write(lvi->SubItems[0]->Text);
    					 dat->Write(lvi->SubItems[1]->Text);
    					 dat->Write(lvi->SubItems[2]->Text);
    					 dat->Write(lvi->SubItems[3]->Text);
    
    				 }
    				 dat->Close();
    				 return(true);
    
    				 }
    			 catch(IO::IOException^ e)
    			 {
    				 MessageBox::Show("Speicherfehler!", "Medien", MessageBoxButtons::OK, MessageBoxIcon::Exclamation);
    				 return(false);
    			 }}
    		} 
    //----------------------------------------------------------------------
    //----------DatenLaden--------------------------------------------------
    
    bool DatenLaden(String^ name)
    {
    	try
    	{
    		listView1->BeginUpdate();
    		listView1->Items->Clear();
    		IO::FileStream^ fs = gcnew IO::FileStream(name, IO::FileMode::Open, IO::FileAccess::Read);
    		IO::BinaryReader^ dat=gcnew IO::BinaryReader(fs);
    		int anz=dat->ReadInt32();
    		for(int i=0; i<anz; i++)
    		{
    			ListViewItem^ lvi=gcnew ListViewItem(dat->ReadString());
    			lvi->SubItems->Add(dat->ReadString());
    		  	listView1->Items->Add(lvi);
    
    		}
    		dat->Close();
    		UpdateAnzahl();
    		return(true);
    	}
    	catch(IO::IOException^ e)
    	{
    		listView1->Items->Clear();
    		MessageBox::Show("Ladefehler!", "Medien", MessageBoxButtons::OK, MessageBoxIcon::Exclamation);
    		return(false);
    	}
    	finally
    	{
    		listView1->EndUpdate();
    	}
    }
    


  • J0HN schrieb:

    ich hoffe dass ich hier richtig bin...
    leider hat die suche nichts gefunden...

    Nein...

    C++ und C++/CLI sind zwei unterschiedliche Sprachen (Auch wenn letztere auf der Syntax von ersterer Aufbaut). Zudem kennt ANSI C++, also der C++ Standard, keine graphische Oberfläche.

    Möge ein Moderator diesen Thread bitte in das C++/CLI-Forum verschieben?



  • Danke für die schnelle Antwort....

    Ich schreibe den Beitrag gleich in das richtige Forum....

    Kann gelöscht werden !!!

    Danke...



  • J0HN schrieb:

    Ich schreibe den Beitrag gleich in das richtige Forum....

    Kann gelöscht werden !!!

    Hier wird in der Regel nichts gelöscht, sondern man sollte warten bis man verschoben wird...



  • Aha...

    Danke für die Information, leider hab ich schon den Beitrag neu geschreiben ^^

    Du kannst mir nicht zufällig helfen asc ? ?

    Thx



  • J0HN schrieb:

    Du kannst mir nicht zufällig helfen asc ? ?

    Ich habe mich mit C++/CLI nur am Rande, und mit WinForms gar nicht beschäftigt (Unter C# verwende ich die WPF).

    Was mich persönlich verwundert ist die Abfrage der Anzahl Datensätze. Unter einer Funktion IO::BinaryReader::ReadInt32 [Edit: Sorry, den einen Schreibzugriff übersehen] würde ich nicht auf die Abfrage der Datenmenge tippen. Und im Zweifel erst einmal im Debugger prüfen wie die Werte sind (Auch schon die Datei mit einem Hexeditor betrachtet?)...



  • asc schrieb:

    Und im Zweifel erst einmal im Debugger prüfen wie die Werte sind (Auch schon die Datei mit einem Hexeditor betrachtet?)...

    Was meinst du im Debugger prüfen? Also das Prog läuft ja und es kommt auch keine Fehlermeldung...
    Nein den Hexeditor hab ich nicht benutzt... glaube da würde ich nicht durchsehen...



  • J0HN schrieb:

    Was meinst du im Debugger prüfen? Also das Prog läuft ja und es kommt auch keine Fehlermeldung...

    Wenn wir an der Arbeit Programme weitergeben würden, sobald sie im Compiler keine Fehler mehr melden, wären wir schnell unsere Kunden los 😉 Der Compiler kann auch nur bestimmte Fehler finden...

    Falls du keine Kenntnisse vom Debugger hast solltest du das sehr schnell aneignen (Du kannst Anwendungen in Einzelschritten durchlaufen, Variablenwerte zur Laufzeit auslesen...).

    J0HN schrieb:

    Nein den Hexeditor hab ich nicht benutzt... glaube da würde ich nicht durchsehen...

    Hexeditor wäre auch mit der letzte Weg. Debugger der Erste.



  • Dieser Thread wurde von Moderator/in evilissimo aus dem Forum C++ in das Forum C++/CLI mit .NET verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.


Anmelden zum Antworten