String in AnsiString konvertieren



  • Hallo,

    ich habe folgende Methode:

    string Kunde::KundeLaden(int inKundenID)
    {
    string text;
    
    ifstream datei("kunden\\1_*.txt");
    if( !datei ) throw "Fehler beim Öffnen!";
    
    datei >> text; // Eine Zeile in die Variable text einlesen
    
    datei.close();
    return text;
    
    }
    

    und möchte dann einfach nur den Text in die Zelle schreiben

    Kunde k1;
    KdListe->Cells[1][1]=k1.KundeLaden(1);
    

    Allerdings meckert der kompiler dann, das er string nicht nach AnsiString konvertieren kann.
    Ich kenn zwar die Funktion um einen AnsiString in einen c_string umzuwandeln, aber nichts um es umgekehrt machen zu lassen.
    Oder gibt es vieleicht von Borland eine Funktion zum Datei lesen, schreiben usw. die mit AnsiString arbeitet.
    Und kann ich beim Datei öffnen eine Joker angeben (so wie oben versucht?)

    mfg und danke



  • Hallo,

    c_str() gibt einen const char* sowohl bei string als auch bei AnsiString zurück. Damit kannst du z.Bsp. konvertieren.

    KdListe->Cells[1][1]=k1.KundeLaden(1).c_str();
    

    Desweiteren kann man AnsiString auch bei streams verwenden.
    Aus der Hilfe zu AnsiString

    Note: If you #include <iostream> or #define VCL_IOSTREAM before the include statement for dstring.h (which is typically included indirectly via vcl.h), you can use the streaming operators (<< and >>) with AnsiStrings as an argument:

    ostream& operator << (ostream& os, const AnsiString& arg);
    istream& operator >> (istream& is, AnsiString& arg);


Anmelden zum Antworten