Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » VC++ / MFC » Probleme mit Stringformatierung

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
26.06.2003, 11:24 Uhr
Dirk22



Hi,

ich habe zwei Probleme:

Problem 1:
----------

Ich habe eine long Variable namens m_anzahl .
Und ich will diese Zahl in eine CString-Variable schreiben, je nachdem was eben drinsteht, hier ein paar Beispiele:
Frame 0
Frame 89
Frame 100
Frame 1230
Frame 503500
...
Frame 9999999

Die Zahl soll höchstens 7 Stellen haben, und mind. 2 Zeichen Abstand zum Wort "Frame" haben.
Naja, ist hier nicht ganz gerade. Der rechte Rand sollte eine Einheit bilden.

Hier ist mein Versuch, habe schon alle möglichen Formatierungen durchprobiert. Aber ich kriege es nicht hin.


C++:
CString str_anzahl;
str_anzahl.Format("Frame %-7d",m_tipy_anzahl);



Geht es ganz leicht mit einer bestimmten Formatierung oder muss ich mir ein switch machen, welcher je nach Anzahl Stellen in der Zahl den dazugehörigen Format-Befehl aufruft?

Noch zur Deklaration dieser long-Variablen. Ist long eine gute Wahl für eine Zahl, die zwischen 0 und 9999999 Werte haben soll? Sollte ich noch unsigned vor die Deklaration dazuschreiben? Welchen Typ würdet ihr nehmen?

Problem 2:
----------

Ich möchte eine Messagebox mit folgendem Inhalt ausgeben:

AfxMessageBox("Diese Datei hat nicht die Endung ".txt" !");

Mache ich es so, dann wird es erst gar nicht kompiliert. Dann habe ich versucht jeweils 2 Gänsefüsschen (") in Folge zunehmen, also "".txt"", doch dann wurde es zwar kompiliert, aber die Gänsefüsschen wurden nicht angezeigt.

Was kann man da machen?

Vielen Dank im Voraus

Dirk
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
26.06.2003, 11:44 Uhr
ao

(Operator)


AfxMessageBox("Diese Datei hat nicht die Endung \".txt\" !");

Gehts so?

ao
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
26.06.2003, 12:11 Uhr
ao

(Operator)


Zu Problem 1:


C++:
#include <stdio.h>

int main (void)
{
    int n = 1;
    int c = 0;
    for (c = 0; c < 7; c++)
    {
        printf ("Links%8d\n", n);
        n *= 10;
    }    
}



Laut MSDN soll sich CString::Format genauso verhalten wie printf.

ao
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
26.06.2003, 12:49 Uhr
Tommix



Hallo,
was Du meinst ist vermutlich

C++:
str_anzahl.Format("Frame %.7d",m_tipy_anzahl);
// Punkt statt Minus!



Gruss, Tommix
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
26.06.2003, 13:10 Uhr
Dirk22



@Tommix:
Mit .7d haut es im Prinzip schon hin. Leider habe ich dann führende Nullen, die mich stören.

@ao:
Problem2:
Danke für deine Antwort. Das mit den Gänsefüsschen(") klappt so.

Problem1:
Werde ich gleich ausprobieren. Aber vorher noch eine Frage, ob wir uns richtig verstehen. Eine Funktion von mir bekommt eine long-Variable übergeben. Und diese will ich dann egal, was sie für einen Inhalt hat so formatiert ausgeben, wie ich es in meiner Frage geschrieben habe. Bei deinem Code frage ich mich, wo ich dort meine long-Variable unterbringen soll. Das "n" repräsentiert sie wohl, aber dieses wird ja ständig geändert. Wahrscheinlich haben wir uns einfach falsch verstanden oder ich kann deinen Code nicht richtig interpretieren.

mfg Dirk
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
26.06.2003, 17:56 Uhr
Tommix



Alles klar, dann halt

C++:
str_anzahl.Format("Frame %7d", m_tipy_anzahl);


ohne Punkt, Minus usw.
(Ich seh' grad, dass hat ao schon geschrieben. Sein Beispiel n musst Du nur durch m_tipy_anzahl ersetzen.)

Gruss, Tommix
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ VC++ / MFC ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: