AnsiString::Format [done]



  • Hallo,
    ich habe ein Problem mit dem Format Befehl.

    Eigentlich sollte doch das hier gehen:

    int iZahl = 120;
    AnsiString MeinText;
    
    MeinText = Format("%i",iZahl,1);
    

    Tut es aber nicht.
    Hab ich hier was falsch kapiert?



  • BCB Hilfe ist dein Freund.

    Args_Size ist der Index des letzten Elements im Arrays Args (Anzahl der Argumente - 1).



  • ok, das ist mir entgangen (wusste nicht dass da ein array übergeben werden soll.)
    in der Hilfe hab ich folgenden Schnipsel gefunden

    Format("%8.2f", 123.456, 0);
    

    Der funtkioniert aber leider auch nicht. Was ist denn nun los? Steht so in der HIlfe und geht nicht? Lt. Compiler eine inkompatible Typumwandlung



  • Hallo

    dazu kannst du das Makro ARRAYOFCONST benutzen :

    Format("%8.2f", ARRAYOFCONST((123.456)));
    

    bis bald
    akari



  • ok, danke das funktioniert mal.
    aber ich glaube ich kapier das an sich nicht ganz.

    es sist ja AnsiString::Format(const AnsiString& format, const TVarRec *args, int size);

    format ist der zu bearbeitende eingangsstring

    args sind die Argumente, bzw. die Zahlen o.ä. die eingefügt werden

    size ist die Anzahl der Argumente (bzw. High(Array))

    ist das so richtig?

    das hier funktioniert nämlich nicht. kann zwar compiliert werden, stürzt aber ab

    int iJahresZahl = 100;
      ShowMessage(Format("Noch %i Jahre bis das klappt", ARRAYOFCONST((iJahresZahl))));
    


  • Hallo

    du must ja auch den richtigen Typ im Format-String angeben

    int iJahresZahl = 100;
    ShowMessage(Format("Noch %d Jahre bis das klappt", ARRAYOFCONST((iJahresZahl))));
    

    Welche das sind findest du in der BCB-Hilfe zu Format.

    bis bald
    akari



  • omg

    hab %d mit %i verwechselt... ^^

    danke für die tolle hilfe
    problem gelöst


Anmelden zum Antworten