tutorials.de Buch-Aktion 05/2012
Like Tree1Danke
  • 1 Beitrag von deepthroat
ERLEDIGT
JA
ANTWORTEN
12
ZUGRIFFE
482
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    shader09 shader09 ist offline Mitglied Gold
    Registriert seit
    Sep 2007
    Beiträge
    163
    Schönen guten Morgen,
    Ich habe mir ein Datums- und Zeiteinstellungsprogramm geschrieben.
    Jetzt ist aber noch ein kleines Problem, ich will die Zahlen 0-9 nicht so angezeigt
    bekommen, sondern wenn die Zahl einstellig ist eine 0 davor haben.
    Also das dass dann immer so aussieht 00-09.
    Könnte mir da jemand ein Lösungsvorschlag anbieten, kein kompletten Code.
    Nur eine Hilfestellung. Danke
     

  2. #2
    Registriert seit
    Mar 2004
    Beiträge
    441
    - Zahl zur Ausgabe in einen String konvertieren
    - Stringlänge ermitteln
    - Stringlänge == 1? Dann als neuen String '0' + alten String verwenden.
     

  3. #3
    shader09 shader09 ist offline Mitglied Gold
    Registriert seit
    Sep 2007
    Beiträge
    163
    Danke für die Antwort. Ich habe es jetzt so, aber irgendwie will die 0 nicht.

    Code :
    1
    2
    3
    4
    5
    
    CString lNull = "0";    
    if (lStunden.GetLength() == 1)
    {
      lStunden = lNull + lStunden;
    }


    Woran könnte das liegen!? Oder muss ich lNull mit lStunden mit
    Hilfe von strcpy verbinden!?
     

  4. #4
    Registriert seit
    Mar 2004
    Beiträge
    441
    Wenn lStunden vom Typ CString ist, dann müsste das eigentlich funktionieren. Genau so habe ich das nämlich auch im Zuge von manuellen Timestamps in meinem Projekt (Visual C++ 6.0, MFC).
     

  5. #5
    shader09 shader09 ist offline Mitglied Gold
    Registriert seit
    Sep 2007
    Beiträge
    163
    Ja lStunden ist auch vom Typ CString.
    Kann das vielleicht sein, weil ich eMbedded Visual C++ 4.0 benutze!?
    Also muss ich es dann wahrscheinlich mit strcpy machen oder!?
     

  6. #6
    Registriert seit
    Mar 2004
    Beiträge
    441
    Könnte evtl. möglich sein.
    Mit strcpy bist du aber - denke ich - eh auf der sicheren Seite.
     

  7. #7
    deepthroat deepthroat ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Jun 2005
    Beiträge
    8.168
    Hi.

    Du könntest mit CString auch die Format Methode benutzen (obwohl ich nicht sicher bin, ob es die auch bei embedded Visual C++ gibt):
    Code cpp:
    1
    2
    3
    4
    5
    
    int stunden = 5;
    int minuten = 3;
    CString str;
     
    str.Format("%.2d:%.2d", stunden, minuten);
    Gruß
     
    If at first you don't succeed, try again. Then quit. No use being a damn fool about it.

  8. #8
    shader09 shader09 ist offline Mitglied Gold
    Registriert seit
    Sep 2007
    Beiträge
    163
    Ich hab das jetzt mit dem format Befehl gemacht;

    Code :
    1
    
    lStunden.Format(_T("%.2s"), lStunden);


    Nur die Zahl trotzdem einstellig. Nichts ändert sich. Warum!?
    Und wenn ich es so mache;

    Code :
    1
    
    lStunden.Format((const unsigned short *)"%.2s", lStunden);


    Kommen in die Variable 2 Fragezeichen.
    Geändert von shader09 (28.02.08 um 11:34 Uhr)
     

  9. #9
    deepthroat deepthroat ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Jun 2005
    Beiträge
    8.168
    Zitat Zitat von shader09 Beitrag anzeigen
    Ich hab das jetzt mit dem format Befehl gemacht;

    Code :
    1
    
    lStunden.Format(_T("%.2s"), lStunden);


    Nur die Zahl trotzdem einstellig. Nichts ändert sich. Warum!?
    Du brauchst die Stunden usw. nicht erst extra in CStrings umwandeln. Du hast die Zeitangaben doch sicher als Zahlenwerte, oder?
    Zitat Zitat von shader09 Beitrag anzeigen
    Und wenn ich es so mache;

    Code :
    1
    
    lStunden.Format((const unsigned short *)"%.2s", lStunden);
    Kommen in die Variable 2 Fragezeichen.
    Weil du dort unvernünftig castest. So funktioniert es nicht.

    Gruß
     
    If at first you don't succeed, try again. Then quit. No use being a damn fool about it.

  10. #10
    shader09 shader09 ist offline Mitglied Gold
    Registriert seit
    Sep 2007
    Beiträge
    163
    Du brauchst die Stunden usw. nicht erst extra in CStrings umwandeln. Du hast die Zeitangaben doch sicher als Zahlenwerte, oder?
    Ich brauch die als CString, weil Ich die ja aus dem Editfeld auslese. Und dieser fordert CString.
    Code :
    1
    
    GetDlgItemText(IDC_EDT_STU,lStunden);

    Ich habe für die Stunden ein einzelnes Editfeld, für die Minuten ein einzelnes Editfeld.
    Mit Buttons (einmal +, einmal -) kann man dann die Stunden/Minuten erhöhen/verringern. Das man das ein bisschen besser versteht.


    Weil du dort unvernünftig castest. So funktioniert es nicht.
    Das habe ich dann einfach aus Verzweifelung gemacht bzw. einfach mal
    ausprobiert*g*
     

  11. #11
    deepthroat deepthroat ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Jun 2005
    Beiträge
    8.168
    Zitat Zitat von shader09 Beitrag anzeigen
    Ich brauch die als CString, weil Ich die ja aus dem Editfeld auslese. Und dieser fordert CString.
    Code :
    1
    
    GetDlgItemText(IDC_EDT_STU,lStunden);
    Achso. Dann nimm als Formatstring "%02s".

    Gruß
    shader09 bedankt sich. 
    If at first you don't succeed, try again. Then quit. No use being a damn fool about it.

  12. #12
    shader09 shader09 ist offline Mitglied Gold
    Registriert seit
    Sep 2007
    Beiträge
    163
    Achso. Dann nimm als Formatstring "%02s".
    Vielen Dank, aber das klappt auch nicht. Die Null ist immer noch nicht da,
    ich komm dann auch nur noch bis zur Zahl 8. Dann gehts nicht mehr weiter.
    Also geht das anscheind doch nicht mit dem Format Befehl.
     

  13. #13
    shader09 shader09 ist offline Mitglied Gold
    Registriert seit
    Sep 2007
    Beiträge
    163
    Hatte noch eine Umkonvertierung danach drinne. Deswegen hat es nicht geklappt.
    *kopfschüttel* Danke für die Hilfe.
     

Ähnliche Themen

  1. Rechtsklick im Editfeld
    Von Winner im Forum VisualStudio & MFC
    Antworten: 0
    Letzter Beitrag: 14.04.09, 09:16
  2. MFC Editfeld Textzuweisung
    Von Domestos im Forum C/C++
    Antworten: 2
    Letzter Beitrag: 12.04.05, 20:16
  3. Editfeld net!
    Von mstank im Forum VisualStudio & MFC
    Antworten: 5
    Letzter Beitrag: 21.02.05, 12:38
  4. In Editfeld schreiben
    Von Tobias K. im Forum VisualStudio & MFC
    Antworten: 6
    Letzter Beitrag: 29.11.04, 20:49
  5. Eingaben im Editfeld von MFC
    Von ozzijoe im Forum VisualStudio & MFC
    Antworten: 3
    Letzter Beitrag: 02.04.04, 14:23