| 
				
					|  | Das deutsche QBasic- und FreeBASIC-Forum Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
 |  
 
	
		| Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |  
		| Autor | Nachricht |  
		| pol0815 
 
 
 Anmeldungsdatum: 21.05.2006
 Beiträge: 8
 
 
 | 
			
				|  Verfasst am: 21.05.2006, 17:03    Titel: COM1 Abfrage mit qbasic |   |  
				| 
 |  
				| benötige hilfe bei der Abfrage der com1 schnittstelle. 
 ich möchte die daten G;i000 an com1 senden und nach ca 1 sekunde
 G;i001
 wieder eine pause von ca. 1 sekunde
 und so weiter  bis G;i199
 sollte jedoch ein E; kommen sollte T; gesendet werden
 
 Nach den senden sollen die empfangenden daten in einer textdatei geschrieben werden.
 
 HIER IST MEIN DERZEITIGES PRO.
 
 
  	  | Code: |  	  | Open "1-1.txt" For Append As #2 Open "COM1: 9600,N,8,1,CD,CS,DS" For Random As #1
 
 Cls                          'Bildschirm loeschen
 Print #1, "G;i000"      'senden von G;I000
 
 Do                           'Hauptschleife
 '-- S e n d e n ---------:
 z$ = INKEY$                 'Tastendruck speichern
 If z$ <> "" Then            'wenn Taste gedrueckt ...
 Print z$;                      'Zeichen anzeigen
 Print #1, z$;                'und auf Schnittstelle geben
 End If
 
 '-- E m p f a n g e n ---:
 If Loc(1) Then              'wenn Zeichen auf Schnittstelle eingegangen ...
 z$ = Input$(1, #1)      'dieses speichern
 
 Print z$;                      'Zeichen anzeigen
 
 If z$ = Chr$(13) Then Print #2, zeile$: zeile$ = ""
 If z$ > Chr$(47) And z$ < Chr$(60) Then zeile$ = zeile$ + z$
 End If
 Loop Until z$ = Chr$(27)     'Ende mit Taste Escape
 
 Close #1                     'Schnittstelle schliessen
 Close #2                     'Textdatei schliessen
 
 | 
 bei dieser version muß ich leider die Daten immer von hand eingeben,
 würde dieses jedoch lieber automatisch machen, aber leider bekomme ich es nicht hin.
 Vielleicht kann mir hierbei jemand helfen.
 
 Zuletzt bearbeitet von pol0815 am 21.05.2006, 17:31, insgesamt einmal bearbeitet
 |  |  
		| Nach oben |  |  
		|  |  
		| Michael Frey 
 
  
 Anmeldungsdatum: 18.12.2004
 Beiträge: 2577
 Wohnort: Schweiz
 
 | 
			
				|  Verfasst am: 21.05.2006, 17:10    Titel: |   |  
				| 
 |  
				| So etwa? 
  	  | Code: |  	  | Open "1-1.txt" For Append As #2 Open "COM1: 9600,N,8,1,CD,CS,DS" For Random As #1
 
 Cls 'Bildschirm loeschen
 for i=0 to 199
 Print #1, "G;i"+ltrim$(str$(i)) 'senden von G;I000 bis G;I199
 
 Do 'Hauptschleife
 '-- S e n d e n ---------:
 z$ = INKEY$ 'Tastendruck speichern
 If z$ <> "" Then 'wenn Taste gedrueckt ...
 Print z$; 'Zeichen anzeigen
 Print #1, z$; 'und auf Schnittstelle geben
 End If
 
 '-- E m p f a n g e n ---:
 If Loc(1) Then 'wenn Zeichen auf Schnittstelle eingegangen ...
 z$ = Input$(1, #1) 'dieses speichern
 
 Print z$; 'Zeichen anzeigen
 
 If z$ = Chr$(13) Then Print #2, zeile$: zeile$ = ""
 If z$ > Chr$(47) And z$ < Chr$(60) Then zeile$ = zeile$ + z$
 End If
 Loop Until z$ = Chr$(27) 'Ende mit Taste Escape
 next i
 Close #1 'Schnittstelle schliessen
 Close #2 'Textdatei schliessen
 | 
 
 Leider verstehe ich dein Problem nicht.
 _________________
 http://de.wikibooks.org/wiki/FreeBasic Jede Hilfe für dieses Buch ist Willkommen!
 http://de.wikibooks.org/wiki/FreeBasic:_FAQ FAQ zu Freebasic (im Aufbau, hilfe Willkommen)
 Neu mit Syntax Highlight
 |  |  
		| Nach oben |  |  
		|  |  
		| pol0815 
 
 
 Anmeldungsdatum: 21.05.2006
 Beiträge: 8
 
 
 | 
			
				|  Verfasst am: 21.05.2006, 17:25    Titel: COM1 Abfrage |   |  
				| 
 |  
				| danke für die schnelle hilfe, 
 leider zeigt das programm nur jede 2te zeile an.
 beispiel:
 ;0
 ;001;1405060807;1;123456;080013570444;;000;
 ;2
 ;003;1405060813;13;42358390;08000537801;;000;
 ;4
 ;005;1405060815;17;42538390;08009053086;;000;
 ;6
 
 und so weiter
 |  |  
		| Nach oben |  |  
		|  |  
		| Michael Frey 
 
  
 Anmeldungsdatum: 18.12.2004
 Beiträge: 2577
 Wohnort: Schweiz
 
 | 
			
				|  Verfasst am: 21.05.2006, 17:39    Titel: |   |  
				| 
 |  
				|   Beschreib bitte mal genau was das Programm machen soll.
 Ich hab jetzt echt keinen durchblick.
 
 
  	  | Zitat: |  	  | sollte jedoch ein E; kommen sollte T; gesendet werden | 
 Wenn du an der Schnittstelle ein E bekommst, soll das Programm mit einem T antworten?
 
 
  	  | Code: |  	  | '-- E m p f a n g e n ---: If Loc(1) Then 'wenn Zeichen auf Schnittstelle eingegangen ...
 z$ = Input$(1, #1) 'dieses speichern
 
 Print z$; 'Zeichen anzeigen
 
 If z$ = Chr$(13) Then Print #2, zeile$: zeile$ = ""
 If z$ > Chr$(47) And z$ < Chr$(60) Then zeile$ = zeile$ + z$
 End If
 Loop Until z$ = Chr$(27) 'Ende mit Taste Escape
 next i
 | 
 Wieso regiert das Programm auf die Escape Taste wenn sie vom Comport kommt?
 Also wieso nicht die "lokale" Tastatur?
 _________________
 http://de.wikibooks.org/wiki/FreeBasic Jede Hilfe für dieses Buch ist Willkommen!
 http://de.wikibooks.org/wiki/FreeBasic:_FAQ FAQ zu Freebasic (im Aufbau, hilfe Willkommen)
 Neu mit Syntax Highlight
 |  |  
		| Nach oben |  |  
		|  |  
		| pol0815 
 
 
 Anmeldungsdatum: 21.05.2006
 Beiträge: 8
 
 
 | 
			
				|  Verfasst am: 21.05.2006, 17:48    Titel: |   |  
				| 
 |  
				| wenn ein E; kommt sollte ein T; gesendet werden .
 aber zwischen den senden von G;i001 und so weiter muß eine pause von ca. 1 sekunde sein weil die daten sonst nicht eingelesen werden können
 |  |  
		| Nach oben |  |  
		|  |  
		| Michael Frey 
 
  
 Anmeldungsdatum: 18.12.2004
 Beiträge: 2577
 Wohnort: Schweiz
 
 | 
			
				|  Verfasst am: 21.05.2006, 17:59    Titel: |   |  
				| 
 |  
				| Noch immer Banhof So vielleicht?
 
  	  | Code: |  	  | DIM i AS INTEGER DIM t AS DOUBLE
 
 OPEN "1-1.txt" FOR APPEND AS #2
 OPEN "COM1: 9600,N,8,1,CD,CS,DS" FOR RANDOM AS #1
 
 CLS                          'Bildschirm loeschen
 
 FOR i = 0 TO 199
 PRINT #1, USING "G;i###"; i     'senden von G;I000
 t = TIMER
 DO                           'Hauptschleife
 '-- S e n d e n ---------:
 q$ = INKEY$                 'Tastendruck speichern
 IF q$ <> "" THEN            'wenn Taste gedrueckt ...
 PRINT q$;                      'Zeichen anzeigen
 PRINT #1, q$;                'und auf Schnittstelle geben
 END IF
 
 '-- E m p f a n g e n ---:
 IF LOC(1) THEN              'wenn Zeichen auf Schnittstelle eingegangen ...
 z$ = INPUT$(1, #1)      'dieses speichern
 
 PRINT z$;                      'Zeichen anzeigen
 
 IF z$ = CHR$(13) THEN PRINT #2, zeile$: zeile$ = ""
 IF z$ > CHR$(47) AND z$ < CHR$(60) THEN zeile$ = zeile$ + z$
 IF z$ = "E" THEN PRINT #1, "T"
 END IF
 LOOP UNTIL q$ = CHR$(27) OR t > TIMER OR t + 1 < TIMER'Ende mit Taste Escape oder nach 1 Sekunde
 NEXT i
 CLOSE #1                     'Schnittstelle schliessen
 CLOSE #2                     'Textdatei schliessen
 | 
 _________________
 http://de.wikibooks.org/wiki/FreeBasic Jede Hilfe für dieses Buch ist Willkommen!
 http://de.wikibooks.org/wiki/FreeBasic:_FAQ FAQ zu Freebasic (im Aufbau, hilfe Willkommen)
 Neu mit Syntax Highlight
 |  |  
		| Nach oben |  |  
		|  |  
		| pol0815 
 
 
 Anmeldungsdatum: 21.05.2006
 Beiträge: 8
 
 
 | 
			
				|  Verfasst am: 21.05.2006, 18:05    Titel: |   |  
				| 
 |  
				| so ist es schon fast richtig nur kommt immer 
 ;000;1405060805;11;123456;08001144445;;000;
 ;000;1405060805;11;123456;08001144445;;000;
 ;000;1405060805;11;123456;08001144445;;000;
 ;000;1405060805;11;123456;08001144445;;000;
 ;000;1405060805;11;123456;08001144445;;000;
 ;000;1405060805;11;123456;08001144445;;000;
 
 scheinbar sendet es immer G;i000
 |  |  
		| Nach oben |  |  
		|  |  
		| Michael Frey 
 
  
 Anmeldungsdatum: 18.12.2004
 Beiträge: 2577
 Wohnort: Schweiz
 
 | 
			
				|  Verfasst am: 21.05.2006, 18:11    Titel: |   |  
				| 
 |  
				|   Den ganzen Code kann ich nicht prüfen aber die Fragmente seinen zupassen:
 
  	  | Code: |  	  | DIM i AS INTEGER FOR i = 0 TO 199
 PRINT USING "G;i###"; i
 NEXT i
 | 
 
 Ich seh auch nirgends eine zweit Verwenung von i ...
 Anwas kann das liegen!?
 
 Must du
 G;i000
 oder
 G;I000
 senden oder spielt das keine Rolle?
 _________________
 http://de.wikibooks.org/wiki/FreeBasic Jede Hilfe für dieses Buch ist Willkommen!
 http://de.wikibooks.org/wiki/FreeBasic:_FAQ FAQ zu Freebasic (im Aufbau, hilfe Willkommen)
 Neu mit Syntax Highlight
 |  |  
		| Nach oben |  |  
		|  |  
		| pol0815 
 
 
 Anmeldungsdatum: 21.05.2006
 Beiträge: 8
 
 
 | 
			
				|  Verfasst am: 21.05.2006, 18:17    Titel: |   |  
				| 
 |  
				| ich versuche es noch mal zu erklären. 
 Das Programm soll über die COM1 den Text
 G;i000
 G;i001
 G;i002
 G;i003
 G;i004
 ...
 G;i199
 
 zwischen den senden sollte eine pause von ca. 1 sekunde sein, damit die Daten eingelesen werden können.
 
 kommt als anwort ein E; sollte ein T; gesendet werden und das Programm beendet werden.
 
 Die Daten sollten in einer Textdatei gespeichert werden.
 Es sollten auch nur die zeichen zwischen chr$(47) und chr$(60) gesichert werden
 
 ist es einfacher zu verstehen ?
 |  |  
		| Nach oben |  |  
		|  |  
		| Michael Frey 
 
  
 Anmeldungsdatum: 18.12.2004
 Beiträge: 2577
 Wohnort: Schweiz
 
 | 
			
				|  Verfasst am: 21.05.2006, 18:25    Titel: |   |  
				| 
 |  
				| Den Teil hab ich verstanden, aber ich weiss ja nicht was die Gegenstelle genau erwartet. 
 Jenach "Intelligenz" kann gross und kleinschreibung sehr wichtig sein.
 
 Im Code er kenne ich auch keine Fehler und darum suche ich den Fehler auch in der Gegenstelle.
 
 Edit://
 Die Tabelle hier
 
  	  | pol0815 hat Folgendes geschrieben: |  	  | ;000;1405060805;11;123456;08001144445;;000; ;000;1405060805;11;123456;08001144445;;000;
 ;000;1405060805;11;123456;08001144445;;000;
 ;000;1405060805;11;123456;08001144445;;000;
 ;000;1405060805;11;123456;08001144445;;000;
 ;000;1405060805;11;123456;08001144445;;000;
 | 
 Ist das die Antwort vom Comport?
 
 Edit 2: //
 Hast du irgendwo ein Datenblatt zur Schaltung die am Comport hängt?
 Vielleicht muss man die Zeichenkette mit ; Schliessen?
 _________________
 http://de.wikibooks.org/wiki/FreeBasic Jede Hilfe für dieses Buch ist Willkommen!
 http://de.wikibooks.org/wiki/FreeBasic:_FAQ FAQ zu Freebasic (im Aufbau, hilfe Willkommen)
 Neu mit Syntax Highlight
 |  |  
		| Nach oben |  |  
		|  |  
		| Michael Frey 
 
  
 Anmeldungsdatum: 18.12.2004
 Beiträge: 2577
 Wohnort: Schweiz
 
 | 
			
				|  Verfasst am: 22.05.2006, 17:02    Titel: |   |  
				| 
 |  
				| http://home.arcor.de/pol0815/daten/komandos.jpg @pol0815
 Solche Links must du nicht per PM Versichecken, posten geht auch
   
 Back to problem:
 
   Die Liste verwirrt mich noch mehr.
 Achso:
 G ist der Befehl und das wird über [Befehl];i[ldf.Nr] zu G;i000.
 Die Antwort ist dann ist dann nach Datenblatt.
 
 Soweit so gut.
 
 Ich werde mal etwas ausprobieren, melde mich bald.
 
 Edit:
 
   Das Programm sendet g;i  1 statt g;i001
 Das sollte gehen:
 
  	  | Code: |  	  | DIM i AS INTEGER DIM t AS DOUBLE
 
 OPEN "1-1.txt" FOR APPEND AS #2
 OPEN "COM1: 9600,N,8,1,CD,CS,DS" FOR RANDOM AS #1
 
 CLS                          'Bildschirm loeschen
 
 FOR i = 0 TO 199
 temp$ = LTRIM$(STR$(i))
 temp$ = STRING$(3 - LEN(temp$), "0") + temp$
 PRINT #1, "G;i"; temp$
 t = TIMER
 DO                           'Hauptschleife
 '-- S e n d e n ---------:
 q$ = INKEY$                 'Tastendruck speichern
 IF q$ <> "" THEN            'wenn Taste gedrueckt ...
 PRINT q$;                      'Zeichen anzeigen
 PRINT #1, q$;                'und auf Schnittstelle geben
 END IF
 
 '-- E m p f a n g e n ---:
 IF LOC(1) THEN              'wenn Zeichen auf Schnittstelle eingegangen ...
 z$ = INPUT$(1, #1)      'dieses speichern
 
 PRINT z$;                      'Zeichen anzeigen
 
 IF z$ = CHR$(13) THEN PRINT #2, zeile$: zeile$ = ""
 IF z$ > CHR$(47) AND z$ < CHR$(60) THEN zeile$ = zeile$ + z$
 IF z$ = "E" THEN PRINT #1, "T"
 END IF
 LOOP UNTIL q$ = CHR$(27) OR t > TIMER OR t + 1 < TIMER'Ende mit Taste Escape oder nach 1 Sekunde
 NEXT i
 CLOSE #1                     'Schnittstelle schliessen
 CLOSE #2                     'Textdatei schliessen
 
 
 | 
 _________________
 http://de.wikibooks.org/wiki/FreeBasic Jede Hilfe für dieses Buch ist Willkommen!
 http://de.wikibooks.org/wiki/FreeBasic:_FAQ FAQ zu Freebasic (im Aufbau, hilfe Willkommen)
 Neu mit Syntax Highlight
 |  |  
		| Nach oben |  |  
		|  |  
		| pol0815 
 
 
 Anmeldungsdatum: 21.05.2006
 Beiträge: 8
 
 
 | 
			
				|  Verfasst am: 23.05.2006, 13:56    Titel: |   |  
				| 
 |  
				| habe mal den Sendebefehl vom QT ober übernommen. jetzt funktioniert es aber wäre besser wenn man den Timer
 vielleicht auf 300ms einstellen kann.
 Und das Programm nach erhalt von nur G;
 den Befehl zum löschen schickt und somit das programm beendet.
 
 
 
  	  | Code: |  	  | DIM i AS INTEGER
 DIM t AS DOUBLE
 
 OPEN "1-1.txt" FOR APPEND AS #2
 OPEN "COM1: 9600,N,8,1,CD,CS,DS" FOR RANDOM AS #1
 
 CLS                          'Bildschirm loeschen
 
 FOR i = 0 TO 199
 
 PRINT #1, "G;i" + LTRIM$(STR$(i))  'senden von G;i000
 t = TIMER
 DO                           'Hauptschleife
 '-- S e n d e n ---------:
 q$ = INKEY$                 'Tastendruck speichern
 IF q$ <> "" THEN            'wenn Taste gedrueckt ...
 PRINT q$;            'Zeichen anzeigen
 PRINT #1, q$;        'und auf Schnittstelle geben
 END IF
 
 '-- E m p f a n g e n ---:
 IF LOC(1) THEN              'wenn Zeichen auf Schnittstelle eingegangen ...
 z$ = INPUT$(1, #1)   'dieses speichern
 
 PRINT z$;            'Zeichen anzeigen
 
 IF z$ = CHR$(13) THEN PRINT #2, zeile$: zeile$ = "": ende$ = "0"
 IF z$ > CHR$(47) AND z$ < CHR$(60) THEN zeile$ = zeile$ + z$
 IF z$ = "E" THEN PRINT #1, "G;i000"   'falls error sende neu nur beim starten
 
 
 END IF
 LOOP UNTIL q$ = CHR$(27) OR t > TIMER OR t + 1 < TIMER  'Ende mit Taste Escape oder nach 1 Sekunde
 NEXT i
 CLOSE #1                     'Schnittstelle schliessen
 CLOSE #2                     'Textdatei schliessen
 
 
 | 
 |  |  
		| Nach oben |  |  
		|  |  
		| Michael Frey 
 
  
 Anmeldungsdatum: 18.12.2004
 Beiträge: 2577
 Wohnort: Schweiz
 
 | 
			
				|  Verfasst am: 23.05.2006, 16:32    Titel: |   |  
				| 
 |  
				| Also dann, weiter  . 
 
  	  | Code: |  	  | DIM i AS INTEGER DIM t AS DOUBLE
 Dim delay as single
 
 delay=0.300
 pin$="1234"
 
 OPEN "1-1.txt" FOR APPEND AS #2
 OPEN "COM1: 9600,N,8,1,CD,CS,DS" FOR RANDOM AS #1
 
 CLS                          'Bildschirm loeschen
 
 FOR i = 0 TO 199
 
 PRINT #1, "G;i" + LTRIM$(STR$(i))  'senden von G;i000
 t = TIMER
 DO                           'Hauptschleife
 '-- S e n d e n ---------:
 q$ = INKEY$                 'Tastendruck speichern
 IF q$ <> "" THEN            'wenn Taste gedrueckt ...
 PRINT q$;            'Zeichen anzeigen
 PRINT #1, q$;        'und auf Schnittstelle geben
 END IF
 
 '-- E m p f a n g e n ---:
 IF LOC(1) THEN              'wenn Zeichen auf Schnittstelle eingegangen ...
 z$ = INPUT$(1, #1)   'dieses speichern
 
 PRINT z$;            'Zeichen anzeigen
 
 z$=UCASE$(z$) 'kleine Buchstaben in Grosse umwandeln
 
 IF z$ = CHR$(13) THEN PRINT #2, zeile$: zeile$ = "": ende$ = "0"
 IF z$ > CHR$(47) AND z$ < CHR$(60) THEN zeile$ = zeile$ + z$
 IF z$ = "E" THEN PRINT #1, "G;i000"   'falls error sende neu nur beim starten
 IF z$ = "G" THEN
 ? #1, "G;pin"+pin$
 Exit for
 End if
 
 END IF
 LOOP UNTIL q$ = CHR$(27) OR t > TIMER OR t + delay < TIMER  'Ende mit Taste Escape oder nach 1 Sekunde
 NEXT i
 CLOSE #1                     'Schnittstelle schliessen
 CLOSE #2                     'Textdatei schliessen
 | 
 
  	  | Zitat: |  	  | aber wäre besser wenn man den Timer vielleicht auf 300ms einstellen kann.
 | 
 Einfach diese Zeile delay=0.300 anpassen.
 Bei delay kannst du die Verzögerung in Sekunden einstellen.
 
 Weiter im "Pflichtenheft":
 
  	  | Zitat: |  	  | Und das Programm nach erhalt von nur G; den Befehl zum löschen schickt und somit das programm beendet.
 | 
 Schon etwas schwerer.
 Wobei:
 Die Normalle Antwort enthält keine Buchstaben. (zumindest kein g)
 Gemacht.
 Du must nur deinen Pin bei pin$="1234" eintragen.
 
 Zu
 
  	  | Code: |  	  | IF z$ = "E" THEN PRINT #1, "G;i000"   'falls error sende neu nur beim starten | 
 Wenn das Programm Neustarten soll, wäre ein
 
  	  | Code: |  	  | IF z$ = "E" THEN i=-1 | 
 sinnvoller.
 Wenn es noch mal nachfragen soll ein
 
  	  | Code: |  	  | IF z$ = "E" THEN i=i-1 | 
 Naja, du weisst sicher was du machst.
 _________________
 http://de.wikibooks.org/wiki/FreeBasic Jede Hilfe für dieses Buch ist Willkommen!
 http://de.wikibooks.org/wiki/FreeBasic:_FAQ FAQ zu Freebasic (im Aufbau, hilfe Willkommen)
 Neu mit Syntax Highlight
 |  |  
		| Nach oben |  |  
		|  |  
		| pol0815 
 
 
 Anmeldungsdatum: 21.05.2006
 Beiträge: 8
 
 
 | 
			
				|  Verfasst am: 23.05.2006, 18:01    Titel: |   |  
				| 
 |  
				|  	  | Code: |  	  | LOOP UNTIL q$ = CHR$(27) OR t > TIMER OR t + .3 < TIMER | 
 habe den Timer von + 1 auf + .3 gesetzt ist auch OK
 
 Ich wollte mit den
  	  | Code: |  	  | IF z$ = "E" THEN PRINT #1, "G;i000" | 
 nicht das Programm neu starten, nur beim öfnen der COM1 auch sicherstellen das die erste Zeile komplett übertrgen wird.
 
 Bis jetzt ist alles OK.
 Nur wenn keine Daten mehr kommen, kommt als Antwort G; zurück,
 und da würde ich gerne das Pogramm zum abbrechen bewegen.
 Weil sonst bis G;i199 gesendet wird. (kann unnötig lange dauern)
 Das löschen de Daten muß ich dann mit einen sprung in einer anderen programm abschnitt erledigen.
 
 Schön wäre natürlich ein Pro. in Visual Basic mit Button und so, aber reicht wenn es auch so läuft.
 |  |  
		| Nach oben |  |  
		|  |  
		| Michael Frey 
 
  
 Anmeldungsdatum: 18.12.2004
 Beiträge: 2577
 Wohnort: Schweiz
 
 | 
			
				|  Verfasst am: 23.05.2006, 18:09    Titel: |   |  
				| 
 |  
				|  	  | Zitat: |  	  | Nur wenn keine Daten mehr kommen, kommt als Antwort G; zurück, und da würde ich gerne das Pogramm zum abbrechen bewegen.
 Weil sonst bis G;i199 gesendet wird. (kann unnötig lange dauern)
 Das löschen de Daten muß ich dann mit einen sprung in einer anderen programm abschnitt erledigen.
 | 
 Vermeide Sprünge, das sieht einfach unschön aus.
 So ist es recht elegant:
 
  	  | Code: |  	  | z$=UCASE$(z$) 'kleine Buchstaben in Grosse umwandeln 
 IF z$ = CHR$(13) THEN PRINT #2, zeile$: zeile$ = "": ende$ = "0"
 IF z$ > CHR$(47) AND z$ < CHR$(60) THEN zeile$ = zeile$ + z$
 IF z$ = "E" THEN PRINT #1, "G;i000"   'falls error sende neu nur beim starten
 IF z$ = "G" THEN
 Exit for
 End if
 | 
 (die letzten 3 Zeilen sind relevant)
 Das löschen kannst du dann einfach zwischen
 
 und
 
  	  | Code: |  	  | CLOSE #1                     'Schnittstelle schliessen CLOSE #2                     'Textdatei schliessen
 | 
 Programmieren.
 _________________
 http://de.wikibooks.org/wiki/FreeBasic Jede Hilfe für dieses Buch ist Willkommen!
 http://de.wikibooks.org/wiki/FreeBasic:_FAQ FAQ zu Freebasic (im Aufbau, hilfe Willkommen)
 Neu mit Syntax Highlight
 |  |  
		| Nach oben |  |  
		|  |  
		| pol0815 
 
 
 Anmeldungsdatum: 21.05.2006
 Beiträge: 8
 
 
 | 
			
				|  Verfasst am: 23.05.2006, 18:26    Titel: |   |  
				| 
 |  
				| In der Zeile 
  	  | Code: |  	  | IF z$ > CHR$(47) AND z$ < CHR$(60) THEN zeile$ = zeile$ + z$ | 
 lösche ich die Buchstaben schon
 sonst würde das Ergebnis so aussehen:
 G;i023;z2005061023;x20;o10001;d017234329375;sSP;c000;
 und jetzt sieht es so aus:
 ;023;2005061023;20;10001;017234329375;;000;
 
 Ist auch OK so.
 Wollte erst mal testen ob ich mit LEN() die länge der String ermitteln kann und wenn dieser nur 2 ist i auf 199 setzen
 hier nochmal der gesamte Code
 
 
  	  | Code: |  	  | DIM i AS INTEGER DIM t AS DOUBLE
 
 OPEN "1.txt" FOR APPEND AS #2
 OPEN "COM1: 9600,N,8,1,CD,CS,DS" FOR RANDOM AS #1
 
 CLS                          'Bildschirm loeschen
 
 FOR i = 0 TO 199
 IF i > 199 THEN q$ = CHR$(27)
 
 PRINT #1, "G;i" + LTRIM$(STR$(i))  'senden von G;I000
 t = TIMER
 DO                           'Hauptschleife
 '-- S e n d e n ---------:
 q$ = INKEY$                 'Tastendruck speichern
 IF q$ <> "" THEN            'wenn Taste gedrueckt ...
 PRINT q$;            'Zeichen anzeigen
 PRINT #1, q$;        'und auf Schnittstelle geben
 END IF
 
 '-- E m p f a n g e n ---:
 IF LOC(1) THEN              'wenn Zeichen auf Schnittstelle eingegangen ...
 z$ = INPUT$(1, #1)   'dieses speichern
 
 PRINT z$;            'Zeichen anzeigen
 
 IF z$ = CHR$(13) THEN PRINT #2, zeile$: zeile$ = "": ende$ = "0"
 IF z$ > CHR$(47) AND z$ < CHR$(60) THEN zeile$ = zeile$ + z$
 IF z$ = "E" THEN PRINT #1, "G;i000"
 
 'IF len(zeile$) = 2 THEN PRINT #1, "G;i200": i = 200
 
 END IF
 LOOP UNTIL q$ = CHR$(27) OR t > TIMER OR t + .3 < TIMER  'Ende
 
 NEXT i
 CLOSE #1                     'Schnittstelle schliessen
 CLOSE #2                     'Textdatei schliessen
 
 
 | 
 |  |  
		| Nach oben |  |  
		|  |  
		|  |  
  
	| 
 
 | 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.
 
 |  |