Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
funkeld gesperrt
Anmeldungsdatum: 10.10.2009 Beiträge: 179
|
Verfasst am: 25.01.2011, 18:04 Titel: Datei byte für byte auslesen...funktioniert nicht. |
|
|
Zitat: |
10 for i=0 to 5
20 print "es geht..."
30 next i
40 end
|
Ich habe das oben als prog0.bas abgespeichert.
Nun möchte ich diese prog0.bas hiermit einlesen :
Code: |
Sub lade_datei
geladen=0
If FileExists( "prog0.bas" ) Then
Open "prog.bas" for Binary as #2
datlaenge=LOF(2)
datbuffer= Allocate(datlaenge)
Get #2 , ,datbuffer[0], datlaenge
Close #2
Else
Print "nix..."
Exit sub
EndIf
geladen=1
End Sub
|
und die Daten seriell Byte für Byte senden:
Code: |
lauf=0
While lauf < datlaenge
wert=Peek(ubyte,datbuffer+lauf)
Put #1,,wert,1
lauf=lauf+1
Wend
|
Irgendwie kommen die Daten falsch an.
Woran liegt das?
Gruss
Serielle Schnittstelle :
Open COM "COM4: 57600, N, 8, 1,CS0,DS0,TB256,RB256" As #1 |
|
Nach oben |
|
 |
XOR
Anmeldungsdatum: 23.07.2010 Beiträge: 161
|
Verfasst am: 25.01.2011, 19:01 Titel: |
|
|
Ich kann in den beiden codestuecken keinen fehler erkennen. Vieleicht mal ein bischen mehr code rausruecken.
Der fehler, der mir einfallen wuerde ist, das datbuffer und datlaenge nicht als shared dimensioniert wurden. |
|
Nach oben |
|
 |
nemored

Anmeldungsdatum: 22.02.2007 Beiträge: 4704 Wohnort: ~/
|
Verfasst am: 25.01.2011, 19:05 Titel: |
|
|
Wenn ich "Put #1,,wert,1" durch ein PRINT ersetze, sehe ich in der Konsole zumindest schon einmal, dass die Daten richtig ausgelesen wurden. Ich vermute daher, dass der Fehler beim Senden oder beim Empfangen liegen muss. _________________ Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1. |
|
Nach oben |
|
 |
funkeld gesperrt
Anmeldungsdatum: 10.10.2009 Beiträge: 179
|
Verfasst am: 25.01.2011, 23:13 Titel: |
|
|
Jup, danke.
Mit "Print #..." sehe ich jetzt auch das alle Daten rüberkommen.
Mal sehen woran es liegt.
Gruss |
|
Nach oben |
|
 |
|