Allgemeine Fragen zur PROFAN Programmierung
Views (Heute): 241780 (3216)
  Suchen
 Zurück zur Übersicht
 AutorThema: Fehler bei Format$()
Bernhard Künzel
Datum:11.09.02 00:17 Antwortenals Email verschicken (b.kuenzel@chello.at) 


Hallo
bei der ausgabe von Format$() wird bei der ausgabe AddJahr -1 angezeigt obwohl in der variable +1 eingetragen ist.
Wenn ich jetzt bei der variable AddM& statt -2 +2 eintrage, dann wird bei der ausgabe AddJahr +1 angezeigt.
Da dürfte irgendetwas nicht stimmen ????

Gruß
Bernhard

Declare J&,M&,T&,AddJ&,AddM&,AddT&
Cls
J&=2000
AddJ&=1
M&=2
AddM&=-2
Print Format$("'Jahr '0000",J&)+Format$("' Monat '00",M&)+Format$("' AddJahr '#0'",AddJ&)+\
Format$("' AddMonat '##0",AddM&)
WaitInput





Bernhard Künzel
Datum:11.09.02 00:29 Antwortenals Email verschicken (b.kuenzel@chello.at) 


Hallo,
Nachtrag zu Fehler bei Format$()
bei AddM& wird wenn in der variable minus eingetragen ist immer bei der ausgabe plus angezeigt.
Gruß
Bernhard


Roland G. Hülsmann
Datum:11.09.02 08:15 Antwortenals Email verschicken (rgh-soft@t-online.de) 


Hallo Bernhard,
das "-" hinter der 1 bei AddJahr gehört nicht zum AddJahr, sondern zum AddMonat, wenn AddM& negativ ist! Die Format$-Funkton macht es so, daß bei einem negativen Wert das Vorzeichen vor den kompletten Ausdruck gestellt wird. Das ist in diesem Fall natürlich nicht erwünscht. Man hätte es gerne direkt vor dem Wert.

Abhilfe:
1. Man kann der Format$-Funktion unterschiedliche Strings für positive und negative Werte mitgeben (siehe Hilfe), die per Semikolon getrennt sind. Beispiel:
PRINT Format$("' AddMonat '##0;' AddMonat -'##0",AddM&)

2. Mann kann den Formatierungsstring auf die reine Formatierung beschränken und den restlichen Teil herausnehmen:
PRINT " AddMonat " + Format$("##0",AddM&)

Gruß
Roland



Bernhard Künzel
Datum: 11.09.02 10:56 Antwortenals Email verschicken (b.kuenzel@chello.at) 


Hallo Roland,
danke für die aufklärung, das mit dem + - innerhalb der funktion war mir schon klar, aber ich dachte wenn mit der 2. klammer die funktion abgeschlossen wurde, ist der nächste aufruf eine neue unabhängige funktion.
Auf alle fälle habe ich wieder etwas dazugelernt, dass beim programmieren nicht immer die logik zum richtigen ergebnis führt.
Gruß
Bernhard


 Zurück zur Übersicht