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:

Hilfe: Barcodescanner auf COM2 lesen und auswerten

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Profi-Forum
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Toy



Anmeldungsdatum: 07.07.2005
Beiträge: 3

BeitragVerfasst am: 07.07.2005, 15:47    Titel: Hilfe: Barcodescanner auf COM2 lesen und auswerten Antworten mit Zitat

Guten Tag,

bin neu in der "Basic" Szene,
kenn mich auch schon bissl aus,
ich bin zufällig auf das forum hier gestoßen und dachte mir ich frag mal nach meinem problem.

So:
Ich hab nen Barcodescanner der mir alle Barcodes lesen kann. Dieser Barcodescanner läuft über COM2. Ich hab zuerst geschaut was mir das "Hyper Terminal" so ausspuckt wenn ich ein paar codes einscanne.
Mit Freude konnte ich feststellen, dass der da den Code sehr gut lesen kann. Die nächste aufgabe war mal so ein "terminal" mit Q-Basic zu schreiben. Das hab ich mit dem Monster-FAQ hier noch gut hinbekommen.
Das sieht jetzt in etwa so aus:

Code:

OPEN "COM2:9600,N,8,1,DS0,CS0,CD0,BIN" AS 1
LokalesEcho% = 0

DO
  a% = LOC(1)
  IF a% > 0 THEN
    z$=INPUT$(a%, 1)
    PRINT z$; 
  END IF
LOOP UNTIL t$=CHR$(27)


Das funktioniert auch ohne Probleme.

Jetzt will ich aber dass der Barcode der da erscheint als ein anderer Text ausgegeben wird und auf dem screen nur z.b. "LABEL1" steht.
Das problem iss nur, dass sehr komische ASCII Zeichen wie z.B. ein Herzchen oder ein Smilie und andere Steuerzeichen mitgesendet werden und ich die nicht rausfiltern kann. Kann mir wer helfen und etwas programmieren / bzw zeigen wie ich die Daten in einen Text umwandeln kann

Mit freundlich Grüßen
Toy
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
MisterD



Anmeldungsdatum: 10.09.2004
Beiträge: 3071
Wohnort: bei Darmstadt

BeitragVerfasst am: 07.07.2005, 16:07    Titel: Antworten mit Zitat

schau mal in der Online-Hilfe nach den Ascii-Zeichencodes, du musst einfach sagen, dass er zeichen nur benutzen soll, wenn ASC in den entsprechenden Bereichen liegt, die du dir an der Zeichencode-tabelle ausdenken kannst.
_________________
"It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
Edsger W. Dijkstra
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
volta



Anmeldungsdatum: 04.05.2005
Beiträge: 1874
Wohnort: D59192

BeitragVerfasst am: 07.07.2005, 17:25    Titel: Antworten mit Zitat

Hallo,
diese Zeichen sind nicht als Text, sondern als Zahlen zu betrachten.
Wenn du Näheres wissen möchtest, google mal nach Barcode, EAN.
Hier gibts Infos;
http://www.gs1-germany.de/content/e39/e50
http://www.barcode24.com/barcode-typen/CodeEAN.html
Gruß
Volta
_________________
Warnung an Choleriker:
Dieser Beitrag kann Spuren von Ironie & Sarkasmus enthalten.
Zu Risiken & Nebenwirkungen fragen Sie Ihren Therapeuten oder Psychiater.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Toy



Anmeldungsdatum: 07.07.2005
Beiträge: 3

BeitragVerfasst am: 07.07.2005, 17:57    Titel: Antworten mit Zitat

ich glaube ich habe mich falsch ausgedrückt, denn mit euren comments / links komme ich nicht weiter.

die richtigen Zahlen habe ich ja, (z.B. bei einem Nahrungsmittelprodukt wurde der gleiche Zahlencode ausgeben der auch auf dem produkt stand)

der bar code wird bei mir im terminal so ausgegeben:

#EAX◙◙◙5614654561◙◙◙#STX

(die ◙ sind smilies herzchen o.ä. steuerzeichen)

so jetzt will ich zum beispiel sagen, dass der eigentliche code (hier: 5614654561 ) vom meinem programm erkannt wird und dann statt dieser zahlenreihe und diesen steuerzeichen ein Text erscheint:

z.b. hab ich 2 verschiedene codes:
1. code wird erkannt und als "Label1" auf meinem screen ausgeben (also wird im grunde nur der zahlencode in ein text umgewandelt)
2. code wird erkannt und als "Label2" auf meinem screen ausgeben
und wenn kein code erkennt wurde soll er z.B. "ERROR" ausgeben

das problem bei der sache ist eben das, dass ich nicht weiß wie das geht (ein Text über COM2 empfangen und anders ausgeben auf dem screen) und außerdem kann ich trotz ASCII - Tabelle diese steuerzeichen nicht ins qbasic kopieren o.ä

Gruß
Toy
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
volta



Anmeldungsdatum: 04.05.2005
Beiträge: 1874
Wohnort: D59192

BeitragVerfasst am: 07.07.2005, 18:24    Titel: Antworten mit Zitat

ja, wenn das dein Problem ist,
der Befehl ist MID$(z$,start,länge)
Wenn z$ die empfangenen Zeichen (vom Barcodescanner) enthält und immer die gleiche Länge (Anzahl der Zeichen) hatt, dann:
Code:
p$=MID$(z$,8,10) 'ab dem 8.Zeichen 10 Zeichen aus z$ kopieren
PRINT p$


Gruß
Volta
EDIT/
Dieser Link ist Empfehlenswert wenn du passende QBasicbefehle suchst
http://www.antonis.de/faq/
_________________
Warnung an Choleriker:
Dieser Beitrag kann Spuren von Ironie & Sarkasmus enthalten.
Zu Risiken & Nebenwirkungen fragen Sie Ihren Therapeuten oder Psychiater.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Toy



Anmeldungsdatum: 07.07.2005
Beiträge: 3

BeitragVerfasst am: 07.07.2005, 18:45    Titel: Antworten mit Zitat

das hilft mir weiter ! dankeschön

so: jetzt noch eine Sache,

ich hab jetzt praktisch die Zahlenkette rausgefiltert und will jetzt, dass zu jeder verschiedenen Zahlenkette ein verschiedener Text kommt.
ich hab schon ne ahnung wie ich das mache aber sicher ist sicher.
also:

wenn Zahlenkette1 = 5614654561
print "Label1"

wenn Zahlenkette2 = 3298472873
print "Label2"

wenn Zahlenkette3 = 0
print "ungültiger Code"

sry dass ich so fragen "newbie" fragen stelle (bin halt doch nur ein "tüftler" und hab qbasic eigentlich net so drauf)

Gruß
Toy
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
jb



Anmeldungsdatum: 14.01.2005
Beiträge: 2010

BeitragVerfasst am: 07.07.2005, 19:14    Titel: Antworten mit Zitat

Wo ist das Problem?
So müsste es doch gehen lächeln

/EDIT: Ich sehe gerade, du schreibst
Zitat:

wenn Zahlenkette1 = 5614654561
print "Label1"

wenn Zahlenkette2 = 3298472873
print "Label2"

wenn Zahlenkette3 = 0
print "ungültiger Code"


Du darfst da keine fortlaufende Nummer nehmen, da du dann ja immer eine andere
Variable abfragst.

jb
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Kai Bareis



Anmeldungsdatum: 10.09.2004
Beiträge: 545
Wohnort: Baden Würtemberg

BeitragVerfasst am: 07.07.2005, 19:39    Titel: Antworten mit Zitat

Dazu ist der befehl SELECT CASE sehr nützlich.
mal ein kleines Beispiel
Code:

Z$="blabla1" 'das was rausgefilterd wird
SELECT CASE Z$
CASE "00001"
PRINT "Label1"
CASE "00002"
PRINT "Label2"
....
...
END SELECT

_________________
MfG Kai Bareis
Es ist noch kein Meister vom Himmel gefallen! Warum einfach wens auch umständlich geht!
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 -> Profi-Forum 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