AnsiString zeichenweise in andere Variablen



  • hiho,

    mal wieder ne klitze kleines problem und zwar hab ich nen ansistring wo ich vorher nie weiß wieviel drin steht d.h. 5-16 zeichen, wobei ich jedes Zeichen einzeln brauche und damit weiterarbeite.
    mein lösungs ansatz war der:

    AnsiString abc;
    int laenge;

    abc=Edit1->Text;
    laenge = abc.Length();

    for(int i=1;i<=laenge;i++)
    {
    //ja und jetzt bin ich am Straucheln 😉

    ja ich denk das geht mit einem array aber mit sowas habe ich mich noch nie befasst und kapiers ehrlich gesagt auch nicht ganz 😡
    habts ihr eine idee?

    mfg



  • haha endlich darf ich das mal sagen:

    das steht in der faq
    unter ansiString -> zeichen für zeichen auslesen



  • Hmm
    entweder mit der Methode SubString( i, 1 )
    oder in ein char* String casten.

    edit: oder einfach mit operator[] *schäm*



  • Hallo

    AnsiString abc;
    int laenge;
    
    abc=Edit1->Text;
    laenge = abc.Length();
    
    for(int i=1;i<=laenge;i++)
    {
      abc[i] ... // mit dem Zeichen an Position i arbeiten 
    }
    

    Hier ein Tutorial zu Arrays allgemein.
    Allerdings ist AnsiString kein C-Array, verhält sich aber dank []-Operator so.

    bis bald
    akari



  • 1310-Logik schrieb:

    ...
    oder in ein char* String casten. ...

    Darüber solltest du nochmal gründlich nachdenken. Das geht nämlich daneben. Du kannst schließlich nicht eine Klasse einfach so in ein char* casten und erwarten, dass da was vernünftiges rauskommt.



  • Braunstein schrieb:

    1310-Logik schrieb:

    ...
    oder in ein char* String casten. ...

    Darüber solltest du nochmal gründlich nachdenken. Das geht nämlich daneben. Du kannst schließlich nicht eine Klasse einfach so in ein char* casten und erwarten, dass da was vernünftiges rauskommt.

    öööhm ja ne is klar..mit c_str() latürnich..konvertieren meint ich..haut mich



  • int a=[20]; 
    
    for(int i=1;i<=laenge;i++)
      {
      a[z] = abc.SubString(i,1).ToInt();
      z++;
      }
    

    habs jetzte so jemacht! Danggeschön.


Anmelden zum Antworten