Fischer-Bayern.de
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen   RegistrierenRegistrieren 
 ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

Barcodes ein-/auslesen

 
Neues Thema eröffnen   Neue Antwort erstellen    Fischer-Bayern.de Foren-Übersicht -> AppleScript X
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
JanNiklas
•->
•->


Anmeldedatum: 02.08.2010
Beiträge: 7

BeitragVerfasst am: 02.08.2010 - 11:05    Titel: Barcodes ein-/auslesen Antworten mit Zitat

Hallo AppleScripter!

Ich habe mir ein kleines Programm geschrieben, das Barcodes einliest und in eine Datei schreiben soll. Das Schreiben funktioniert, allerdings nicht die gewünschte Formatierung! Ich hätte gerne das Format "1234567890123#Name", also EAN, Trennzeichen (#) und Name.

Mit den Zeilen …
Code:
display dialog "Barcode einlesen:" default answer ""
      set bc to the text returned of the result
      
      display dialog "Titel eingeben:" default answer ""
      set title to the text returned of the result
      
      set Inhalt to (bc & "#" & title & return)
      
      -- In Datei schreiben
      set RefNum to (open for access file "BarcodeList" with write permission)
      
      try
         write (Inhalt) to RefNum starting at (get eof RefNum)
         close access RefNum
      on error
         close access RefNum
      end try
      --


bekomme ich aber nach jedem Trennzeichen einen Absatz hinein. Ebenso scheint er den return-Befehl am Ende zu vernachlässigen …

Kennt da jemand eine Lösung?

Mit dem Auslesen habe ich zur Zeit auch noch Probleme, aber daran mache ich mich wohl erst, wenn das Einlesen zuverlässig funktioniert …

Vielen Dank im Voraus!
Jan Niklas
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
JanNiklas
•->
•->


Anmeldedatum: 02.08.2010
Beiträge: 7

BeitragVerfasst am: 02.08.2010 - 11:09    Titel: Antworten mit Zitat

Upps …
Natürlich muss es so heißen:
"starting at (get eof RefNum +1)"
Damit wäre schon der angeblich missachtete Return-Befehl geklärt …

Der Absatz nach dem Trennzeichen bereitet mir aber immer noch Kopfzerbrechen!

Jan Niklas
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
hubionmac
•--->
•--->


Anmeldedatum: 26.02.2004
Beiträge: 245
Wohnort: Münster

BeitragVerfasst am: 03.08.2010 - 09:37    Titel: Antworten mit Zitat

Schreibe die Datei einfach mit einem Shell-Commando...
das verkürzt u.a. den benötigten Code....
Zitat:
set bc to " "
repeat until bc = ""
   display dialog "Barcode einlesen:" default answer ""
   set bc to the text returned of the result
   if bc ≠ "" then
      display dialog "Titel eingeben:" default answer ""
      set bc_title to the text returned of the result
      
      set Inhalt to (bc & "#" & bc_title)
      do shell script "echo " & Inhalt & "|cat>>~/Desktop/myfile.txt"
   end if
end repeat

_________________
hubionmac.com akzeptiere Paypal und Pizza
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
JanNiklas
•->
•->


Anmeldedatum: 02.08.2010
Beiträge: 7

BeitragVerfasst am: 03.08.2010 - 16:39    Titel: Antworten mit Zitat

Vielen Dank!

Ich wusste gar nicht, dass das Schreiben in eine Datei so einfach sein kann … Auch deine Optimierungen bei der Abfrageschleife sind sehr gut! Also ein großes Dankeschön an dich!
Leider verstehe ich nicht viel von Shell-Skripten. Scheint aber eine feine Sache zu sein, sodass ich mich da wohl ein wenig einlesen werde.

Hättest du eventuell auch ein Skript zum Auslesen des Titels parat? Wink
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
JanNiklas
•->
•->


Anmeldedatum: 02.08.2010
Beiträge: 7

BeitragVerfasst am: 03.08.2010 - 22:57    Titel: Antworten mit Zitat

Ich habe das Skript mittlerweile mit dem Barcodescanner ausprobiert. Leider musste ich feststellen, dass bei eingelesenen Nummern nichts in die Datei geschrieben wird. Wenn ich die Ziffern per Hand eingebe, läuft alles einwandfrei. Sobald ich aber eine Nummer per BC-Scanner eingelesen habe wird auch der Titel nicht in die Datei geschrieben. Woran könnte das liegen?
Meines Wissens nach generiert der Scanner eine Zahl als "Text" und hängt dem Ganzen einen Return-Befehl an. Aber was stört dabei das Skript?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
hubionmac
•--->
•--->


Anmeldedatum: 26.02.2004
Beiträge: 245
Wohnort: Münster

BeitragVerfasst am: 04.08.2010 - 00:30    Titel: Antworten mit Zitat

In der Tat etwas komisch...
Wenn Du in den Dialog scannst, drückt dann der BC-Scanner direkt den OK-Button oder musst Du nach dem Scannen erst selber mit Return bestätigen...
Probiere doch mal ein leeres Skript aus direkt im Script-Editor

Code:
display dialog "Test" default answer ""


und scanne da mal etwas ein. Im Ergebnis siehst Du welche Zeichen in Text-Returned stehen... ist dort ein Umbruch enthalten... vielleicht noch etwas anderes?


Ich nutze Barcode Scanner meist im Verbund mit Webseiten (JavaScript), zumal JavaScript direkt jeden Tastenanschlag bei der Eingabe auswerten kann. Die Scanner die ich nutze sind meist so eingestellt, dass kein Return oder New-Line Character am Ende gesendet wird sonder ein etwas stranges Steuerzeichen (charcode 10).


Scanne doch mal auf dieser Webseite ein Zahl mit deinem Scanner ein und poste mal, den Output... die Seite zeigt Dir den Charcode jede eingegeben Zeichens an....
http://dl.dropbox.com/u/154308/FischerBayern/15714/charcodes.html
_________________
hubionmac.com akzeptiere Paypal und Pizza
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
JanNiklas
•->
•->


Anmeldedatum: 02.08.2010
Beiträge: 7

BeitragVerfasst am: 04.08.2010 - 09:58    Titel: Antworten mit Zitat

Aha. Hier ist das Ergebnis:
Zitat:

55--->7
51--->3
50--->2
49--->1
57--->9
50--->2
53--->5
48--->0
48--->0
51--->3
56--->8
50--->2
54--->6
13--->
10--->


Ein Return wird angehängt, d.h. man muss kein OK mehr drücken. Das finde ich auch sehr praktisch!
Was allerdings das andere Zeichen ist, ist mir unklar …
Ein Test-Dialog hatte ich auch schon erstellt. Dieser spukte allerdings die Zahlen ganz "normal" aus – auch z.B. TextEdit!

Was ich aber glaube ist, dass sich der Shell-Befehl an dem zusätzlichen Zeichen stört … Mit dem write-Befehl wurde ja wenigstens in die Textdatei geschrieben … sehr komisch.

Gruß,
Jan Niklas
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
JanNiklas
•->
•->


Anmeldedatum: 02.08.2010
Beiträge: 7

BeitragVerfasst am: 06.08.2010 - 16:59    Titel: Antworten mit Zitat

So. Ich habe das Programm jetzt fast fertig.
Einzige Einschränkung: Einlesen per Barcodescanner nicht möglich. Gibt man den selben Code per Hand ein, funktioniert alles problemlos!
Ich habe leider keinen Drucker zur Verfügung, um die Programmierseite aus dem Handbuch des BC-Scanners auszudrucken, um die ASCII-Zeichen 10 oder 13 (Return?) auszuschalten.

Probeweise habe ich es mit folgendem Handler versucht – erfolglos, aber warum?
Code:
 removeChar(ASCII Character 10, bc)

on removeChar(Char, input)
   set tid_old to AppleScript's text item delimiters
   set AppleScript's text item delimiters to Char
   set bc to input's text items
   set AppleScript's text item delimiters to tid_old
   return bc as text
end removeChar


Kann man damit etwas anfangen?


Zuletzt bearbeitet von JanNiklas am 23.09.2010 - 21:05, insgesamt einmal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
hubionmac
•--->
•--->


Anmeldedatum: 26.02.2004
Beiträge: 245
Wohnort: Münster

BeitragVerfasst am: 07.08.2010 - 10:49    Titel: Antworten mit Zitat

Ich bin leider noch nicht dazu gekommen das ganze mal mit meinem Scanner bei der Arbeit zu testen.... nutzt Du den Scanner nur dafür?
Vielleicht kannst Du ihn ja umprogrammieren, dass er auf das Steuerzeichen am Ende verzichtet... Normalerweise Programmierst Du solche Dinger über bestimmte Steuer-Barcodes die im Handbuch abgedruckt sind.
_________________
hubionmac.com akzeptiere Paypal und Pizza
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
JanNiklas
•->
•->


Anmeldedatum: 02.08.2010
Beiträge: 7

BeitragVerfasst am: 22.08.2010 - 09:31    Titel: Antworten mit Zitat

Aaah, jetzt geht's!

Es lag wirklich nur an diesem einen Steuerzeichen. Nachdem ich endlich die Funktion in dem Programmierhandbuch gefunden und das geändert hatte, lief alles problemlos!
Aber selbst der Versuch das ASCII-Zeichen per AppleScript herauszufiltern schlug fehl …

Jetzt kann ich die Barcodes einlesen, diese werden mit einem händisch eingegebenen Titel, getrennt mit '#', in eine Datei geschrieben.
Die Scan-Funktion liest nun einen Barcode ein und sucht den zugehörigen Titel in der Datei und zeigt diesen per Growl an. Funktioniert super!

Mittlerweile arbeite ich an einem Skript, dass – aufbauend auf oben genanntem Skript – User-IDs einliest und Artikel(barcodes) den Benutzern mit Datum zuordnen kann. Kurz: Es wird ein Leih-Manager. Als Nebenprodukt entstand noch ein Skript, dass die Barcodes (EANs) ihren Herkunftsländern zuordnet …

So viel zu meinem Feedback.
Ich bedanke mich herzlichst für Deine Mühe und Hilfe, hubionmac!

Danke,
JanNiklas
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
hubionmac
•--->
•--->


Anmeldedatum: 26.02.2004
Beiträge: 245
Wohnort: Münster

BeitragVerfasst am: 23.08.2010 - 02:44    Titel: Antworten mit Zitat

Gerne doch!Wenn Du das irgendwann mal WebApp herausbringen möchtes, dann lass es mich wissen, helfe gerne Smile
_________________
hubionmac.com akzeptiere Paypal und Pizza
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Fischer-Bayern.de Foren-Übersicht -> AppleScript X Alle Zeiten sind GMT + 2 Stunden
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.


Powered by phpBB © 2001, 2002 phpBB Group
Deutsche Übersetzung von phpBB.de


AppleScript für absolute Starter