austauschbare strings mit %s



  • Ahllo,

    ich mal wieder, habe meine austauschbare Sprachdatei fast fertig, leider habe ich nun ein kleine Problem mit Ausdrücken die "%s" oder auch "%i" enthalten, z.B. möchte ich folgenden Text ändern ("Die Datei %s ist %i Byte groß", file, size) wobei ich für "Die Datei %s ist %i Byte groß" einen string verwenden möchte in dem ich verschiedene Sprachdateien verwenden kann so: "The file %s has a size of %i byte" in etwa. Wie würdet ihr das Problem lösen. Ich habe jetzt in meinem Programm für jeden Text eine char variable angelegt, die aus einer Sprachdatei mit dem entsprechenden Text belegt wird. Aber wie gesagt bei obigem Problem hänge ich jetzt erst einmal, schon mal vorweg ich möchte keinen Resourceneditor benutzen um die div. Sprachen von vorneherein mit ins Programm zu integrieren.

    Kann jemand helfen?



  • Um ehrlich zu sein ist mir dein Problem nicht ganz klar. Woran genau hapert's denn? Du hast doch in etwa sowas, oder?

    char *en = "This is a string with %u characters\n";
    char *de = "Das ist ein String mit %u Buchstaben\n";
    printf(en, strlen(en));
    printf(de, strlen(de));
    


  • meinste sowas?

    #define DEUTSCH   // <<-- ändern
    ...
    #if defined (DEUTSCH)
    #define TXT "meine datei hat %d zeichen"
    #elif defined (ENGLISH)
    #define TXT "that file has %d bytes"
    #elif defined (BLAH)
    #define TXT "kjhkjhk %d vcgcfd"
    #endif
    ...
    printf (TXT, size);
    ...
    


  • Sorry, ich hatte da wohl einen Hänger und total in die falsche Richtung gedacht, es funktioniert einwandfrei, wenn im ersten String ein "%s" ist wird der zweite string genau an die Position von "%s" eingefügt. Wie gesagt totaler Denkfehler.


Anmelden zum Antworten