Von AnsiString zu Char den Inhalt uebertragen.



  • Hallo,

    Ich habe eine Edit1->Text nur eine Buchstabe inhaltet.(habe beschrängt).

    ich wollte den AnsiString in Char variable uebertragen. kann jemand sagen, wie es gaht?

    Ich habe folgendes Ausprobiert:

    char Z_Laufwerk='C';

    strcpy(Z_Laufwerk,Edit1->Text.c_str()); // es klappt nicht.

    Gruss,
    S.Mathi 😮



  • FAQ

    Gruß,

    Alexander



  • WAS klappt denn nicht?



  • Ich habe so ändert, wie in FAQ stand. Es wird von Kompailer akzeptiert,aber passert ein Laufzeitfehler:

    char Z_Laufwerk='C';
    Z_Laufwerk=Edit1->Text[0];

    Der Fehler passiert in dstring.h

    auf die Zeile:

    [cpp] char& __fastcall operator [](const int idx)
    {
    ThrowIfOutOfRange(idx); // Should Range-checking be optional to avoid overhead ?? Fehler Zeile
    Unique(); // Ensure we're not ref-counted
    return Data[idx-1];
    }[/cpp]

    So dann habe ich 2 variante ausprobiert:

    char Z_Laufwerk='C';

    strcpy(Z_Laufwerk,Edit1->Text.c_str());

    Eine Fehlermeldung kommt von Kompailer:

    "[C++ Fehler] Unit1.cpp(95): E2034 Konvertierung von 'char *' nach 'char' nicht möglich"

    was mache ich falsch? 😮

    Gruss,
    S.Mathi


  • Mod

    Hallo

    womit faengt ein AnsiString an (mit 0 oder 1) 😕

    MfG
    Klaus



  • KlausB schrieb:

    Hallo

    womit faengt ein AnsiString an (mit 0 oder 1) 😕

    MfG
    Klaus

    mit 1
    also

    char Z_Laufwerk='C';
    Z_Laufwerk=Edit1->Text[1];
    

    bis bald
    akari


  • Mod

    Hallo

    @akari
    warum verraetst du denn alles 🤡
    lass ihn doch mal ein bischen denken

    Moeglicherweise fuehrt das dazu, das er weitere (unnoetige) Fragen
    schon vorher durch Ueberlegen sich selbst beantwortet

    MfG
    Klaus



  • Hallo guten Morgen

    Der Wissens- und Erfahrungsstand eines Jeden hier im Forum ist unterschiedlich das sollte auch von denen berücksichtigt werden die in C zu Hause sind.

    Evi48



  • Um nochmal auf das ursächliche Problem zurückzukommen... Du hast versucht einem einzelnen char-Zeichen eine char*-Zeichenkette zuzuweisen. Das kann nicht funktionieren, weii eine Zeichenkette immer mit \0 als Endezeichen versehen wird. Für eine Zeichenkette werden also immer mindestens 2 Byte benötigt, während Du nur ein einziges Byte zur Verfügung gestellt hast...



  • Hallo,
    danke Joe_M. so habe ich auch nicht über das Problem nachgedacht.

    Evi48


Anmelden zum Antworten