Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Erkennen des Eingabegerätes? (Tastatur versus Scanner) (https://www.delphipraxis.net/1807-erkennen-des-eingabegeraetes-tastatur-versus-scanner.html)

Philippe Sch. 25. Dez 2002 10:02


Erkennen des Eingabegerätes? (Tastatur versus Scanner)
 
guten Morgen und schöne Weihnachten. Da einpaar Tage frei, habe ich Zeit, etwas zu programmieren. Dabei stellt sich mir folgende Frage: in einem Edit-Feld soll eine 14stellige alphanumerische Ziffernfolge eingegeben werden, entweder manuell oder via Barcodescanner. Wenn manuell, so werden gewisse Plausibilitätsprüfungen PRO Ziffer gemacht und am Schluss eine Prüfzahl-Routine nach ISO 7064, modulo 37,2. Die Routinen sind nun nicht das Problem, sondern dass bei Eingabe durch den Scanner diese Routinen NICHT durchlaufen sollen (es hat nämlich drin interaktive Abfragen, so dass der Scanner "hängenbleibt"). Umgekehrt möchte ich den künfigen Benutzern nicht zumuten,jedesmal mit einer Eingabe anzugeben,ob die Zahl per Scanner odertastatur eingegeben wird. Elegant wäre eine automatische Erkennung des Eingabesignals (USB-Scanner). Hat jemand eine Idee?
herzlichen Dank und schöne Festtage
Philippe

Hansa 25. Dez 2002 11:21

Hi,

den Sinn des ganzen verstehe ich nicht, aber wegen Weihnachten kriegst Du sogar darauf eine Antwort. :mrgreen: Das ganze ist Hardware-spezifisch. Jetzt gibt es zwei Typen von Scannern : Tastatur-Scanner oder serielle. Bei letzterem hast Du wesentlich mehr Programmier-Arbeit, aber Du kannst sofort entscheiden, ob die Eingabe von der Tastatur kommt oder von der seriellen Schnittstelle. Bei einem Tastatur-Scanner gibt es aber (glaube zumindest), die Möglichkeit´, daß der Scanner ein spezielles Zeichen VOR den eingelesenen String setzt. Das muß Du dem aber erst einmal beibringen.

Gruß
Hansa

Philippe Sch. 25. Dez 2002 11:41

Wahrscheinlich habe ich mit "Scanner" das falsche Gerät genannt.
ich verstehe von Hardware-Dingern nichts besonders viel. Zur Erklärung über Nutzen resp. Sinn dieser Prüfziffer-Routine resp. Plausibilitätsprüfungen: Statt über den Barcodeleser muss eine Nummer (im konkreten Fall Blutkonservennummer) von Hand eingegeben werden. Damit keine falschen Nummern zugeordnet werden, müssen die manuellen Eingaben möglichst gegen Fehler geschützt werden (internationale Prüfziffer-Routinen, Plausibilitätsprüfungen etc.), während maschinelle Eingaben über den Barcode sicher richtig sind.
Zum Barcodeleser: der funktioniert ohne mein Zutun. Musste nichts programmieren. Aber intern wird eine Ziffer nach der anderen abgearbeitet, wie bei einer Tastatureingabe; einfach viel schneller.

Hansa 25. Dez 2002 15:27

Hi,

Zitat:

Zitat von Philippe Sch.
Wahrscheinlich habe ich mit "Scanner" das falsche Gerät genannt... intern wird eine Ziffer nach der anderen abgearbeitet, wie bei einer Tastatureingabe; einfach viel schneller.

Nee, Nee ich weiß schon was Du willst. Nur, wo liegt noch das Problem ? Die Lösung hast Du doch.

weihnachtliche Grüße
Hansa

Sascha_OW 9. Jan 2006 10:26

Re: Erkennen des Eingabegerätes? (Tastatur versus Scanner)
 
Hallo,

ich habe ein ähnliches problem. Und zwar möchte ich gerne mittels eines Barcodesscanner der zwischen PC und Tastatur geklemmt wird Barcode auslesen. Nur das Problem ist das ich da Wissen muss wo das Signal herkommt, geht das irgendwie, ich denke fast das das nicht gehen wird, aber vieleicht wisst ihr das ja besser. Habe ich richtig verstanden das bei den Scanner die zwischen Tastatur und PC geklemmt werden nicht weiter Programmiert werden muss das das funktioniert. Das Signal kommt so an als hätte es ein User auf der tastatur eingegeben?



Vielen Danke jetzt schon mal



Sascha_O5 stolz auf Delphi 2005 Prof.

Hansa 9. Jan 2006 12:05

Re: Erkennen des Eingabegerätes? (Tastatur versus Scanner)
 
Zitat:

Zitat von Sascha_OW
..Und zwar möchte ich gerne mittels eines Barcodesscanner der zwischen PC und Tastatur geklemmt wird Barcode auslesen. Nur das Problem ist das ich da Wissen muss wo das Signal herkommt..

Wozu mußt Du das wissen ? Das läßt sich locker über die Länge des Eingabe-Edits bestimmen. Werden Art.-Nummern > 8 gebraucht, dann siehts eher öde aus. :mrgreen:

Sascha_OW 13. Jan 2006 10:04

Re: Erkennen des Eingabegerätes? (Tastatur versus Scanner)
 
so habe das gerät jetzt da. So einfach ist das nicht das gerät "tipp" ja auch jeden Buichstaben nacheinander ein. Also woher soll ich wissen ob es der User war oder der Scanner.

Ferber 13. Jan 2006 10:41

Re: Erkennen des Eingabegerätes? (Tastatur versus Scanner)
 
Hi !
Ich verwende selber Barcodesacanner. Teils Infrarot, teils Laser.
Alle Handscanner lassen sich mittels beiliegendem Handbuch programmieren.
Such dort mal nach "PRÄAMBEL" oder "BARCODEID".
Für Exceleingabe hat sich F3 bewährt.
Für weitere Info stehe ich gerne zur Verfügung.
PS: Es ist egal ob der Scanner an USB oder Tastatur angeschlossen ist.

Vjay 13. Jan 2006 10:59

Re: Erkennen des Eingabegerätes? (Tastatur versus Scanner)
 
Zitat:

Zitat von Sascha_OW
so habe das gerät jetzt da. So einfach ist das nicht das gerät "tipp" ja auch jeden Buichstaben nacheinander ein. Also woher soll ich wissen ob es der User war oder der Scanner.

Der Scanner wird sicherlich nichtmal eine Sekunde zum Tippen der gesamten Nummer benötigen.
Evtl. führt eine Zeitmessung erste-letzte Eingabe zum gewünschten Erfolg, da der User sicher 5-6 Sekunden rumtippselt.

hstammlerj 13. Jan 2006 12:03

Moin moin,

bisher hab ich nur mitgelesen, bei dem Thema muss ich aber etwas loswerden: :zwinker:

Zitat:

Zitat von Philippe Sch.
während maschinelle Eingaben über den Barcode sicher richtig sind.

Glaube nicht daran. Prüfe die Plausibilität genauso, schalte die interaktiven Fragen nach die Eingabe der gesamten Nummer. Je nach Barcodetyp ist es z.B. möglich, daß nur ein Teil eingelesen wird (für alle Spezis: 2 aus 5 interleaved), da keine "Gesamt-Checksumme" vorhanden ist.
Außerdem, was machst Du, wenn man aus Versehen den falschen Barcode einscannt? Barcodes werden immer häufiger und es ist nur eine Frage der Zeit, bis jemand irgendeinen anderen Code in der Umgebung aus Versehen anschiesst.

Natürlich kann man mit der Zeitschiene oder Headern arbeiten, wenn man aber nicht alle Programme selber schreibt nützt das herzlich wenig. Es gilt wie bei der Programmierung von allen Dateneingaben: Erwarte nie, daß das richtige eingegeben wird, erwarte immer, daß jemand bewusst oder unbewusst Mist baut.

cu2all
Herbert


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:43 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz