Rechtsbündig

  • VB.NET

Es gibt 12 Antworten in diesem Thema. Der letzte Beitrag () ist von elo63.

    Rechtsbündig

    VB.NET-Quellcode

    1. Hallo,
    2. bin Anfänger und habe ein kleines Konsolen Programm geschrieben , aber mit der Formatierung komme ich nicht ganz klar also z.B.
    3. Die Ausgabe soll so Aussehen
    4. 5 Artikel freaas kosten..........3,50 Euro
    5. 4 Artikel XYZ koste..............3,99 Euro
    6. 12 Artikel fdasw kosten........12,99 Euro
    7. So soll die Formatierung sein, aber wenn das Ergebniss jetzt statt 3,50
    8. 125,87 ist dann stimmt die ganze Formatierung nicht mehr und vorne soll
    9. es auch rechtsbündig sein aber auch wenn sich die Zahl erhöht soll es
    10. passen.
    11. Habe es mit format(variable,"0,00") versucht aber auch(Bezeichnung {0,zahlenangabe}, variablennamen)
    12. geht alles gut bis ein Wert um eine Stelle größer wird.
    13. Die Punkte sind nur wegen der Darstellung klappt zwar auch nicht ganz so aber ich hoffe Ihr wisst was ich meine
    14. mfg
    15. elo
    Hallo,

    erstmal Vielen Dank für die schnelle Antwort, habe nach den Begriffen gegoogelt und ein wenig experimentiert.

    Meine Frage ist kann man in diesen Beispielsatz

    Der Artikel xyz Menge 5 kosten diesen Preis x

    mehrere Sachen in einen Satz formatieren damit also z.B. Artilel .PadLeft(30) und die Zahlen .PadRight(20) und den Preis
    auch .PadRight(5) und das in einer Ausgabe.


    Console.WriteLine(vbCrLf & "Sie haben " & artikel & "Lager" & .PadLeft(5) & menge & .PadRight(30) & Format(preis, "0.00") & " Euro")

    hoffe ich konnte es rüberbringen, soll aber auch wenn sich eine Zahl um eine Stelle ändert trotzdem bündig sein.

    mfg

    elo63

    VB.NET-Quellcode

    1. Dim frm As String = "Menge: {0} zum Preis von {1} Euro"
    2. Debug.Print(String.Format(frm, (2).ToString.PadLeft(5), (14).ToString.PadLeft(6)))
    3. Debug.Print(String.Format(frm, (66).ToString.PadLeft(5), (1).ToString.PadLeft(6)))
    4. Debug.Print(String.Format(frm, (1234).ToString.PadLeft(5), (3219).ToString.PadLeft(6)))


    Ouput:

    Quellcode

    1. Menge: 2 zum Preis von 14 Euro
    2. Menge: 66 zum Preis von 1 Euro
    3. Menge: 1234 zum Preis von 3219 Euro
    Hallo,

    genau so meinte ich es suuuuuuuuuuuuuuuuuuuuuuuuper.

    geht es auch mit Integer und Double oder muss ich es immer in einen String umwandeln, hatte es nämlich
    gerade von String als Eingabe in Integer/Doble umgewandelt und gebe diese aus, oder muss ich die wieder zurückwandeln in
    ein String

    Also hier so der ungefähre Code

    Console.WriteLine("Sie haben " & menge & " Artike1: " & Format(ergebnis, "0.00") & " Euro")
    Console.WriteLine("Sie haben " & menge & " Artikel2: " & Format(ergebnis, "0.00") & " Euro")
    Console.WriteLine("Sie haben " & menge & " Artikel3: " & Format(ergebnis, "0.00") & " Euro")

    wo muss ich in den Zeilen PadLeft oder PadRight einfügen habe schon probiert aber dann
    kommt teilweise der Text mitrüber.

    und da hätte ich gerne die menge und das ergebnis rechtsbündig, die Variable menge ist Integer
    und die ergebnis ist Double wie gesagt bin Anfänger, bräuchte Tipps.


    Danke

    elo63

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „elo63“ ()

    Du kannst Dir ja im 1. Schritt die Länge des Zahlenstrings holen und im 2. die Position dazu berechnen.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    zahlen untereinander dastellen

    Hallo,

    danke für die Antwort, aber ich bin wirklich Anfänger das ist mir dann zu kompliziert.

    Ich möchte nur das jedesmal wenn eine Berechnung stattfindet das Ergebniss immer
    Stelle unter Stelle passend steht.

    Gibt es da keine andere möglichkeit.

    mfg

    elo63

    elo63 schrieb:

    Gibt es da keine andere möglichkeit.

    Lerne die Grundlagen oder backe kleinere Brötchen. :D
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Genau. Du hast hier eine Reihe von Hinweisen erhalten,

    elo63 schrieb:

    aber ich bin wirklich Anfänger das ist mir dann zu kompliziert.

    Du must Eigeninitiative entwickeln und das nachbeeiten, was Dir hier gepostet wird. Wenn Dir das zu schwer ist,

    RodFromGermany schrieb:

    Lerne die Grundlagen oder backe kleinere Brötchen. :D
    Ganz einfach.
    Wir sind nicht da, Dir das Programmieren beizubringen.
    Wir sind freiwillig hier, um anderen bei Problemen zu helfen. Wenn die anderen sich auch helfen lassen.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Hallo,

    habe doch geschrieben das ich es probiert habe was ist da so schwer dran zu verstehen, bin am googel und lesen usw.
    also sage nicht das ich es nicht versuche und genau dafür ist ein forum da.

    Und es scheint nicht so einfach zu sein was ich da mitbekomme, es geht nicht darum das einmal dazustellen das bekomme ich
    hin, es geht darum das wenn eine neue Berechnung durchgeführt wird das Ergebnis kommagenau untereinander steht.

    Achso fertigen code will ich gar nicht, wollte nur wissen wie man es eben macht, mehr nicht.


    elo63