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:

input$ - Nur 7 Zeichen

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



Anmeldungsdatum: 03.06.2005
Beiträge: 2

BeitragVerfasst am: 03.06.2005, 19:05    Titel: input$ - Nur 7 Zeichen Antworten mit Zitat

Hallo,
ich habe ein Programm geschrieben, dass unter QBasic fehlerfrei laeuft, aber unter Win2000 100% Prozessorlast beansprucht und somit andere Applikationen stark verzoegert.
Nun wollte ich es mit Freebasic mal ausprobieren, weil es ja angeblich echte win32 Applikationen kompiliert.
Leider funktioniert es nicht richtig:

OPEN "COM1:9600,N,8,1,RS,CS,DS,CD" FOR RANDOM AS #1
REM Steuerzeichen STX erkennen (ASCII 002)
DO
DO
in$ = INPUT$(1, #1)
LOOP WHILE ASC(in$) <> 2
in$ = INPUT$(29, #1)
print in$
LOOP

Das Problem ist, dass ich in in$ nur 7 Zeichen reinkriege.
Sende ich z.B.
[STX]1234567890abcdefghijklmnopqrstuvwxyz von einem anderen Rechner an COM1, so wird nur
1234567
ausgegeben anstatt die ersten 29 Zeichen. Nur Warum?
Sende ich die Folge nochmal, geschiet immer das gleiche.

Wieso "schlabbert" Freebasic einfach die restlichen Zeichen? Wie koennte man das eleganter loesen. Hier im Forum wird viel von einen inpout.dll geschrieben, aber nirgends bekommt man einen vernuenftige Anleitung/Beispiel, wie man damit von der seriellen Schnittstelle lesen kann traurig

Danke im voraus,
Dominik
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Sebastian
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 5969
Wohnort: Deutschland

BeitragVerfasst am: 03.06.2005, 19:07    Titel: Antworten mit Zitat

Hallo.

Siehe http://forum.qbasic.ch/viewtopic.php?p=10832

Viele Grüße!
Sebastian
_________________

Der Markt regelt das! | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Kermit



Anmeldungsdatum: 03.06.2005
Beiträge: 2

BeitragVerfasst am: 03.06.2005, 19:50    Titel: Antworten mit Zitat

Danke! Was FreeBasic und CPU-Last betrifft helfen die SLEEP Anweisungen vor den LOOPs
Aber dennoch funktioniert die Eingabe vom seriellen Port nicht richtig. In einem englischen Forum sagte man mir, dass open com Anweisungen gar nicht unterstuetzt werden von FreeBasic traurig

QBasic hat trotz den Sleep Anweisungen immer noch 100% CPU-Last (weil Dos-Programm). Aussdem funktioniert mit SLEEP-Anweisung die COM-Eingabe auch nicht mehr richtig.

Ich muss mich also wohl nach einer anderen Loesung umsehen
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Sebastian
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 5969
Wohnort: Deutschland

BeitragVerfasst am: 04.06.2005, 11:05    Titel: Antworten mit Zitat

Unter QB musst du anders vorgehen, um die CPU-Auslastung zu senken. lächeln

dreael hat Folgendes geschrieben:
Für die DOS-Programmierer an dieser Stelle noch einen ganz wichtigen CALL INTERRUPT wieder einmal:

http://www.ctyme.com/intr/rb-4530.htm

(INT 2Fh, AX=1680h)

Diesen solltet Ihr in jeder INKEY$/Mausroutinen-Idle-Schleife ständig aufrufen. Damit gibt man die CPU dem Betriebssystem zurück. Wer Ctrl+Alt+Del, "Taskmanager" aufruft, erkennt den Unterschied sofort, wenn rechts unten das grüne Vierecklein dunkelgrün bleibt. Notebook-Besitzer merken den Unterschied ausserdem im Akkubetrieb ebenfalls sofort.

Das Malprogramm-Beispiel unter

http://beilagen.dreael.ch/QB/MALPROG2.ZIP

macht ansonsten praktischen Gebrauch von dieser Funktion.


Viele Grüße!
Sebastian
_________________

Der Markt regelt das! | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen!
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 FreeBASIC. 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