Das Open-Control-Projekt - Die Alternative zur C-Control-I


Das Forum zur C-Control-1
Welche C-Control-Varianten existieren?
Übersicht - Suchen - Neueste 50 Beiträge - Neuer Beitrag - Login - Registrieren
INFO - FAQ - CC2-Forum - CCPro-Forum 

 Re: Teil-Lösung Datenübertragung zu Atari1040ST Kategorie: Programmierung Basic (von Joe - 7.12.2004 22:04)
 Als Antwort auf Re: Teil-Lösung Datenübertragung zu Atari1040ST von Dietmar - 7.12.2004 3:56
> Hallo Joe,
>
> >Hast Du eine Idee, wie man das richtig löst?
>
> Allerdings. Folge dem Hinweis in meinem ersten Posting: Setze das QBASIC-Programm aus der FAQ nach GFA-BASIC um. Dann kannst Du weitersehen.
>
> Gruß, Dietmar
##########
Meine Homepage: http://ccintern.dharlos.de  
###############
Hallo Dietmar,

vielen Danke fĂŒr Deinen Tip. Habe heute dieses Programm so gut ich konnte in GfA Basic fĂŒr den Atari umgesetzt. Jedoch habe ich es nicht zum laufen gebracht. Es bleibt beim Print Ausdruck "Test Terminal" hĂ€ngen.
Trotzdem hat es mir wesentlich weiter geholfen bei der weiteren Umsetzung nach Anhang 2.
Habe dann weiter probiert und das ebenfalls unten aufgefĂŒhrte Programm geschrieben. Mit dem habe ich es nun zum laufen gebracht.

Vielleicht kannst Du mir noch einen Tip geben bei diesem Programm (Anhang2), wie ich die Variablen U1 bis U8 automatisch hochzÀhlen kann.
Beim Befehl
DIM U$(12)
DIM N%(12)
DIM U%(12)

U(N%)=val(U$) ! kommt immer die Fehlermeldung: Feld nicht dimensioniert! Was mach ich da falsch?

Viele Gruesse  Joe

Anhang1: das umgesetzte QBASIC Programm von ccintern.dharlos.de
Anhang2: das Programm, mit welchen ich nun die Werte eingelesen und in Zahlen gewandelt habe
Beide Programme habe ich nochmals in den Editor eingetippt, weil ich keine andere Lösung fand, diese zu ĂŒbertragen.

Anhang1:

'************* QBASIC Programm umgesetzt in GfA Basic
'** so gut ich es als nicht Informatiker konnte
Cls
Clear
Close #1
OPEN "O",#1,"AUX:"   !hinter AUX muss Doppelpunkt stehen; oeffnet RS232 Port zum lesen von Daten
Do
  If Loc (#1)> Then    !40: Abfrage ob letztes Byte erreicht in Datei
     I$=Input$(Lof(#1),1)  !Eingabe von Zeichen wird erwartet
     For I%=1 to Len(I$)
       b%=Asc(Mid$(T$,I%,1))
       If B=13 Then
          Print
       Else
         If B%<>10 Then
           Print Chr$(B%)
         Endif  
       Endif
     Next I%
  Endif
I$=Inkey$
If I$=Chr$(27) Then
   Goto Ende
Endif
'
If I$<>"" Then
  Print I$
  Print #1,I$;
Endif
Loop
Ende:
Close #1
End
################

Anhang 2: lauffÀhiges Programm, wobei Anhang 1 sehr hilfreich war

'***aktuelle lauffÀhiges Programm

'
DIM U$(12)
DIM U%(12)
DIM N%(12)

Cls
Clear
Close #1
Print "Inp?(1)=";Inp?(1),  !174:teilt mit ob von Port1=RS232 ein Byte gelesen werden kann
Print "Lof(#1)=";Lof(#1),  !41 :liefert die LĂ€nge einer Datei in Byte
Print "Eof(#1)=";Eof(#1),  !40 :Fileende ereicht=0; bei letztem Byte=-1
Print "Loc(#1)=";Loc(#1),  !40 :liefert den Abstand des Filepointers zum Dateianfang
Print "LEN(A$)=";Len(A$)   !77 :liefert die LĂ€nge des Strings der angegebenen Variablen      !
Print "Val?(A$)=";Val?(A$),!122:ermittelt die Anzahl der Zeichen von Stringanfang
Print "Val(A$)=";Val(A$)   !121:wandelt die am Stringanfang stehenden Zeichen in numerische Werte
OPEN "O",#1,"AUX:"   !hinter AUX muss Doppelpunkt stehen; oeffnet RS232 Port zum lesen von Daten

Do
  N%=0
  Clear
  Close #1
  TS=""
  OPEN "O",#1,"AUX:"   !hinter AUX muss Doppelpunkt stehen; oeffnet RS232 Port zum lesen von Daten
  Input #1,T$
  Print T$
  Print "Lof(#1)=";Lof(#1),  !41 :liefert die LĂ€nge einer Datei in Byte
  Print "Eof(#1)=";Eof(#1),  !40 :Fileende ereicht=0; bei letztem Byte=-1
  Print "Loc(#1)=";Loc(#1),  !40 :liefert den Abstand des Filepointers zum Dateianfang
  Print "LEN(A$)=";Len(A$)   !77 :liefert die LĂ€nge des Strings der angegebenen Variablen      !
  Print "Inp?(1)=";Inp?(1),  !174:teilt mit ob von Port1=RS232 ein Byte gelesen werden kann
  Print "Val?(A$)=";Val?(A$),!122:ermittelt die Anzahl der Zeichen von Stringanfang
  Print "Val(A$)=";Val(A$)   !121:wandelt die am Stringanfang stehenden Zeichen in numerische Werte
  For J%=1 To Len(T$)
     B$=Mid$(T$,J%,1)
     B_WERT%=Val(B$)
     B%=Asc(Mid$(TS,J%,1))
     If B%=13 Then  !13=Carriage return=Ende der Werteausgabe von C-Control
        Print "If B%=13 Then_Carriage return"    
     Else  
        If B%=9 Then !9 = Komma im Tabulator/Zeichenstring
           N%=N%+1
           U$=U$+M$(T$,J%,1)  !Ausgabe Zahl wird gebildet
           '  U(N%)=Val(U$)  !!!Fehlermeldung, Feld nicht dimensioniert
           U%=Val(U$)
           Print "U$=";U$,"U(";N%;")=";U%,"In If B%=9 Then Verzweig
           U$=""
        Else
           U$=U$+M$(T$,J%,1)  !Ausgabe Zahl wird gebildet
           If Flag1%<>1 Then
              If B%=0 Then
                 Flag1%=1
                 N%=N%+1
                 U%=Val(U$)
                 Print "U$=";U$,"U(";N%;")=";U%,"In If B%=0 Then Verzweig
                 U$=""
              Else
              Endif
           Else
           Endif
        Endif
   Endif
 Next J%
 Flag1%=0
 Pause 300
 Print
Loop
'
End

 Antwort schreiben

Bisherige Antworten:

Re: Teil-Lösung Datenübertragung zu Atari1040ST (von Dietmar - 8.12.2004 1:28)
    Gelöst C-Control Datenübertragung zu Atari1040ST (von Joe - 8.12.2004 22:32)
        Re: Gelöst C-Control Datenübertragung zu Atari1040ST (von Marco Steinhauser - 12.12.2004 0:32)
            Re: Gelöst C-Control Datenübertragung zu Atari1040ST (von Joe - 13.12.2004 22:03)
                Re: Gelöst C-Control Datenübertragung zu Atari1040ST (von fritz tremmel - 22.05.2005 11:37)