Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » VC++ / MFC » Automatisches Speichern

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: [ 1 ] [ 2 ] [ 3 ] > 4 <
030
08.10.2004, 22:20 Uhr
xXx
Devil


Ich hab jetzt es versucht mit dem folgenden Code zu machen;

Code:

void CVokabeltraineraDlg::Serialize(CArchive &ar)
{
    // Funktion der Basisklasse aufrufen
    CObject::Serialize(ar);

    int vokabeln = m_ListCountries.GetItemCount();
    int zeile = 0;

    // Wird geschrieben?
    if (ar.IsStoring())
        
        ar << m_train;
        // Alle Variablen in der richtigen Reihenfolge schreiben
        for (int i = 0; i < vokabeln; i++)
        {
            ar.WriteString(m_ListCountries.GetItemText(zeile,0));
            ar.WriteString(m_ListCountries.GetItemText(zeile,1));
            ar.WriteString(m_ListCountries.GetItemText(zeile,2));
            zeile++;
        }
        
    else
        
        ar >> m_train;
        for (int f = 0; f < vokabeln; f++)
        {
            ar.ReadString(m_ListCountries.GetItemText(zeile,0));
            ar.ReadString(m_ListCountries.GetItemText(zeile,1));
            ar.ReadString(m_ListCountries.GetItemText(zeile,2));
            zeile++;
        }
        // Alle Variablen in der richtigen Reihenfolge lesen
}


Aber das Problem dabei ist das man keine For-Schleife in einer If-Schleife machen kann, oder gibts es doch einen weg? Oder gibt es noch ne andere Schleife die man aber auch in einer If-Schleife ausführen kann, die man anstelle vaon meinen beiden For-Schleifen setzten könnte?

Mit dem oben gezeigten Code meldet der folgenden Fehler:

Bearbeitung von Benutzer:

--------------------Configuration: vokabeltrainer a - Win32 Debug--------------------
Compiling...
vokabeltrainer aDlg.cpp
C:\Programme\Microsoft Visual Studio\MyProjects\vokabeltrainer a\vokabeltrainer aDlg.cpp(449) : error C2181: illegal else without matching if
Error executing cl.exe.

vokabeltrainer a.exe - 1 error(s), 0 warning(s)


Dieser Post wurde am 08.10.2004 um 22:21 Uhr von xXx editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
031
09.10.2004, 11:23 Uhr
Darky



Warum soll das nicht gehen ????
Du mußt auf die richtige Syntax achten, ich hätte nach if und else erstmal ne klammer geöffnet mit { und irgendwann z.B. vorm else wieder geschlossen mit } !!!

PS. lies Dir doch erstmal n paar Bücher durch und versuch es dann nochmal!!

noch n Tip :
solltest Du n SDI Projekt am laufen haben(was ich stark vermute) und Dein handspeichern funzt schon kannst Du mit

OpenDocumentFile("pfad+namen.dat")
in der APP-klasse ->Funktion initinstance wunderbar dein Document öffnen beim Programmstart (vorausgesetzt Du hast die speicherdatei schon angelegt)
ACHTUNG sollte die speicherdatei größer werden und somit das laden länger dauern, mußt Du den Klassenaufbau verzögern bis die Datei fertig geladen ist( nimmst n timer und prüfst auf ne var die Du ganz zuletzt in der Serialize stehen hast)



speichern mit Pfadabfrage in irgendwelchen Funktionen


Code:


             //zugriff auf die Documentclass
      CmeineDoc* pDoc=dynamic_cast<CmeineDoc*>(GetDocument());
             // kannst auch die var pDoc in der header anlegen  und =GetDocument() nehmen
            
          
    static char BASED_CODE filter[] = "vokabel (*.dat)";
    
    CFileDialog dlg(false,"dat","vokabel",NULL,filter);

    if(dlg.DoModal()==IDOK)
    {
        CString pfad;
        pfad.Format("%s",dlg.GetPathName());
        
        //speichern ansich                    
        pDoc->OnSaveDocument(pfad);

            
    }


das ganze geht auch ohne Pfadabfrage

C++:

CmeineDoc* pDoc=dynamic_cast<CmeineDoc*>(GetDocument());

pDoc->OnSaveDocument("pfad+name.dat");




Voraussetzung für OnSaveDocument() ist aber, daß Du ein Document geöffnet hast!!!!!
Solltest Du nicht in der APP laden wollen sondern erst in der Anwendungsklasse
kannst Du auch OnOpenDocument("pfad") benutzen( ist auch Bestandteil der CDocument)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
032
09.10.2004, 11:38 Uhr
xXx
Devil


Danke für die Lösung aber ich verwende nen Dialogbasierte Anwendung!!! Das mit den { und } werd ich aber mal versuchen!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
033
09.10.2004, 11:49 Uhr
xXx
Devil


Mit welcher Funktion könnte ich blos das ganze da wieder einlesen, auslesen tu ich momenten wie folgt:

Code:

void CVokabeltraineraDlg::Serialize(CArchive &ar)
{
    // Funktion der Basisklasse aufrufen
    CObject::Serialize(ar);

    int vokabeln = m_ListCountries.GetItemCount();
    int zeile = 0;

    // Wird geschrieben?
    if (ar.IsStoring())
    {
        ar << m_train;
        // Alle Variablen in der richtigen Reihenfolge schreiben
        for (int i = 0; i < vokabeln; i++)
        {
            ar.WriteString(m_ListCountries.GetItemText(zeile,0));
            ar.WriteString(m_ListCountries.GetItemText(zeile,1));
            ar.WriteString(m_ListCountries.GetItemText(zeile,2));
            zeile++;
        }
    }    
    else
    {
        ar >> m_train;
          // Alle Variablen in der richtigen Reihenfolge lesen
    }
}


nun liest er acuh schon den zustand meiner CheckBox aus nur wie bekomme ich die daten die ich in meiner For-Schleife gespeichert hab in meiner else wieder eingelesen?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
034
09.10.2004, 13:10 Uhr
Darky



genau so nur mit ar >> & readstring !!
Da gibt es ne taste die nennt sich F1 , welche dann auch erstaunlicherweise die MSDN Lib. aufruft falls man diese installiert hat, das soll helfen.....!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
035
10.10.2004, 18:42 Uhr
xXx
Devil


Hi Darky,

Ich bekomm das mit der ReadString Funktion irgendwie nicht auf die Reie, könntest du mir den @uellcode dafür nicht einfach posten?

Wer echt nett

Dieser Post wurde am 10.10.2004 um 18:42 Uhr von xXx editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
036
10.10.2004, 18:46 Uhr
Spacelord
Hoffnungsloser Fall


Du bist echt unverschämt!
Lern erstmal C++ und dann kannst du irgendwann auch mal selber Win-Anwendungen schreiben...
--
.....Ich mach jetzt nämlich mein Jodeldiplom.Dann hab ich endlich was Eigenes.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
037
10.10.2004, 20:57 Uhr
xXx
Devil


@Spacelord: Du bist ja überhauptnicht Änfenger feindlich!!! Und was ist daran unverschämt wenn ich Darky darum bitte mir nen Beispielcode dafür zu geben?






PS: Mann sollte erst bei sich anfangen zu meckern!!!(sonnst ist man >unverschämt<)

Dieser Post wurde am 10.10.2004 um 20:58 Uhr von xXx editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
038
10.10.2004, 21:13 Uhr
mike
Pinguinhüpfer
(Operator)


Das hat nichts mit Anfängerfeindlich zu tun!
Du kannst auch nicht von heute auf morgen den Mount Everest bezwingen. Lies dir "Visual C++ in 21 Tagen" mal durch. Am Besten zuerst "C++ in 21 Tagen".

Weil ich dir das schon jetzt zum xten Mal empfehlen muss, schließ ich den Thread. Der Thread hatte auch nie eine konkrete Frage - du wolltest nur den fertigen Source sehen!
--
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: [ 1 ] [ 2 ] [ 3 ] > 4 <     [ VC++ / MFC ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: