amiga-news DEUTSCHE VERSION
.
Links| Forums| Comments| Report news
.
Chat| Polls| Newsticker| Archive
.

amiga-news.de Forum > Amiga, AmigaOS 4 > ARexx Fehler [ - Search - New posts - Register - Login - ]

-1- [ - Post reply - ]

2006-03-19, 12:37 h

julius
Posts: 2255
User
Ich benutze auf allen Amigas das Programm NetClock V1.4 zum stellen der internen Uhr entspreched der Internet Zeit. Seit 1 Woche meldet das Probramm netclock.rexx die Fehler 47 und 12 in bestimmten Zeilen des ARexx-Programms, und zwar nur auf dem A4000T. Das Progamm wird durch MiamiDX gestartet. Miami geht auch online, ich kann mit AWEB surfen. Auch der manuelle Aufruf des Programmsrx netclock.rexx brimgt dieselben Fehlermeldungen.
Gibt es für ARexx-Programme auch einen Befehl ähnlich SET Echo ON, mit dem ich den Programmablauf verfolgen kann und mit Space unterbrechen und Return fortführen kann?
Snoopdos meldet nichts.

[ - Answer - Quote - Direct link - ]

2006-03-19, 12:59 h

thomas
Posts: 7719
User
@julius:

Zitat:
Fehler 47 und 12

Und was bedeuten die ? Warum schreibst du nicht den Fehlertext dazu ? Die Zahlen sagen so ziemlich gar nichts aus.

Und was in den "bestimmten Zeilen" steht, ist auch nicht unwichtig.

Zitat:
Gibt es für ARexx-Programme auch einen Befehl ähnlich SET Echo ON, mit dem ich den Programmablauf verfolgen kann und mit Space unterbrechen und Return fortführen kann?

Trace r ist wie echo on und trace ?r ist EInzelschritt (nach jedem Befehl muß Return gedrückt werden). Du kannst auch global trace ?r einschalten, indem du in der Shell ts eingibst (und mit te wieder ausschalten).

Gruß Thomas

--
Email: thomas-rapp@web.de
Home: thomas-rapp.homepage.t-online.de/

[ - Answer - Quote - Direct link - ]

2006-03-19, 13:28 h

julius
Posts: 2255
User
Hier die Fehler-Details:
+++ Error 47 in line 1225: Arithmetic conversion error
+++ Error 47 in line 625: Arithmetic conversion error
+++ Error 12 in line 1: Error return from function
Command returned 10/12: Error return from function
rx fehlgeschlagen Rückgabewert 10

Erfolgt die Eingabe trace ?r in das ARexx-Programm oder in der Shell?

[ - Answer - Quote - Direct link - ]

2006-03-19, 13:32 h

thomas
Posts: 7719
User
Zitat:
Hier die Fehler-Details:

Dann bräuchten wir noch den Text, der in Zeile 1225 und drumherum steht. DIe anderen beiden Fehler sind nur Folgefehler.

Zitat:
Erfolgt die Eingabe trace ?r in das ARexx-Programm oder in der Shell?

Trace ?r kommt in das Programm. Stattdessen kannst du aber auch in der Shell ts eingeben.

Gruß Thomas

--
Email: thomas-rapp@web.de
Home: thomas-rapp.homepage.t-online.de/

[ Dieser Beitrag wurde von thomas am 19.03.2006 um 13:33 Uhr geändert. ]

[ - Answer - Quote - Direct link - ]

2006-03-19, 13:58 h

julius
Posts: 2255
User
Das Problem ist, dass das ARexx-Programm netclock.rexx sehr viele
Kommentarzeilen enthält, sodass ein Finden der Zeile 1225 im Editor kaum möglich ist.
Ich versuche mich jetzt mit Trace ?r und Retrurn-Taste ran zu tickern.

[ - Answer - Quote - Direct link - ]

2006-03-19, 14:15 h

Palgucker
Posts: 1342
User
@ julius

Zitat:
Das Problem ist, dass das ARexx-Programm netclock.rexx sehr viele
Kommentarzeilen enthält, sodass ein Finden der Zeile 1225 im Editor kaum möglich ist.


Die Kommentarzeilen und sonstiges werden mitgezählt, also ist auch die Zeile gemeint, die ausgegeben wird.

mfg Palgucker

[ - Answer - Quote - Direct link - ]

2006-03-19, 14:21 h

julius
Posts: 2255
User
So, die Zeile 1225 lautet:
IF DATATYPE(TZ.2,'N') & DATATYPE(TZ.2,'N') THEN TZ.9 = TZ.4 - TZ.2
Der Apostroph vor oder hinter N geht im Programm von rechts oben nach links unten.

[ - Answer - Quote - Direct link - ]

2006-03-19, 14:38 h

thomas
Posts: 7719
User

Klarer Fall:

Zitat:
DATATYPE(TZ.2,'N') & DATATYPE(TZ.2,'N')

Eins von den zwei TZ.2 muß TZ.4 lauten.

Die Zeile, so wie sie jetzt ist, prüft, ob TZ.2 numerisch ist und ob TZ.2 numerisch ist und wenn ja, wird TZ.2 von TZ.4 subtrahiert. Es ist klar, daß das so nicht gemeint war, sondern eigentlich soll die Subtraktion nur dann durchgeführt werden, wenn beide Seiten numerisch sind. TZ.4 ist in deinem Fall nicht numerisch, deshalb tritt bei der Subtraktion der Fehler auf. Man kann halt mit Buchstaben nicht rechnen.

Gruß Thomas

--
Email: thomas-rapp@web.de
Home: thomas-rapp.homepage.t-online.de/

[ - Answer - Quote - Direct link - ]

2006-03-19, 15:26 h

julius
Posts: 2255
User
Das verstehe ich. Auf den anderen beiden Amigas läuft das Programm ohne Probleme.
Und die Zeile 1225 ist identisch. Ich poste mal den ganzen Block:

IF ~DATATYPE(LEFT(tzstr,1),'N') THEN
DO

/* New STD/DST values, */
/* reset the old ones */
TZ.1 = ''
TZ.2 = ''
TZ.3 = ''
TZ.4 = ''
TZ.9 = ''

tzword = WORD(tzstr,1)
tzstr = DELWORD(tzstr,1,1)

tzword = gettzo(tzword)
PARSE VAR tzword TZ.1','TZ.2','TZ.3','TZ.4
IF DATATYPE(TZ.2,'N') & DATATYPE(TZ.2,'N') THEN TZ.9 = TZ.4 - TZ.2

END

[ - Answer - Quote - Direct link - ]

2006-03-19, 15:40 h

thomas
Posts: 7719
User

Da müßte man jetzt wissen, wo tzstr herkommt, und was gettzo daraus macht.

"TZ" steht wahrscheinlich für Time-Zone. Ich vermute, tzstr wird aus einer Env-Variablen gelesen und du hast auf den anderen Amigas diese Variable gesetzt und auf diesem nicht.

Den Fehler in Zeile 1225 solltest du aber trotzdem korrigieren.

Gruß Thomas

--
Email: thomas-rapp@web.de
Home: thomas-rapp.homepage.t-online.de/

[ - Answer - Quote - Direct link - ]

2006-03-19, 16:03 h

julius
Posts: 2255
User
Ich habe die zweite auf TZ.4 geändert. Jetzt klappt es. Aber erklären ich mir das nicht.Ich habe auch auf keinem der Rechner eine Variable gefunden.

[ - Answer - Quote - Direct link - ]

2006-03-19, 16:28 h

Palgucker
Posts: 1342
User
Es kann auch sein, das dieser String aus Env:Sys/locale.prefs gebildet wird.

mfg Palgucker

[ - Answer - Quote - Direct link - ]

2006-03-19, 16:33 h

Gazelle
Posts: 151
User
@julius:

Mit Variable ist in dem Fall eine globale Umgebungsvariable von DOS gemeint. Diese stehen in ENV:
Probier mal in einer Shell:
Type ENV:TZ

Wenn das auf den Rechnern unterschiedliche Ergebnisse liefert, weißt Du woher der Fehler kam.

[ - Answer - Quote - Direct link - ]

2006-03-19, 17:47 h

julius
Posts: 2255
User
Auf dem Rechner, wo die Probleme bestehen, existiert die Variable TZ. Sie hat den Wert Sys-1.
Auf dem Rechner ohne Probleme existiert die Variable nicht.
Nachdem ich die Variable TZ gelöscht habe, klappt alles bestens.
Ich weis nur nicht, wo die Variable TZ herkam.


[ - Answer - Quote - Direct link - ]

2006-03-19, 19:37 h

Palgucker
Posts: 1342
User
@ julius

Zitat:
Ich weis nur nicht, wo die Variable TZ herkam.

Könnte eventuell von FACTS herstammen, wobei FACTS eigendlich den Bindestrich weglässt. Meine jetzige TZ lautet SYS-1BST. Aber ich weiss auch nicht mehr, mit welchen Programm ich mir die "aufgegabelt" habe.

mfg Palgucker

[ - Answer - Quote - Direct link - ]


-1- [ - Post reply - ]


amiga-news.de Forum > Amiga, AmigaOS 4 > ARexx Fehler [ - Search - New posts - Register - Login - ]


.
Masthead | Privacy policy | Netiquette | Advertising | Contact
Copyright © 1998-2025 by amiga-news.de - all rights reserved.
.