Zuviel Werbung? - > Hier kostenlos beim SPS-Forum registrieren

Seite 3 von 5 ErsteErste 12345 LetzteLetzte
Ergebnis 21 bis 30 von 48

Thema: protool string archivieren?

  1. #21
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.799
    Danke
    398
    Erhielt 2.418 Danke für 2.014 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Innerhalb von ProTool werden Aktionen nur Ereignis-bezogen ausgeführt. Du hast die Möglichkeit, ein VB-Script z.B. bei Wert-Änderung oder bei Tasten-Drücken auszuführen.
    Der Unterschied von VB-Script zu VB ist einfach gesagt, dass innerhalb von ProTool nicht alles machbar ist. Das Aufrufen von Funktionen in externen DLL's geht z.B. nicht.
    Als Datei-Formate kannst du (sonfern installiert) auch z.B. Excel benutzen und dort direkt in von dir gewünschte Zellen schreiben.

    Gruß
    LL

  2. #22
    pascal ist offline Benutzer
    Themenstarter
    Registriert seit
    27.12.2007
    Beiträge
    35
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Zitat Zitat von Larry Laffer Beitrag anzeigen
    Innerhalb von ProTool werden Aktionen nur Ereignis-bezogen ausgeführt. Du hast die Möglichkeit, ein VB-Script z.B. bei Wert-Änderung oder bei Tasten-Drücken auszuführen.
    LL
    Habs gerade gefunden in Protool!
    So langsam kommt etwas Licht ins Dunkle..

  3. #23
    pascal ist offline Benutzer
    Themenstarter
    Registriert seit
    27.12.2007
    Beiträge
    35
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Soo, bin jetzt soweit das ich den String schonmal einlesen und testweise verarbeiten konnte mit vbs, im moment hakt es daran die tabelle zu erstellen bzw einen zweiten datensatz reinzuschreiben... gestern abend lief alles 100%ig, dann hab ich ein bischen rumgespielt und jetzt finde ich den Fehler nicht.. beim ersten Durchlauf läuft alles super, beim zweiten durchlauf erhalte ich eine Fehlermeldung, alle programmabschnitte für sich laufen (habs auskommentiert) nur im zusammenspiel geht nichts.. jedes mal bekomme ich ne fehlermeldung das in zeile 22 ein objekt erforderlich wäre.. vielleicht hab ich auch nur wieder nen brett vorm kopf und seh den wald vor lauter bäumen nicht.. hier mal das script

    Dim fso,fs,datei,textfile1,Barcode,str_Ergebnis 'Eine Art Variablendeklaration
    Barcode = 123 'hier wird den variablen nen wert bzw string zugewiesen
    str_Ergebnis = "positiv"
    Set fso = CreateObject("Scripting.FileSystemObject") 'ein objekt erstellen
    Set fs = CreateObject("WScript.Shell")
    datei="E:\Testvbs\testcsv.csv"

    If Not fso.FolderExists("E:\Testvbs") Then fso.CreateFolder("E:\Testvbs")

    If Not fso.FileExists (datei) Then
    Set TextFile1 = fso.CreateTextFile(datei, true)
    textfile1.WriteLine "Datum;"&"Uhrzeit;"&"Barcode;"&"Ergebnis"
    textfile1.WriteLine
    End If
    textfile1.Close
    If fso.FileExists (datei) Then
    Set TextFile1 = fso.OpenTextFile(datei,
    textfile1.WriteLine Date&";"&Time&";"&Barcode&";"&str_Ergebnis
    End If
    textfile1.Close

  4. #24
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.799
    Danke
    398
    Erhielt 2.418 Danke für 2.014 Beiträge

    Standard

    Hallo Pascal,
    ich sehe im Moment nicht wo Zeile 22 ist, aber als Anmerkung vielleicht :
    Die FileExists-Geschichte würde ich als IF .. THEN .. ELSE machen ... also :
    Code:
    If Not fso.FileExists (datei) Then 
       Set TextFile1 = fso.CreateTextFile(datei, true)
       textfile1.WriteLine "Datum;"&"Uhrzeit;"&"Barcode;"&"Ergebnis"
       textfile1.WriteLine 
    ELSE
    ' End If                 <- Diesen Zeile sind über
    ' textfile1.Close      <- diese ist vermutlich der Fehler
    ' If fso.FileExists (datei) Then 
       Set TextFile1 = fso.OpenTextFile(datei, :cool:
       textfile1.WriteLine Date&";"&Time&";"&Barcode&";"&str_Ergebnis
    End If
    textfile1.Close
    Versuch das mal ...
    Gruß
    LL

  5. #25
    Registriert seit
    20.06.2003
    Ort
    Sauerland.NRW.Deutschland
    Beiträge
    4.866
    Danke
    78
    Erhielt 806 Danke für 549 Beiträge

    Standard

    mir fällt kein fehler auf. aber wieso zeile 22 der code oben enthält weniger zeilen.

    wenn du das mit else machst, dann musst du aber vor dem else noch
    textfile1.WriteLine Date&";"&Time&";"&Barcode&";"&str_Ergebnis
    einfügen.
    denn sonst würdest du die erste datenzeile verlieren wenn die datei nicht existiert und trotzdem daten geschrieben werden sollen.
    .
    mfg Volker .......... .. alles wird gut ..

    =>Meine Homepage .. direkt zum Download

    Meine Definition von TIA: Total Inakzeptable Applikation

  6. #26
    pascal ist offline Benutzer
    Themenstarter
    Registriert seit
    27.12.2007
    Beiträge
    35
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Erstmal danke für den guten Support!

    Ich habe mich entschlossen etwas weiter unten anzusetzen, aber selbst da hapert es gewaltig.. weil ich manche Zeilen garnicht verstehe


    Set fs = CreateObject("WScript.Shell")

    Was passiert hier genau? hab mir jetzt das VBScript-Tutorium zugelegt, da sind die meisten Sachen ja ganz gut erklärt aber das Wscript.Shell konnte ich da jetzt nicht finden..

    Habs jetzt durch Trial and Error hinbekommen... es lag daran das ich in diesem Teil:
    If Not fso.FileExists(datei) Then
    fso.CreateTextfile(datei) 'Datei erstellen falls noch nicht da

    Set MeineTextDatei = fso.CreateTextFile (datei,true)
    MeineTextDatei.Writeline "Datum;"&"Uhrzeit;"&"Barcode;"&"Ergebnis"
    MeineTextDatei.Writeline

    hinter dem Then direkt weiter geschrieben hab, nach einem Absatz ging es.. ist das Normal?
    Dem Compiler ist es doch wurscht ob das jetzt dahinter oder 10 Zeilen darunter steht!?
    So kenne ich es aus C, oder hängt es vielleicht damit zusammen das in Basic keine Semikolons verwendet werden? (mal so eine Vermutung)

    Gruß

    Pascal
    Geändert von pascal (23.01.2008 um 20:45 Uhr)
    Zitieren Zitieren Aller Anfang ist schwer..  

  7. #27
    Registriert seit
    20.06.2003
    Ort
    Sauerland.NRW.Deutschland
    Beiträge
    4.866
    Danke
    78
    Erhielt 806 Danke für 549 Beiträge

    Standard

    Zitat Zitat von pascal Beitrag anzeigen
    hinter dem Then direkt weiter geschrieben hab, nach einem Absatz ging es.. ist das Normal?
    Dem Compiler ist es doch wurscht ob das jetzt dahinter oder 10 Zeilen darunter steht!?
    nee, das ist nicht egal.

    wenn hinter dem then direkt was steht, wird dies ausgeführt
    es darf kein end if folgen

    wenn mit zeilenumbruch, wird alles ausgeführt bis zum end if

    if blabal = 1 then nur dies = 1 'das ist ok
    und diese = 1 'wird immer, unabhängig von der if-anweisung ausgeführt
    end if '<- dies produziert einen fehler da if bereits 'beendet'

    oder so

    if blabal = 1 then
    nur dies = 1
    und diese = 1
    end if 'so gehts
    Geändert von volker (23.01.2008 um 20:56 Uhr)
    .
    mfg Volker .......... .. alles wird gut ..

    =>Meine Homepage .. direkt zum Download

    Meine Definition von TIA: Total Inakzeptable Applikation

  8. #28
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.799
    Danke
    398
    Erhielt 2.418 Danke für 2.014 Beiträge

    Standard

    Zitat Zitat von pascal Beitrag anzeigen
    oder hängt es vielleicht damit zusammen das in Basic keine Semikolons verwendet werden? (mal so eine Vermutung)
    Hallo Pascal,
    das ";" von "Pascal" (und "C" ?) ist in "Basic" ein ":". Das könntest du auch machen - sieht aber unübersichtlich aus. Ein Zeilenumbruch bewirkt das gleiche.

    Mit "CreateObject" teilst du der Datei-Ausgabe mit, was du da eigentlich erstellen willst. Das hat auch nichts mit Basic zu tun, sondern kommt ursächlich von Windows. Du könntest anstelle einer "WScript.Shell" z.B. auch eine "Excel.Application" erstellen (also auf ein Excel-Sheet schreiben wollen).

    Vielleicht hier noch ein Beispiel :
    Code:
    
    Const ForReading = 1, ForWriting = 2, ForAppending = 8
     
    Verzeichnis = "c:\Mess-Daten\Monat\" 
    Datei = "Messung.csv"
    Ziel = Verzeichnis + Datei
     
    ' Ziel-Verzeichnis schon vorhanden ?
    ' ... wenn nein, dann erst erzeugen ...
    Set fs = CreateObject("Scripting.FileSystemObject")
    IfNot fs.FolderExists (Verzeichnis) Then
    fs.CreateFolder (Verzeichnis)
    EndIf 
    ' Ziel-Datei schon vorhanden ?
    ' ... wenn nein, dann erst erzeugen ...
    IfNot fs.FileExists (Ziel) Then
    Set f = fs.OpenTextFile(Ziel , ForWriting, true)
    f.WriteLine "Messdaten Anlage 198"
    Else
    Set f = fs.OpenTextFile(Ziel , ForAppending)
    EndIf 
    
    Danach wird dann geschrieben und anschlißend ge-"closed". Das kennst du ja schon ...

    Gruß
    LL

  9. #29
    pascal ist offline Benutzer
    Themenstarter
    Registriert seit
    27.12.2007
    Beiträge
    35
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Zitat Zitat von Larry Laffer Beitrag anzeigen
    Hallo Pascal,

    Mit "CreateObject" teilst du der Datei-Ausgabe mit, was du da eigentlich erstellen willst. Das hat auch nichts mit Basic zu tun, sondern kommt ursächlich von Windows. Du könntest anstelle einer "WScript.Shell" z.B. auch eine "Excel.Application" erstellen (also auf ein Excel-Sheet schreiben wollen).

    LL
    Muss Excel dafür installiert sein?
    Ich habs jetzt soweit fertig das ich die Sachen abspeichern kann mit Uhrzeit, Datum , Artikelnummer und Ergebnis, Ziel ist eine csv-Datei, das sollte eigentlich reichen.

    Ist es bei Protool eigentlich nicht möglich nach fertigstellung des Scripts noch weitere Parameter mit reinzunehmen? habs bis jetzt immer so gemacht das ich das script neu angelegt habe, aber das kann ja keine Lösung sein wenn man am Testen ist..

    Gruß

    Pascal

  10. #30
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.799
    Danke
    398
    Erhielt 2.418 Danke für 2.014 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo Pascal,
    wenn du nach Excel schreiben willst, dann muß Excel auch installiert sein.

    Das Script kannst du beliebig oft ändern. Du must es nicht jedesmal neu schreiben. Es muss halt dann "nur" als ProTool-Projekt auf deinen Visualisierungs-Rechner.

    Gruß
    LL

Ähnliche Themen

  1. Konstante String in Variable String schreiben
    Von sailor im Forum Simatic
    Antworten: 8
    Letzter Beitrag: 07.12.2009, 18:01
  2. Antworten: 13
    Letzter Beitrag: 24.09.2009, 12:54
  3. Ein String kopieren in einen anderen String
    Von CanYouHelpMe im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 25.09.2008, 17:21
  4. Antworten: 4
    Letzter Beitrag: 19.09.2007, 16:48
  5. ProTool-Fehlermeldungen in String ?
    Von Larry Laffer im Forum HMI
    Antworten: 4
    Letzter Beitrag: 28.04.2007, 09:17

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •