Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
"ALT" Eingabe erkennen
WSX
myCSharp.de - Member



Dabei seit:
Beiträge: 32

Themenstarter:

"ALT" Eingabe erkennen

beantworten | zitieren | melden

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
private Nachricht | Beiträge des Benutzers
Florian Reischl
myCSharp.de - Experte

Avatar #avatar-2880.jpg


Dabei seit:
Beiträge: 1.564
Herkunft: München

beantworten | zitieren | melden

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ß.
private Nachricht | Beiträge des Benutzers
WSX
myCSharp.de - Member



Dabei seit:
Beiträge: 32

Themenstarter:

beantworten | zitieren | melden

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
private Nachricht | Beiträge des Benutzers
norman_timo
myCSharp.de - Member

Avatar #avatar-1775.jpeg


Dabei seit:
Beiträge: 4.506
Herkunft: Wald-Michelbach (Odw)

beantworten | zitieren | melden

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!”
private Nachricht | Beiträge des Benutzers
Lion1984
myCSharp.de - Member



Dabei seit:
Beiträge: 770
Herkunft: Österreich

beantworten | zitieren | melden

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
private Nachricht | Beiträge des Benutzers
WSX
myCSharp.de - Member



Dabei seit:
Beiträge: 32

Themenstarter:

beantworten | zitieren | melden

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
private Nachricht | Beiträge des Benutzers