Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
hedo
Anmeldungsdatum: 03.04.2006 Beiträge: 19
|
Verfasst am: 03.04.2006, 16:34 Titel: Variablen Wert in Datei speichern |
|
|
Hallo,
ich möchte mit "inp 889" die Werte vom Parallelport einlesen und in einer Datei abspeichern.
In dieser Datei soll also immer ein Dezimalwert eingetragen werden.
Es soll aber immer nur ein Wert in dieser Datei stehen, der vorherige soll also gelöscht werden. Der gespeicherte wert wird dann von einer HTML Datei ausgelesen.
Vielleicht hat jemand eine Ansatzpunkt für mich.
Danke und Grüße
HeDo |
|
Nach oben |
|
 |
Devilkevin aka Kerstin

Anmeldungsdatum: 11.11.2004 Beiträge: 2532 Wohnort: nähe Mannheim
|
|
Nach oben |
|
 |
Michael Frey

Anmeldungsdatum: 18.12.2004 Beiträge: 2577 Wohnort: Schweiz
|
Verfasst am: 03.04.2006, 19:14 Titel: |
|
|
Etwa so:
Code: | datei$ = "test.txt"
DO
[Zahl einlesen]
OPEN datei$ FOR OUTPUT AS #
PRINT #1, zahl
CLOSE 1
LOOP |
|
|
Nach oben |
|
 |
hedo
Anmeldungsdatum: 03.04.2006 Beiträge: 19
|
Verfasst am: 03.04.2006, 20:25 Titel: Variablen Wert in Datei abspeichern |
|
|
Zuerst einmal Dank für die Hinweise. In der Zwischenzeit habe ich aber gründlicher gelesen und bin zu folgender Lösung gekommen:
1 CLS
OPEN "test.txt" FOR OUTPUT AS #1
A = (120 - (INP(889) AND 120)) / 8
WRITE #1, A
CLS
CLOSE #1
OPEN "test.txt" FOR INPUT AS #1
INPUT #1, A
PRINT A; " "
CLOSE #1
SLEEP 5
IF INKEY$ = CHR$(27) THEN END
GOTO 1
END
Das funktioniert schon ganz gut. Der Wert kann aus der Datei ausgelsen werden. Allerdings funktioniert die Sprunganeisung mit Goto nicht richtig. Das erneute Einlesen beginnt immer erst nach einer Tastatureingabe von neuem. Ich möchte aber nach Pause mit SLEEP, dass das einlesen von slebst beginnt.
Weiß jemand Rat?
Danke und Grüße
HeDo |
|
Nach oben |
|
 |
Mao
Anmeldungsdatum: 25.09.2005 Beiträge: 4409 Wohnort: /dev/hda1
|
Verfasst am: 04.04.2006, 08:43 Titel: |
|
|
Hallo!
Mit einer DO...LOOP-Schleife (sollte ) es funktionieren:
Code: |
DO
CLS
OPEN "test.txt" FOR OUTPUT AS #1
A=(120-(INP(889) AND 120))/8
WRITE #1, A
CLOSE #1
CLS
OPEN "test.txt" FOR INPUT AS #1
INPUT #1, A
CLOSE #1
PRINT A; " "
' >>> neuer Code, veranlasst Computer zum Warten
Startzeit! = TIMER ' die Startzeit, damit berechnet werden kann, wann der Computer aus der Schleife heraus muss
DO ' Warteschleife
IF TIMER > Startzeit! + 5 THEN EXIT DO ' Wenn die 5 Sekunden erreicht sind -> 'raus aus der Schleife
IF INKEY$ = CHR$(27) THEN END ' Ist die Escapetaste gedrückt? -> Programm beenden
LOOP ' Ende: Warteschleife
LOOP
|
Das WRITE zum Schreiben in eine Datei würde ich durch ein PRINT ersetzen, dann werden keine Anführungszeichen gesetzt (in der Datei). Desweiteren ist meine Schleife zum Warten nicht Mitternachtssicher. Das kann man lösen, ich hab's aber mal nicht gemacht.
INKEY$ sollte man sonst nicht direkt überprüfen, da sonst der Tastaturpuffer gelöscht wird - unpraktisch wenn man den Tastaturpuffern mit mehreren IF's nacheinander abfragt. Hier braucht man aber bloß die Information: Escape gedrückt oder nicht? EXIT DO verlässt eine Schleife, in diesem Fall die Warteschleife.
Joa, ich hab's zwar eigentlich mal bei mir laufen lassen (ging ohne Probleme), aber falls es doch eines geben sollte (außer das Problem um Mitternacht )...wir sind hier.  _________________ Eine handvoll Glück reicht nie für zwei.
--
 |
|
Nach oben |
|
 |
hedo
Anmeldungsdatum: 03.04.2006 Beiträge: 19
|
Verfasst am: 05.04.2006, 14:07 Titel: Variablen Wert in Datei speichern |
|
|
Danke, klappt wunderbar
Mit Gruß
HeDo |
|
Nach oben |
|
 |
|