AnsiString speichern und laden



  • Hi Leute
    ich hab ein kleines Problem.
    In meinem Quelltext hab ich ein AnsiString Array das ich gerne in einer datei speichern würde und auch wieder laden.

    void DString::speichern(AnsiString s)
    {
            FILE *file1;
            file1=fopen(s.c_str(),"w+t");
            fwrite(&index,sizeof(int),1,file1);
            for(int i=0;i<index;i++)
            {
    
                    fwrite(&a[i],sizeof(AnsiString),1,file1);
            }
            fclose(file1);
    }
    void DString::laden(AnsiString s)
    {
            FILE *file1;
            file1=fopen(s.c_str(),"r+t");
            fread(&index,sizeof(int),1,file1);
            a= new AnsiString[index];
            b= new AnsiString[index];
            for(int i=0;i<index;i++)
            {
                    fread(&a[i],sizeof(AnsiString),1,file1);
    
            }                    
            fclose(file1);
    }
    

    kann mir irgendjemand sagen warum das so net funktioiert, und mir zeigen wie man sowas macht??
    danke!



  • Dieser Thread wurde von Moderator/in volkard aus dem Forum C++ in das Forum Borland C++ Builder (VCL/CLX) verschoben.

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

    Dieses Posting wurde automatisch erzeugt.



  • AnsiString ist kein Datentyp wie int oder char, sondern eine Klasse. Hast du dir mal angesehen, was sizeof(AnsiString) in den einzelnen Fällen zurückgibt?

    Üblicherweise benutzt im BCB für soetwas kein herkömmliches Array sondern eine weitere Klasse wie z.B. TstringList. Die verfügt dann auch schon über fertige Methoden zum Lesen und Schreiben von Dateien.



  • ok das hilft mir schonmal weiter
    wie bekomm ich das raus???
    oder hast du eine idee wie genau ich das programmieren soll?



  • Einfach mal die Hilfe zu TStringList studieren! Zu den Eigenschaften und Methoden gibt's dort auch Beispiele.


Anmelden zum Antworten