const char nach AnsiString wandeln



  • Hallo,
    ich möchte ein const char string nach AnsiString wandeln
    ASpassword = AnsiString(Bpassword,10);
    und dann mit dem Inhalt eines Edit Fensters vergleichen.

    void __fastcall Tfpassword::Einsert_passwordKeyDown(TObject *Sender, WORD &Key,
          TShiftState Shift)
    {
         if(Key == 13)
         {
              if(Einsert_password->Text == ASpassword)
              {
                   fmain_window->Timer2->Enabled = true;
                   Close();
              }
              else
              {
                   Einsert_password->Clear();
                   Einsert_password->SetFocus();
                   Label1->Caption = "Wrong Password";
                   Timer1->Enabled = true;
              }
         }
    
    }
    

    Das umwandeln von const char nach AnsiString scheint ok zu sein
    der Debugger Zeigt für ASpassword = 1234
    im Edit Fenster steht ebenfalls 1234.
    Der Vergleich schlägt allerdings fehl.
    Initialisiere ich ASpassword allerdings direkt mit AnsiString ASpassword = "1234" ohne "ASpassword = AnsiString(Bpassword,10);"
    funktioniert es.
    Unter FAQ finde ich nur die Umwandlung von AnsiString nach const char.



  • Hallo guten Morgen,

    AnsiString ist das C++Builder-Gegenstück zu dem langen String-Typ von Delphi. Unter der Hilfe zu AnsiString findest du alle Methoden die die Klasse bietet. Die Umwandunlung sollte auf diese Weise zu realisieren sein:

    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
    	char*	ccstring = new char[12];
    	AnsiString astr;
    
    	strcpy (ccstring, "1234");
    	astr = ccstring;
    }
    

    Evi48



  • char* Eingabe;
    AnsiString Umwandlung;
    Umwandlung = String(Eingabe);
    


  • Umwandlung = Eingabe;
    

    Der Cast erfolgt implizit.


Anmelden zum Antworten