Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
spawn
Anmeldungsdatum: 09.08.2005 Beiträge: 45
|
Verfasst am: 19.11.2005, 21:59 Titel: Variablen gescheit ausgeben |
|
|
Hi,
wenn ich eine Variable (echte Zahlen) ausgeben möchte, setzt QB 6.?, bei der Ausgebe, vor und hinter die Variable ein Leerzeichen. Bei Strings macht er das glaube ich nicht. wie kann ich das imgehen? - kann ich die Variable in eine String umwandeln?
MFG
Guido |
|
Nach oben |
|
 |
Progger_X Mr. Lagg
Anmeldungsdatum: 24.11.2004 Beiträge: 784 Wohnort: Leipzig
|
Verfasst am: 19.11.2005, 22:07 Titel: |
|
|
Ja, mit STR$(variable) |
|
Nach oben |
|
 |
Skilltronic

Anmeldungsdatum: 10.09.2004 Beiträge: 1148 Wohnort: Köln
|
Verfasst am: 19.11.2005, 22:39 Titel: |
|
|
Hallo
Du kannst aber auch mit PRINT USING nicht nur das führende Leerzeichen wegbekommen, sondern überhaupt das Format der Ausgabe bestimmen.
PRINT USING "#.##"; 1/3
ergibt z.B. die Ausgabe
0.33
Gruss
Skilltronic _________________ Elektronik und QB? www.skilltronics.de ! |
|
Nach oben |
|
 |
stef
Anmeldungsdatum: 13.01.2005 Beiträge: 102
|
Verfasst am: 19.11.2005, 23:07 Titel: |
|
|
Mit STR$ wird die Zahl in einen String gewandelt, in dam allerdings immer noch diese merkwürdigen Leerzeichen sich befinden, über die sich wahrscheinlich schon viele QBasic Programmierer aufgeregt haben. Diesen String kann man dann aber mit den Befehlen LTRIM$ und RTRIM$ in die gewünschte Form bringen, da sie diese Leerzeichen entfernen. Leider etwas umständlich aber nun halt mal nicht anders möglich:
Code: | DIM Zahl AS SINGLE
PRINT "Zahl = "; LTRIM$(RTRIM$(STR$(Zahl))) |
|
|
Nach oben |
|
 |
Michael Frey

Anmeldungsdatum: 18.12.2004 Beiträge: 2577 Wohnort: Schweiz
|
Verfasst am: 20.11.2005, 09:45 Titel: |
|
|
Es gäbe noch eine Elgantere Lösung:
Code: | DECLARE FUNCTION zahl$ (a!)
DIM var AS SINGLE
INPUT var
PRINT "var = "; zahl$(var)
FUNCTION zahl$ (a)
zahl$ = LTRIM$(RTRIM$(STR$(a)))
END FUNCTION |
Der Trick ist einfach, den komischen ausdruck in eine Funktion zupacken und ihr einen logischen Namen geben. _________________ http://de.wikibooks.org/wiki/FreeBasic Jede Hilfe für dieses Buch ist Willkommen!
http://de.wikibooks.org/wiki/FreeBasic:_FAQ FAQ zu Freebasic (im Aufbau, hilfe Willkommen)
Neu mit Syntax Highlight |
|
Nach oben |
|
 |
jb

Anmeldungsdatum: 14.01.2005 Beiträge: 2010
|
Verfasst am: 20.11.2005, 13:45 Titel: |
|
|
Aber das RTRIM$() könnt ihr euch sparen
jb |
|
Nach oben |
|
 |
pinkpanther

Anmeldungsdatum: 28.05.2005 Beiträge: 79 Wohnort: Wien
|
Verfasst am: 20.11.2005, 15:56 Titel: |
|
|
Also ich versuche immer, die von den Vor-Postern angeregten Stringmanipulationen zu vermeiden und das bei der Ausgabe von positiven Zahlen unvermeidbar auftretende "überflüssige" Leerzeichen unauffällig "anzubringen".
Das gelingt auch in 90% der Fälle:
Variante 1:
Code: | DEFINT A-Z
CLS
PRINT "Anzahl der Durchlaeufe:";
FOR i& = 1 TO 500000
LOCATE 1, 25
PRINT LTRIM$(STR$(i&));
NEXT
END |
Meine Variante:
Code: | DEFINT A-Z
CLS
PRINT "Anzahl der Durchlaeufe:";
FOR i& = 1 TO 500000
LOCATE 1, 24
PRINT i&;
NEXT
END |
Der Clou ist also, die ohnedies vorzusehende Leerstelle zwischen Beschreibungstext und Wert mit dem unerwünschten Leerzeichen zu überschreiben.
Funktioniert aber nur dann problemlos, wenn ausschließlich mit der Ausgabe von Null oder positiven Werten zu rechnen ist. _________________ lG
pinkpanther  |
|
Nach oben |
|
 |
MisterD

Anmeldungsdatum: 10.09.2004 Beiträge: 3071 Wohnort: bei Darmstadt
|
Verfasst am: 20.11.2005, 17:32 Titel: |
|
|
wenns nur positive werte gibt nimmt man einfach nen unsigned-datentyp und vergisst die leerstellen xD _________________ "It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
Edsger W. Dijkstra |
|
Nach oben |
|
 |
Sebastian Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 5969 Wohnort: Deutschland
|
|
Nach oben |
|
 |
pinkpanther

Anmeldungsdatum: 28.05.2005 Beiträge: 79 Wohnort: Wien
|
Verfasst am: 20.11.2005, 18:01 Titel: |
|
|
@MisterD
Codest du schon die zweite Nacht durch, auf dass du Halluzinationen von unsignierten QuickBasic-Datentypen bekommst??
Nun ja, Weihnachten kömmt, und da ist ja alles Wünschen erlaubt! Oder man nimmt kurz entschlossen die Sache selbst in die Hand und holt sich FreeBasic auf seinen Rechner bzw. gönnt sich PB/DOS!
@Sebastian
Ich habe den starken Eindruck, dass MisterD sein Posting nicht ganz so ernst gemeint hat  _________________ lG
pinkpanther  |
|
Nach oben |
|
 |
MisterD

Anmeldungsdatum: 10.09.2004 Beiträge: 3071 Wohnort: bei Darmstadt
|
Verfasst am: 20.11.2005, 18:57 Titel: |
|
|
sorry, hab nich dran gedacht dass das das (3 mal das o_O) QB-Forum is...  _________________ "It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
Edsger W. Dijkstra |
|
Nach oben |
|
 |
Thomas Antoni

Anmeldungsdatum: 12.10.2004 Beiträge: 220 Wohnort: Erlangen
|
Verfasst am: 20.11.2005, 23:17 Titel: Dazu habe ich mir Folgendes für die MonsterFAQ vorgemerkt... |
|
|
Dazu habe ich mir Folgendes für die MonsterFAQ vorgemerkt...
---------------------------------------------------------------------------------
Frage deutsch
~~~~~~~~~~~~~~~~
Wie unterdrücke ich Leerzeichen bei der Anzeige von Zahlen?
Question English
~~~~~~~~~~~~~~~~
How to suppress blanks when displaying numerical values?
Antwort
~~~~~~~~~~~~~~~~
[ von Thomas Antoni, 24.9.2005 ]
QBasic setzt bei der Anzeige von positiven Zahlen immer ein Leerzeichen vor den
Zahlenwert. Bei negativen Zahlen erscheint statt des Blanks immer ein
Minuszeichen. Hinter jede Zahl setzt QBasic ebenfalls ein Leerzeichen, egal ob
die Zahl positiv oder negativ ist.
Um diesen Tatbestand nachzuvollziehen kannst Du ja mal das folgende kleine
Programm starten:
Code: |
CLS
PRINT "***"; 12.8; "***"
PRINT "***"; -23.6; "***"
|
Dieses Programm erzeugt folgende Bildschirmanzeige:
Code: |
*** 12.8 ***
***-23.6 ***
|
Wenn Dich die Leerzeichen bei der Anzeige einer Zahl stören, kannst Du sie durch
den folgenden Befehl unterdrücken:
Code: |
PRINT LTRIM$(RTRIM$(STR$(Zahl)))
|
STR$ wandelt den Zahlenwert in einen Textstring um. RTRIM$ und LTRIM$ entfernen
die rechts bzw. links von der Zahl stehenden Leerzeichen.
Das obige Programmbeispiel muss wie folgt umgeschrieben werden, um eine Anzeige
ohne Leerzeichen zu bewerkstelligen:
Code: |
CLS
PRINT "***"; LTRIM$(RTRIM$(STR$(12.8))); "***"
PRINT "***"; LTRIM$(RTRIM$(STR$(-23.6))); "***"
|
Die Bildschirmanzeige erfolgt hierbei ganz ohne Leerzeichen und sieht wie folgt
aus:
Code: |
***12.8***
***-23.6***
|
--------------------------------------------------------------------------------- _________________ +++ Die beliebte QBasic CD-ROM von QBasic.de - 670 MB QBasic-Stuff mit komfortabler HTML-Oberfläche. Für nur 5 EUR bestellbar auf www.antonis.de/qbcdueb.htm +++ |
|
Nach oben |
|
 |
jb

Anmeldungsdatum: 14.01.2005 Beiträge: 2010
|
Verfasst am: 21.11.2005, 17:16 Titel: |
|
|
Hallo? Das RTRIM$() ist doch komplett überflüssig, oder täusche ich mich da?
jb |
|
Nach oben |
|
 |
MisterD

Anmeldungsdatum: 10.09.2004 Beiträge: 3071 Wohnort: bei Darmstadt
|
Verfasst am: 21.11.2005, 18:17 Titel: |
|
|
bei singles nicht. 30 als single gäbe _30_ in der Ausgabe, vorderes leerzeichen und das hintere für den nicht benötigten punkt. _________________ "It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
Edsger W. Dijkstra |
|
Nach oben |
|
 |
jb

Anmeldungsdatum: 14.01.2005 Beiträge: 2010
|
Verfasst am: 21.11.2005, 18:24 Titel: |
|
|
OK, da schon, aber bei einfachen INTEGERs halt nicht...
jb |
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 22.11.2005, 22:10 Titel: |
|
|
MisterD hat Folgendes geschrieben: | bei singles nicht. 30 als single gäbe _30_ in der Ausgabe, vorderes leerzeichen und das hintere für den nicht benötigten punkt. |
wieder was dazu gelernt... ok ich benutze auch kaum print  _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
Kevin
Anmeldungsdatum: 03.11.2005 Beiträge: 29 Wohnort: Gummersbach-----NRW
|
Verfasst am: 23.11.2005, 15:57 Titel: |
|
|
hähhhhh wie du benutzt ach kein print gibts da nochn anderen befehl oder was meinste?
Oder meinste die Abkürzung -----> "?"
Oder was HäHHHHHHH
KeViN  _________________ Lean Back
Enjoi the Life |
|
Nach oben |
|
 |
jb

Anmeldungsdatum: 14.01.2005 Beiträge: 2010
|
Verfasst am: 23.11.2005, 17:02 Titel: |
|
|
Sag mal musst du hier alles vollspammen?
Und Jojo meint bestimmt PRINT-Ersatzroutinen für die Grafikmodi...
jb |
|
Nach oben |
|
 |
|