Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

Zahlen rechtsbündig schreiben ?

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
C64-Fan



Anmeldungsdatum: 26.10.2012
Beiträge: 79

BeitragVerfasst am: 07.06.2019, 19:31    Titel: Zahlen rechtsbündig schreiben ? Antworten mit Zitat

Hallo, möchte einige Zahlen rechtsbündig schreiben,

Dachte mir in einer Funktion, aber komne nicht so richtig klar.
die zahl soll nur max 99, 999 oder 9999 sein, dachte die Zahl in String verwandeln und dann die Anzahl der Zeichen vergleichen . wenn sie weniger als die erlaubten x (2-4) Ziffern enthalten dann ein " " vorne anhängen , wieder vergleichen , wenns passt fertig.
komme aber hauptsächlich mit der art und weise des Befehls "function" nicht klar. trotz das ich die Hilfe gelesen habe.

dachte mir in etwa:

Dim shared as integer x,z: Dim shared as string a
Declare Function zr As String
.
Programmcode
.
x=3: ? zr(z)
.
Function zr
a=Str(z) ' z = zahl , a = zahl(z) als string
Do Until x = Len(a) ' x = Anzahl der erlaubten Ziffern (zb. x=3 --> z=max999)
zr = " "+a
Loop
End Function[/u]

in der hilfe steht das man nochmal in klammer zb x deklariert ? hab ich doch schon am anfang x deklariert, gebrauche x öfter als im Hauptprog. als zwischenvariable.

steig da nicht so ganz durch missbilligen
_________________
Mitglied-Nr. 2000 lächeln
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
nemored



Anmeldungsdatum: 22.02.2007
Beiträge: 4255
Wohnort: ~/

BeitragVerfasst am: 07.06.2019, 21:18    Titel: Antworten mit Zitat

Im Angebot hätte ich PRINT USING - die sicher einfachste Methode, die allerdings nur zur direkten Ausgabe funktioniert und nicht zur Variablenspeicherung - oder eine eigene Funktion.
Code:
print "mit PRINT USING"
print using "######";  99
print using "######"; 999
print using "######";9999

print

function fill(zahl as integer, stellen as integer) as string
  dim as string ret = str(zahl)
  if len(ret) < stellen then ret = space(stellen-len(ret)) & ret
  return ret
end function
print "mit eigener Funktion"
print fill(  99, 6)
print fill( 999, 6)
print fill(9999, 6)


Und dann gibt es noch RSET, aber das finde ich syntaktisch einfach nur fürchterbar.
_________________
Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Sebastian
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 5908
Wohnort: Deutschland

BeitragVerfasst am: 07.06.2019, 21:28    Titel: Code-Beispiel getPaddedNumber Antworten mit Zitat

Hallo,

ich habe hier mal eine Funktion gepostet, die sowas tun sollte:
https://www.freebasic-portal.de/code-beispiele/string-funktionen/funktion-zur-umwandlung-von-zahlen-in-strings-mit-fester-stellenanzahl-ausrichtung-links-rechtsbuendig-verschiedenen-optionen-312.html

Du kannst damit einen Integer als String mit fester Breite zurückgeben lassen. Dabei kannst du festlegen,

  • wie viele Stellen du möchtest (Breite des Strings),
  • mit welchem Zeichen aufgefüllt werden soll (z. B. Leerzeichen " "),
  • welche Textausrichtung die aufgefüllte Zahl haben soll (linksbündig / rechtsbündig), und
  • was passieren soll, wenn die Zahl mehr Stellen hat, als du Platz vorgesehen hast.


Viele Grüße!
Sebastian
_________________
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
C64-Fan



Anmeldungsdatum: 26.10.2012
Beiträge: 79

BeitragVerfasst am: 08.06.2019, 20:34    Titel: Antworten mit Zitat

Schnelle Hilfe, das ist super bei euch. lächeln

durch eure Anregung bischen gebastelt:


Dim x As Integer:DIM Ziel AS String
x=4
Ziel = "12345"
RSet Ziel,Str(x)
?"Hier ";Ziel;" Korn"
x=24
RSet Ziel,str(x)
?"Hier ";Ziel;" Korn"
Sleep


Dim x As Integer
x=4
? "Hier " ;:Print Using"#####";x;:Print" Bier"
x=24
? "Hier " ;:Print Using"#####";x;:Print" Bier"
Sleep


jetzt hab ich die Wahl happy , Print Using sieht mir übersichtlicher aus
_________________
Mitglied-Nr. 2000 lächeln
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC. Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz