19. Januar 2019, 21:55:40
Roboterforum.de - Die Industrieroboter- Anwender und Experten Community

[offen] Problem bei Print Ausgabe (Melfa IV )


normal_post_locked Autor Thema: [offen] Problem bei Print Ausgabe (Melfa IV )  (Gelesen 1179 mal)

0 Mitglieder und 1 Gast betrachten dieses Thema.

16. Juni 2016, 10:22:55
Gelesen 1179 mal
Offline

fallon


Hallo,
ich habe da ein kleines Problem. Ich nutze folgenden Code:
M9 = 1
PRINT #1, M9

Eigendlich ganz einfach, es sollte als Ausgabe eine 1 erscheinen. Aber  in der Ausgabe erschein immer +1.
Das  + darf aber nich mit ausgegeben werden, weis einer woran das liegt?

Gruß
Fallon
  • gefällt mir    Danke

Heute um 21:55:40
Antwort #1

Werbung

Gast

Heute um 21:55:40
Antwort #1

Werbung

Gast

16. Juni 2016, 14:10:23
Antwort #1
Offline

Urmel

Global Moderator
Hallo,

das ist so eine Eigenheit aus uralten Zeiten. Ich glaube schon die ganz alten Roboter geben auch das positive Vorzeichen mit aus. Weil das halt in der Implementierung von Melfa Basic so gemacht wurde (wahrscheinlich in C/C++ ein printf mit %+d als Formatbezeichner).

Die meisten Programmiersprachen als Gegenseite stören sich nicht an dem Plus, es ist fast überall optional erlaubt.

Wenn es die Gegenseite nicht mag, hilft wohl nur in Melfa Basic die Zahl in einen String zu packen, das Plus zu entfernen und dann den String auszugeben.

Grüße
  Urmel
  • gefällt mir    Danke

17. Juni 2016, 11:33:32
Antwort #2
Offline

fallon


Hi,
danke für die Antwort, sowas ähnliches dachte ich mir schon.
Mein Problem ist, das ich die Variable hochzähle und dann die Ausgabe in dem Format mache:

PRINT #1,"Punkt;";M9;"; ist erreicht"
Mal sehen was ich hinbekomme, freue mich aber auch über Anregungen
.

Gruß
Fallon
  • gefällt mir    Danke

17. Juni 2016, 11:54:36
Antwort #3
Offline

Urmel

Global Moderator
Es müsste ungefähr so gehen:

CTmp$ = Str$(M9)
If Left$(CTmp$, 1) = "+" Then
  CTmp$ = Right$(CTmp$, Len(CTmp$) -1)
EndIf

Eventuell muss man das in Version IV auch in zwei oder drei Teile aufteilen

MTmp = Len(CTmp$) - 1
CTmp$ = Right$(CTmp$, MTmp)

17. Juni 2016, 12:25:55
Antwort #4
Offline

fallon


Hallo Urmel,
danke, aber die Lösung war zu einfach ;-)
M1 =1
C1$ =STR$(M1)
PRINT #1,"17;ds00000049;P";C1$;"_1_;"

Manchmal fällt der Groschen halt Pfennigweise
Gruß
Fallon
  • gefällt mir    Danke

Heute um 21:55:40
Antwort #5

Werbung

Gast


Teile per facebook Teile per linkedin Teile per pinterest Teile per reddit Teile per twitter
 

über das Roboterforum

Nutzungsbedingungen Impressum Datenschutzerklärung

Sponsoren des Roboterforums

ROBTEC GmbH