|
Das deutsche QBasic- und FreeBASIC-Forum Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
C64-Fan
Anmeldungsdatum: 26.10.2012 Beiträge: 79
|
Verfasst am: 07.06.2019, 19:31 Titel: Zahlen rechtsbündig schreiben ? |
|
|
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 _________________ Mitglied-Nr. 2000 |
|
Nach oben |
|
|
nemored
Anmeldungsdatum: 22.02.2007 Beiträge: 4597 Wohnort: ~/
|
Verfasst am: 07.06.2019, 21:18 Titel: |
|
|
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 |
|
|
Sebastian Administrator
Anmeldungsdatum: 10.09.2004 Beiträge: 5969 Wohnort: Deutschland
|
|
Nach oben |
|
|
C64-Fan
Anmeldungsdatum: 26.10.2012 Beiträge: 79
|
Verfasst am: 08.06.2019, 20:34 Titel: |
|
|
Schnelle Hilfe, das ist super bei euch.
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 , Print Using sieht mir übersichtlicher aus _________________ Mitglied-Nr. 2000 |
|
Nach oben |
|
|
|
|
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.
|
|