Laden...

"ALT" Eingabe erkennen

Erstellt von WSX vor 16 Jahren Letzter Beitrag vor 16 Jahren 1.051 Views
W
WSX Themenstarter:in
32 Beiträge seit 2007
vor 16 Jahren
"ALT" Eingabe erkennen

Hallo!

Problemstellung,
An einem Terminal sollen Sendungen, nachgewogen werden.
Es funktioniert ja alles eigentlich perfekt, leider hab ich beim Scannen derzeit noch einen kleinen Schönheitsfehler, da mein Barcode immer 12 Stellig war, habe ich einfach eine If-Anweisung verwendet.


private void tb_scan_TextChanged(object sender, EventArgs e)
{
if (tb_scan.Text.Length >= 12) {
tb_weight.Text = mettler_toledo.get_weight();
routine_local.do_all_gewichtskorrektur();
}
...
}

Ein Kollege hat mir letztens erzählt, dass unsere Scanner ein ALT nach dem Barcode mitsenden, weiss einer von euch vielleicht wie ich dieses abfangen kann, damit ich nicht über die Länge des Strings arbeiten muss, ab Januar kommt nämlich mit einem neuen Service ein 14 Stelliger Barcode.

Also prinzipiell geht es darum, dass der Scanner mir einen String zurückgibt der inetwa so aussieht:
123456789101[ALT]
Wie sehe ich dieses [ALT] im String?

Es sieht sehr unsauber aus, wenn ich jetzt noch die zweite Mögliche Barcode Länge in die If Anweisung einbinden würde, hoffe ihr versteht dass 😁

Vielen Dank im Voraus.

"Arbeit ist die altmodische Form der Vermögensbildung in Arbeitnehmerhand."

Wolfram Weidner (*1925), dt. Journalist

1.564 Beiträge seit 2007
vor 16 Jahren

Hallo WSX

Also du könntest doch das "MouseDown"-Event abfangen. Ansonsten gibts aber für Barcodes normalerweise auch echte Gültigkeitsalgorythmen (siehe NVE oder ILN).

Grüße
Flo

Blog: Things about Software Architecture, .NET development and SQL Server
Twitter
Google+

Je mehr ich weiß, desto mehr weiß ich was ich noch nicht weiß.

W
WSX Themenstarter:in
32 Beiträge seit 2007
vor 16 Jahren

danke für deine antwort, zum thema gültigkeitsalgorithmen, die werden erfüllt, arbeite mit interleaved2of5, mit prüfziffer, wie gesagt jetzt kommt halt noch ein anderes system hinzu,
welches code39 verwendet.
zum thema mouse_down, diese software erfordert keinerlei eingabegerägt bis auf den scanner, du musst dir das so vorstellen.
-paket auf waage legen
-barcode am paket scannen
-ganz, ganz viele dbqueries, ...
-ein neuer label für das paket kommt raus

es geht mir einfach darum im vom imager übermittelten string, das zum schluss angefügte [ALT] zu erkennen, und dann sobald ich dieses [ALT] habe, meine funktionen für den erhaltenen barcode auszuführen.
vielleicht hab ich mich vorhin etwas falsch ausgedrückt

"Arbeit ist die altmodische Form der Vermögensbildung in Arbeitnehmerhand."

Wolfram Weidner (*1925), dt. Journalist

4.506 Beiträge seit 2004
vor 16 Jahren

Hallo WSX,

ich bin total verunsichert, deshalb mal meine Frage:
Ist [ALT] alleine überhaupt ein gültiges Zeichen? Ich dachte immer, dass "ALT" nur im Zusammenhang mit einer anderen Taste zu einem "Zeichen" wird?

Meist werden von Barcodescannern eher das klassische "/0" mitgeschickt. Bist Du Dir da also mit dem [ALT] sicher?

Grüße
Norman-Timo

A: “Wie ist denn das Wetter bei euch?”
B: “Caps Lock.”
A: “Hä?”
B: “Na ja, Shift ohne Ende!”

L
770 Beiträge seit 2006
vor 16 Jahren

Hallo,

warum arbeitst du nicht mit Contains?
so in etwa:

if (tb_scan.Text.Contains("[ALT]")) {
tb_weight.Text = mettler_toledo.get_weight();
routine_local.do_all_gewichtskorrektur();
}

Oder wenn du Zeichenweise arbeitest das Ende des Strings prüfen.
Hoffe hab dein Anliegen auch richtig verstanden.
lg

lg Lion

W
WSX Themenstarter:in
32 Beiträge seit 2007
vor 16 Jahren

ah problem gelöst,
der scanner hat laut anleitung ein ALT übergeben, in wirklichkeit war es laut debuger aber ein "0x00", die lösung mit dem Contains sieht verdammt sauber aus lion1984, danke allen 😁

"Arbeit ist die altmodische Form der Vermögensbildung in Arbeitnehmerhand."

Wolfram Weidner (*1925), dt. Journalist