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

Ergebnis 1 bis 5 von 5

Thema: WinCC (Tia) VB Skript zum String trennen

  1. #1
    Registriert seit
    23.07.2015
    Beiträge
    2
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zunächst: ich bin noch blutiger VB Anfänger zum skripten. Nach einigen Stunden und Recherche im Internet ist meine Laune gegen null. Ich habe folgendes Problem:
    In eine Textdatei schreibe ich Zeilen wie
    Code:
    K1001 & vbTab & BlaBla
    .

    Funktioniert auch. Ich brauche nur analog etwas um diese Datei wieder zu lesen und ich bin nur an dem Kram hinter dem Tab interessiert (also BlaBla). Ich hab es schon mit split versucht nach diversen Anleitungen z.B. https://msdn.microsoft.com/de-de/lib...=VS.90%29.aspx

    Ich bekomm es einfach nicht hin, z.B. kommt ein Fehler mit dem Array:
    Fehler 'Subscript out of range: 'TestArray" in Skript <Test> in Zeile 3
    was bei mir folgendes ist
    Code:
    dim Teststring, Testarray(), test
    Teststring = "Look at these!"
    TestArray() = Split(Teststring)
    test = TestArray(2)

    Was mich in den Wahnsinn treibt, ist, dass normale VB Anleitungen oft für die Tonne sind, weil WinCC irgendne komische Variante von VB hat, wo man nichts zu findet.
    Zitieren Zitieren WinCC (Tia) VB Skript zum String trennen  

  2. #2
    Registriert seit
    19.06.2015
    Beiträge
    459
    Danke
    26
    Erhielt 40 Danke für 35 Beiträge

    Standard

    1.)Musst du nicht erst mal alle Leerzeichen entfernen?-->TRim$(String)
    2.)Split(s,"&")-->müsste dann in einem Array die 3 "Teilstrings ablegen"
    3.)Wenn das & noch drinnen ist mit einem "" Replace(s,&,"") ersetzen.

    Musst du bei dem array nicht eine größe angeben?Ist die Anzahl der & immer gleich.Ist das das einzige Trennzeichen?
    Greifst du immer auf alle zu oder das letzte? ich kann hier noch kein System erkennen.

    Ist das VBA oder VBS?

  3. #3
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.710
    Danke
    398
    Erhielt 2.397 Danke für 1.997 Beiträge

    Standard

    @silverfreaky:
    Der Split-Delimiter ist nicht das "&" sondern das vbTab.
    Ansonsten stimmt es aber. Wenn Split funktionieren soll dann muss es natürlich den Quellstring haben UND den Delimiter (also das Trennzeichen). Wie sollte Split sonst den String auftrennen ?
    Der Code müßte also richtigerweise sein :
    Code:
    Dim StringListe
    
    StringListe = Split(Quellstring , vbTab)
    Nun steht in StringListe(0) der vordere Teil und in StringListe(1) der hintere Teil - also das "BlaBla".

    Gruß
    Larry

  4. Folgender Benutzer sagt Danke zu Larry Laffer für den nützlichen Beitrag:

    Lucius2 (24.07.2015)

  5. #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

    Achtung: Auf das zweite Array-Element mit dem BlaBla darf man nur zugreifen, wenn ein Trennzeichen enthalten war. Wenn nicht, dann gibt es das Array-Element(1) gar nicht.
    Code:
    TestArray = Split(Teststring, vbTab)
    If UBound(TestArray) <> 0 Then 'vbTab war mindestens 1x enthalten
      BlaBla = Trim(TestArray(1))
      '...
    End If
    Harald
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  6. #5
    Lucius2 ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    23.07.2015
    Beiträge
    2
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von Larry Laffer Beitrag anzeigen
    @silverfreaky:
    Der Split-Delimiter ist nicht das "&" sondern das vbTab.
    Ansonsten stimmt es aber. Wenn Split funktionieren soll dann muss es natürlich den Quellstring haben UND den Delimiter (also das Trennzeichen). Wie sollte Split sonst den String auftrennen ?
    Der Code müßte also richtigerweise sein :
    Code:
    Dim StringListe
    
    StringListe = Split(Quellstring , vbTab)
    Nun steht in StringListe(0) der vordere Teil und in StringListe(1) der hintere Teil - also das "BlaBla".

    Gruß
    Larry
    OK danke das hat so funktioniert, ich hab mit den Array Definitionen was falsch gemacht

Ähnliche Themen

  1. Antworten: 2
    Letzter Beitrag: 12.03.2015, 22:14
  2. Antworten: 3
    Letzter Beitrag: 12.11.2014, 06:14
  3. Antworten: 13
    Letzter Beitrag: 29.04.2014, 07:00
  4. Antworten: 16
    Letzter Beitrag: 27.01.2014, 19:27
  5. Antworten: 4
    Letzter Beitrag: 14.11.2012, 18:43

Stichworte

Lesezeichen

Berechtigungen

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