Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

Problem mit Datenfeldern

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu QBasic.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
chregu



Anmeldungsdatum: 15.12.2006
Beiträge: 2
Wohnort: Huttwil/Schweiz

BeitragVerfasst am: 15.12.2006, 02:29    Titel: Problem mit Datenfeldern Antworten mit Zitat

Hallo Leute,

mich plagt ein Problem, es ist spät und ich blick nicht mehr durch traurig . Bei einem Scheduler, dessen Code folgendes enthält:

Code:
PRINT #1, VAL(einsch$(anzsch%))


bekomme ich auf dem Host-Rechner die richtige Ausgabe. Alle Variablen haben richtige und gültige Werte. Auf dem Ziel-System, einem MS-DOS Mini-PC http://www.taskit.de/produkte/minipc/index.htm bekomme ich plötzlich immer nur Null zurück (Variable "anzsch%" hat zum Beispiel "1"). Wenn ich allerdings folgendes ausprobiere:

Code:
 PRINT #1, VAL(einsch$(1))


geht es plötzlich auch.

Aber das ist natürlich nicht befriedigend. Weiss jemand, woran das liegen kann? geDIMt habe ich natürlich. Oder kann ich das irgendwie zerlegen, damit ich keine Datenfelder brauche oder so...?

Danke und Gruss Chregu
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9736
Wohnort: Neben der Festplatte

BeitragVerfasst am: 15.12.2006, 18:35    Titel: Antworten mit Zitat

Datenfelder sind immer besser als Variablen zwinkern
aber dein problem ist schon....seltsam.

vlt solltest du einfach mal DIM statt suffix verwenden, also
DIM anzsch as integer
statt
anzsch%

vielleicht hilft das ja!

es köntne auch helfen, den wert, der ausgegeben werden soll, erst in einer variable zwischenzuspeichern und diese dann per print auszugeben.

btw: verwendest du auf beiden system das gleiche BASIC?
_________________
» Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
chregu



Anmeldungsdatum: 15.12.2006
Beiträge: 2
Wohnort: Huttwil/Schweiz

BeitragVerfasst am: 15.12.2006, 23:59    Titel: Antworten mit Zitat

Hallo Jojo,

Zitat:
btw: verwendest du auf beiden system das gleiche BASIC?


Ja, aber ich habe den Code auf dem Host-Rechner bis jetzt nur mit "Ausführen/Start" laufengelassen, und auf dem Ziel-Rechner mit der .exe Datei. Habe jetzt aber gerade auf Beidem das .exe ausprobiert, und das läuft auf dem Host-Rechner.

Darf ich mal den ganzen Code posten (Auszug mit dem Wichtigen):

Code:
wert% = 0
i% = 0
OPEN "schalten.txt" FOR INPUT AS #3          'Datei mit Zeiten oeffnen

DIM kanal%(1 TO 100)
DIM einsch$(1 TO 100)
DIM aussch$(1 TO 100)

LINE INPUT #3, dummy$
WHILE NOT EOF(3)
  i% = i% + 1
  INPUT #3, kanal%(i%), einsch$(i%), aussch$(i%)
WEND
CLOSE #3

WHILE INKEY$ = ""

  datum$ = DATE$
  zeit$ = TIME$

  GOSUB weekday

  aktzeit$ = LTRIM$(RTRIM$(STR$(weekday%))) + MID$(zeit$, 1, 2) + MID$(zeit$, 4, 2) + MID$(zeit$, 7, 2)
  PRINT #1, esc$ + "TH";
  PRINT #1, aktzeit$
 
  FOR anzsch% = 1 TO i%

    IF VAL(RIGHT$(aktzeit$, LEN(einsch$(anzsch%)))) >= VAL(einsch$(anzsch%)) AND VAL(RIGHT$(aktzeit$, LEN(aussch$(anzsch%)))) < VAL(ausch$(anzsch%)) THEN
      wert% = wert% OR 1
    ELSE
      wert% = wert% AND 254
    END IF

    PRINT #1, CHR$(10)
    PRINT #1, anzsch%


  NEXT anzsch%

  OUT PioA%, wert%
  PRINT #1, CHR$(10)
  PRINT #1, VAL(RIGHT$(aktzeit$, LEN(einsch$(anzsch%))))
  PRINT #1, CHR$(10)
  anzsch% = 2
  PRINT #1, einsch$(anzsch%)
  PRINT #1, CHR$(10)
  PRINT #1, LEN(einsch$(anzsch%))
 
  WHILE zeit$ = TIME$
  WEND
WEND


Ich habe hier ziemlich am Schluss der Variablen anzsch% manuell den Wert 2 zugewiesen, dann funktionierts! Die Zeile gleich darunter gibt - nichts aus! darum bekomme ich dann immer 0 wenn ich mit VAL oder LEN drüber gehe. Also übernimmt anzsch% irgendwie nicht richtig aus der FOR ... NEXT Schleife. Die Schleife funktioniert sauber. i% übernimmt es sauber aus der Zeilenzahl in der Datei.

Gruss Chregu
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu QBasic. Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
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.

 Impressum :: Datenschutz