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

Ergebnis 1 bis 8 von 8

Thema: CSV Datei schreiben Wincc Flexible 2008 mit veränderlichem Dateinamen

  1. #1
    Registriert seit
    15.03.2011
    Beiträge
    47
    Danke
    13
    Erhielt 5 Danke für 4 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo Forum,

    ich möchte eine CSV-Datei aus einer Runtime schreiben. Der Dateiname soll variabel sein ( String ).
    Wie bekomme ich eine indizierte Adressierung des filenamen hin?

    Müsste ich nicht hier :

    path = "c:\test\textfile.txt"

    textfile mit einem String ersetzen um dann das file zu erzeugen ?

    'if no file exist a text file will be created - Datei erstellen, wenn keine vorhanden
    If Not fso.FileExists(path) Then
    fso.CreateTextFile(path)

    Vielen Dank
    Gruss olmuk
    Geändert von dariyos (15.06.2016 um 12:02 Uhr)
    Zitieren Zitieren CSV Datei schreiben Wincc Flexible 2008 mit veränderlichem Dateinamen  

  2. #2
    Registriert seit
    23.07.2009
    Ort
    Österreich
    Beiträge
    2.336
    Danke
    448
    Erhielt 688 Danke für 513 Beiträge

    Standard

    Sieh die diesen Beitrag an, da ist ziemlich das drin was du suchst.
    Inklusive einiger Beispiele wie man z.B. den Dateinamen variabel über das Datum erstellen kann.
    Wincc Flex Datei erstellen und schreiben
    Geändert von RONIN (01.06.2016 um 16:16 Uhr)
    If at first you don't succeed, you're not Van Damme!
    ... or maybe using TIA!

  3. #3
    olmuk ist offline Benutzer
    Themenstarter
    Registriert seit
    15.03.2011
    Beiträge
    47
    Danke
    13
    Erhielt 5 Danke für 4 Beiträge

    Standard

    Hallo,
    vielen Dank für die schnelle Antwort und die Infos.

    Ich scheitere am Syntax den Dateinamen durch einen String zu ersetzen:
    Betrifft den Teil "&CStr(file)"

    Vielleicht wird es mit dem ganzen Script klarer :
    'Deklaration von lokalen Variablen
    Dim fso, f, ts, path, file

    file = "Meinfile"

    'Definition der Datei-Extension
    If SmartTags("bExtension") = 0 Then
    path = "c:\test\textfile.txt"
    Else
    path = "c:\test\ & CStr(file).csv"
    End If

    'Create object - Objekt erstellen
    Set fso = CreateObject("Scripting.FileSystemObject")

    'Abfrage Ordner vorhanden, wenn nicht dann erzeugen
    If Not fso.FolderExists("c:\test") Then
    fso.CreateFolder("c:\test")
    End If

    'Abfrage Datei vorhanden, wenn nicht dann erzeugen
    If Not fso.FileExists(path) Then
    fso.CreateTextFile(path)
    End If

    Set f = fso.GetFile(path)

    Set ts = f.OpenAsTextStream(2, -2)

    'Write values into the file - Werte in die Datei schreiben
    ts.WriteLine("Schritt 1; " & SmartTags("Sollwert Out Schritt_1") & ";" & SmartTags("Zeit Schritt_1") & ";")
    ts.WriteLine("Schritt 2; " & SmartTags("Sollwert Out Schritt_2") & ";" & SmartTags("Zeit Schritt_2") & ";")
    ts.WriteLine("Schritt 3; " & SmartTags("Sollwert Out Schritt_3") & ";" & SmartTags("Zeit Schritt_3") & ";")
    ts.WriteLine("Schritt 4; " & SmartTags("Sollwert Out Schritt_4") & ";" & SmartTags("Zeit Schritt_4") & ";")
    ts.WriteLine("Schritt 5; " & SmartTags("Sollwert Out Schritt_5") & ";" & SmartTags("Zeit Schritt_5") & ";")

    'Close file - Datei schließen
    ts.Close

    Set ts = Nothing
    Set f = Nothing
    Set fso = Nothing

  4. #4
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.163
    Danke
    921
    Erhielt 3.286 Danke für 2.655 Beiträge

    Standard

    Was meinst Du mit "indiziert"? Soll da noch eine veränderliche Zahl im Dateiname verwendet werden?

    Ansonsten: Dateiname zusammensetzen = String zusammensetzen, z.B. Strings verketten
    Code:
    myfile = "Meinfile"
    path = "C:\test\"
    
    file = path & myfile & ".csv"  '--> file = "C:\test\Meinfile.csv"
    Harald
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  5. Folgender Benutzer sagt Danke zu PN/DP für den nützlichen Beitrag:

    olmuk (02.06.2016)

  6. #5
    Registriert seit
    23.07.2009
    Ort
    Österreich
    Beiträge
    2.336
    Danke
    448
    Erhielt 688 Danke für 513 Beiträge

    Standard

    Zitat Zitat von olmuk Beitrag anzeigen
    file = "Meinfile"

    'Definition der Datei-Extension
    If SmartTags("bExtension") = 0 Then
    path = "c:\test\textfile.txt"
    Else
    path = "c:\test\ & CStr(file).csv"
    End If
    Was sollen denn die Anführungszeichen an der Stelle?
    Wenn dann...
    Code:
    path = "c:\test\" & CStr(file) & ".csv"
    Wobei das CStr (Convert_to_String) ja nutzlos ist da die Variable "file" mit "Meinfile" eh schon einen String enthält.

    Wie man sieht weißt du ja wie man Zeichenketten zusammenbaut. Also wo liegt das Problem?
    Zitat Zitat von olmuk Beitrag anzeigen
    ts.WriteLine("Schritt 1; " & SmartTags("Sollwert Out Schritt_1") & ";" & SmartTags("Zeit Schritt_1") & ";")
    If at first you don't succeed, you're not Van Damme!
    ... or maybe using TIA!

  7. Folgender Benutzer sagt Danke zu RONIN für den nützlichen Beitrag:

    olmuk (02.06.2016)

  8. #6
    olmuk ist offline Benutzer
    Themenstarter
    Registriert seit
    15.03.2011
    Beiträge
    47
    Danke
    13
    Erhielt 5 Danke für 4 Beiträge

    Standard

    Das hilft mir weiter im Verständnis - wie gesagt scheitere ich etwas am Syntax.
    Probiere es aus und gebe Rückmeldung - danke

  9. #7
    olmuk ist offline Benutzer
    Themenstarter
    Registriert seit
    15.03.2011
    Beiträge
    47
    Danke
    13
    Erhielt 5 Danke für 4 Beiträge

    Standard

    Danke für die Hilfe - So nun habe ich was ich benötige :

    '////////////////////////////////////////////////////////////////
    ' Erstellen und Speichern einer CSV-Datei mit variablem Dateinamen
    ' Created: 03-06-2016
    ' Version: v0.1
    ' Author: UJ
    '////////////////////////////////////////////////////////////////

    'Deklaration von lokalen Variablen
    Dim fso, f, ts, path, file, myfile

    myfile = Dateiname_Parameter
    path = "C:\test"
    file = path & myfile & ".csv"

    'Objekt erstellen
    Set fso = CreateObject("Scripting.FileSystemObject")

    'Abfrage Ordner vorhanden, wenn nicht dann erzeugen
    If Not fso.FolderExists("c:\test") Then
    fso.CreateFolder("c:\test")
    End If

    'Abfrage Datei vorhanden, wenn nicht dann erzeugen
    If Not fso.FileExists(file) Then
    fso.CreateTextFile(file)
    End If

    Set f = fso.GetFile(file)

    Set ts = f.OpenAsTextStream(2, -2)

    'Werte in die Datei schreiben
    ts.WriteLine("Schritt 1; " & SmartTags("Sollwert Out Schritt_1") & ";" & SmartTags("Zeit Schritt_1") & ";")
    ts.WriteLine("Schritt 2; " & SmartTags("Sollwert Out Schritt_2") & ";" & SmartTags("Zeit Schritt_2") & ";")
    ts.WriteLine("Schritt 3; " & SmartTags("Sollwert Out Schritt_3") & ";" & SmartTags("Zeit Schritt_3") & ";")
    ts.WriteLine("Schritt 4; " & SmartTags("Sollwert Out Schritt_4") & ";" & SmartTags("Zeit Schritt_4") & ";")
    ts.WriteLine("Schritt 5; " & SmartTags("Sollwert Out Schritt_5") & ";" & SmartTags("Zeit Schritt_5") & ";")

    'Close file - Datei schließen
    ts.Close

    Set ts = Nothing
    Set f = Nothing
    Set fso = Nothing

  10. #8
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.163
    Danke
    921
    Erhielt 3.286 Danke für 2.655 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von olmuk Beitrag anzeigen
    'Abfrage Datei vorhanden, wenn nicht dann erzeugen
    If Not fso.FileExists(file) Then
    fso.CreateTextFile(file)
    End If

    Set f = fso.GetFile(file)

    Set ts = f.OpenAsTextStream(2, -2)
    Geht einfacher
    Code:
    'Datei öffnen, wenn nicht vorhanden dann erzeugen
    Set ts = fso.OpenTextFile(file, 8, True) '8 = ForAppending, True = neue Datei erstellen wenn nicht exist
    PS: für posten von Code bitte die [CODE]-Tags benutzen (der #-Button im Beitragseditor)

    Harald
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

Ähnliche Themen

  1. WINCC flex - Daten in csv-Datei schreiben
    Von dirknico im Forum HMI
    Antworten: 8
    Letzter Beitrag: 02.12.2013, 11:39
  2. Antworten: 4
    Letzter Beitrag: 16.11.2012, 18:08
  3. Antworten: 9
    Letzter Beitrag: 14.05.2012, 09:57
  4. Antworten: 1
    Letzter Beitrag: 02.03.2009, 13:04
  5. Antworten: 6
    Letzter Beitrag: 18.07.2005, 08:43

Lesezeichen

Berechtigungen

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