Zeichenfolge verarbeiten

Anfängerfragen zum Programmieren mit PureBasic.
Scream
Beiträge: 32
Registriert: 26.12.2005 15:10

Beitrag von Scream »

ah super vielen dank :allright:

Scream
Benutzeravatar
H.Brill
Beiträge: 496
Registriert: 15.10.2004 17:42
Wohnort: 66557 Neunkirchen

Beitrag von H.Brill »

Hallo,
hätte da auch ne Frage :
Wie bekomme ich den ganzen Text auf einmal ausgelesen ?
So wie jetzt unten im Code wird ja Zeichen für Zeichen
gelesen. In der Listbox stehen dann 1. Zeichen, 1. + 2. Zeichen,
1., 2. + 3. Zeichen usw. also wie eine Pyramide.
Ich will es gerne mit #PB_EventType_Change machen, da
alles automatisch gehen soll. Ansonsten müßte ich noch
einen Button zum Abfragen machen.

Code: Alles auswählen

Global Quit.l
 
If OpenWindow(0, 10, 10, 400, 250, "Barcode", #PB_Window_SystemMenu|#PB_Window_MinimizeGadget|#PB_Window_ScreenCentered)
   If CreateGadgetList(WindowID(0))
       ButtonGadget(1,5, 10,100, 20, "Ende")
       ButtonGadget(2,120, 10, 100, 20, "Info")
       StringGadget(3,5, 50, 240, 20, "")
       ListViewGadget(10, 5, 100, 380, 120, #PB_ListView_Clickselect)
   EndIf
   Quit = 0
   Repeat
    EventID.l = WaitWindowEvent()
    Select EventID
       Case #PB_Event_CloseWindow
          Quit = 1
       Case #PB_Event_Gadget 
         Select EventGadget()    
            Case 1
               Quit = 1
            Case 2
             MessageRequester("Info", "Hallo !", #PB_MessageRequester_Ok) 
            Case 3
                Select EventType()
                  Case #PB_EventType_Change
                        AddGadgetItem(10, -1, GetGadgetText(3))
                EndSelect 
                ;SetGadgetText(3, "")      
       EndSelect
    EndSelect
   Until Quit = 1
EndIf

End
PB 6.10
Benutzeravatar
mk-soft
Beiträge: 3845
Registriert: 24.11.2004 13:12
Wohnort: Germany

Beitrag von mk-soft »

Warum immer so kompliziert. Barcodeleser werden über Serial, Netzwerk oder USB angeschlossen. Die meisten Geräte liefert ein ASCII Protokoll. Also ein String der ausgewerte werden muss.
Mit den Ergebnisstring kann man dann ganz normal weiterarbeiten.
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

würd' ich auch so sehen...

das in tastatureingabe umzuwandeln,
damit es in gadgets auftauchen kann,
ist wohl ne leistung von zusatzsoftware.

schau mal in die anleitung von dem barcodeleser,
da sollte ein kommunikationsprotokoll drinstehen.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
H.Brill
Beiträge: 496
Registriert: 15.10.2004 17:42
Wohnort: 66557 Neunkirchen

Beitrag von H.Brill »

Nö, ist keine Zusatzsoftware notwendig bzw. dabei.
Es ist ein Scanner mit Tastaturweiche. Einfach reinstecken
und sich wohlfühlen.
Siehste ja auch oben, daß es mit nem simplen StringGadget
geht. Die Frage war ja nur wegen der Automatisierung beim
Einlesen ohne Zutun des Anwenders.
Also Scannen, den EAN Code vom Stringgadget lesen und ab
in die Listbox, halt nur voll automatisch.
PB 6.10
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

> Die Frage war ja nur wegen der Automatisierung beim
> Einlesen ohne Zutun des Anwenders.

anderes gerät kaufen.

das was du hast ist eben ein ganz spezielles mit seiner tastaturweiche.
andere stecken an USB oder COM und kommunizieren über vernünftige protokolle.
solche lassen sich dann als stationärgeräte an nem fließband anbringen und sowas.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
H.Brill
Beiträge: 496
Registriert: 15.10.2004 17:42
Wohnort: 66557 Neunkirchen

Beitrag von H.Brill »

Habs ja deswegen gekauft, damit es einfach zu
handhaben ist und ich nicht noch über ser. oder
usb - Schnittstellen kommunizieren muß.
Mittlerweile hab ich es selber rausbekommen.
Ich muß halt nur nen Zähler mitführen, der die
Anzahl der vom Scanner gelieferten Zeichen zählt.
So funktioniert es nach meinen Vorstellungen :

Code: Alles auswählen

Global Quit.l, x.l
 
If OpenWindow(0, 10, 10, 400, 250, "Barcode", #PB_Window_SystemMenu|#PB_Window_MinimizeGadget|#PB_Window_ScreenCentered)
   If CreateGadgetList(WindowID(0))
       ButtonGadget(1,5, 10,100, 20, "Ende")
       ButtonGadget(2,120, 10, 100, 20, "Info")
       StringGadget(3,5, 50, 240, 20, "")
       ListViewGadget(10, 5, 100, 380, 120, #PB_ListView_Clickselect)
   EndIf
   Quit = 0
   x = 0
   Repeat
    EventID.l = WaitWindowEvent()
    Select EventID
       Case #PB_Event_CloseWindow
          Quit = 1
       Case #PB_Event_Gadget 
         Select EventGadget()    
            Case 1
               Quit = 1
            Case 2
             MessageRequester("Info", "Hallo !", #PB_MessageRequester_Ok) 
            Case 3
                Select EventType()
                  Case #PB_EventType_Change
                        x = x + 1
                  EndSelect 
                If x = 13  ; 13 Zeichen EAN - Code
                   AddGadgetItem(10, -1, GetGadgetText(3)) 
                   SetGadgetText(3, "") 
                   x = 0
                EndIf        
       EndSelect
    EndSelect
   Until Quit = 1
EndIf

End
PB 6.10
Benutzeravatar
Tafkadasom2k5
Beiträge: 1578
Registriert: 13.08.2005 14:31
Kontaktdaten:

Beitrag von Tafkadasom2k5 »

In diesem Fall fragste die Länge der EANs ab- ist natürlich praktikabel. Wäre es aber nicht günstiger, das #CRLF abzufangen? Somit wären auch EAN128 etc kein Problem mehr für deine Software ;)

Edit:
Viele Scanner mit Tastaturweichen bieten sogar eine Art Konfiguration an- da lassen sich die interessantesten Kombinationen von "untipparen" Zeichen als Terminator des Strings einstellen. Damit bist du dann auf ner relativ sicheren und skalierbareren Seite.
OpenNetworkConnection() hat geschrieben:Versucht eine Verbindung mit dem angegebenen Server aufzubauen. 'ServerName$' kann eine IP-Adresse oder ein voller Name sein (z.B.: "127.0.0.1" oder "ftp.home.net").
php-freak hat geschrieben:Ich hab die IP von google auch ned rausgefunden!
Benutzeravatar
H.Brill
Beiträge: 496
Registriert: 15.10.2004 17:42
Wohnort: 66557 Neunkirchen

Beitrag von H.Brill »

Ja, habe ich mittlerweile auch so gemacht.
Da ist ein ganzes Heftchen mit Barcodes dabei,
mit denen man den Scanner programmieren kann.
(start configuration, end configuration, save conf.
usw.). Klappt mit allen Barcodes prima.
PB 6.10
Antworten