char array zu einem AnsiSring ?



  • Hallo !
    ist es möglich ein char array auf einfache Weise in einen AnsiString zu konvertieren ohne eine Schleife zu benutzen ?

    unsigned char filename[15];
    fread(&filename, 15, 1, tFile);
    
    AnsiString FName = "";
    
    for(int x = 0; x < 15 ; x++)
       {
          FName += char(filename[x]);
       }
    


  • Hallo

    Hat denn AnsiString keinen Konstruktor aus char[]?

    AnsiString FName = filename;
    

    Außerdem solltest du gleich TFileStream/TStringList benutzen umd Dateien einzulesen, dann kannst du gleich AnsiString verwenden ohne Umweg über char[].
    (Wenn du natürlich binäre Daten einliest darfst du gar nicht AnsiString verwenden)

    bis bald
    akari



  • akari schrieb:

    Außerdem solltest du gleich TFileStream/TStringList benutzen umd Dateien einzulesen, dann kannst du gleich AnsiString verwenden ohne Umweg über char[].
    bis bald
    akari

    Ja danke, ich liebe TStringList, ist sehr schnell und sehr gut zu handhaben, aber es ist nunmal eine Binär-Datei, wo ich u.a. einen Datei Namen auslesen muß und dann als AnsiString brauche.



  • akari schrieb:

    Hallo

    Hat denn AnsiString keinen Konstruktor aus char[]?

    AnsiString FName = filename;
    

    bis bald
    akari

    AnsiString FName = filename;
    

    [BCC32 Fehler] test.cpp(243): E2285 Keine Übereinstimmung für 'AnsiString::AnsiString(const AnsiString&)' gefunden



  • Es gibt halt leider keinen AnsiString-Konstruktor für unsigned char*. Muß dein filename unsigned sein?



  • Braunstein schrieb:

    Muß dein filename unsigned sein?

    gute Frage 🙂 Danke für den Tip ! ist so ne Gewohnheit unsigned zu benutzen (sicher ist sicher), aber wenn ich es mir so richtig überlege eigentlich nicht. Da es ja ein Datei Name ist, müßten ja die 125 Zeichen reichen. oder sehe ich da etwas falsch ?



  • Ich denke, dass siehst du richtig. Zeichen die die nicht in einen signed char passen sind, glaube ich, sowieso nicht zugelassen.
    Interessanter wird die ganze Sache aber mit Unicode. 🙂



  • Hallo

    Es ist ja nicht so das signed char weniger Zeichen aufnehmen kann als unsigned char. Der Wertebereich ist von der Größe her derselbe, nur eben verschoben. Es kommt also nicht zu einem Datenverlust, sondern eher zu einer Bedeutungsverschiebung.

    bis bald
    akari



  • akari schrieb:

    Hallo
    Es ist ja nicht so das signed char weniger Zeichen aufnehmen bis bald
    akari

    ist schon klar.
    manchmal steht mal halt auf dem Schlauch.
    Aber danke nochmals.


Anmelden zum Antworten