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

Seite 2 von 3 ErsteErste 123 LetzteLetzte
Ergebnis 11 bis 20 von 24

Thema: Spalte einer csv datei lesen

  1. #11
    kuti ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    29.05.2013
    Beiträge
    353
    Danke
    74
    Erhielt 3 Danke für 3 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    sorry einen moment bitte

  2. #12
    kuti ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    29.05.2013
    Beiträge
    353
    Danke
    74
    Erhielt 3 Danke für 3 Beiträge

    Standard

    Es geht doch. Vielen DANK:

  3. #13
    Registriert seit
    06.10.2004
    Ort
    Kopenhagen.
    Beiträge
    4.639
    Danke
    377
    Erhielt 803 Danke für 644 Beiträge

    Standard

    OK.

    Aber pass auf das die eingelesene Werte plausibel sind.
    Du kannst die Werte nach grenzen checken, und du kanst mit IsNumeric checken ob den Wert als ein Zahl interpretiert werden kann.
    Und auch ON ERROR RESUME verwenden !
    Jesper M. Pedersen

  4. #14
    kuti ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    29.05.2013
    Beiträge
    353
    Danke
    74
    Erhielt 3 Danke für 3 Beiträge

    Standard

    ON ERROR RESUME nutze ich. Aber wirklich nicht schlecht dein code. Sowas habe ich gesucht. Ich glaube ich muss noch viel lernen Danke noch mal.

  5. #15
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.302
    Danke
    932
    Erhielt 3.321 Danke für 2.683 Beiträge

    Standard

    Schreibe Dir eine gesonderte Sub oder Function, die das Zerlegen in "Spalten" (Werte-Array) macht und rufe die für jede gewünschte Zeile auf. Wenn Deine SmartTags ein Array wären, dann könntest Du sehr gut eine Schleife verwenden.

    Wenn Du nach der 4. Zeile die 5. Zeile lesen willst, dann brauchst Du kein erneutes While..SkipLine.., ein einfaches ReadLine reicht. Die nächste Zeile nach der 4. Zeile ist die 5. Zeile.

    Vorsicht: Wenn Du Runtime-Errors vermeiden willst, dann prüfe vor dem Split ob Deine line überhaupt Zeichen enthält. Und nach dem Split findest Du die erste "Spalte" in linearray(0). Wenn UBound(linearray) = 0 ist, dann enthält Deine Zeile das angegebene Trennzeichen gar nicht (Formatfehler!), die csv-Datei wurde womöglich auf einem Computer mit falschen Regionaleinstellungen erzeugt. Außerdem solltest Du nach dem Split() auch noch mit Trim() mögliche Leerzeichen entfernen. Schau Dir nochmal genau das oben verlinkte Trim-Beispiel und die VBS-Hilfe an.

    Wo kommt Deine csv-Datei her? Wird die maschinell erzeugt oder von Menschen?

    Was ist an Deiner Anwendung so ungewöhnlich, daß Du dafür keine vorgefertigten Sachen nutzen kannst?

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

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  6. #16
    kuti ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    29.05.2013
    Beiträge
    353
    Danke
    74
    Erhielt 3 Danke für 3 Beiträge

    Standard

    Harald, Jesper war so freundlich mir eine schöne Lösung zu geben. Da ist der Smarttags ein Array. Klappt auch wunderbar.
    Die csv ist von Menschen gemacht.
    Wie man eine ließt, war mir bekannt und dann wollte ich eine Spalte lesen, genau nach diesem Prinzip. Es gibt doch ein "column" und da dachte ich, ich kann es damit lösen. Den Link, den du mir zu Beginn gegeben hast, damit konnte ich leider nicht bedient werden, weil ich überhaupt nichts verstanden habe. Auch ist die VBS-Hilfe keine Hilfe.
    Ach, wo gibt es denn die vorgefertigten Sachen ?

  7. #17
    Registriert seit
    06.10.2004
    Ort
    Kopenhagen.
    Beiträge
    4.639
    Danke
    377
    Erhielt 803 Danke für 644 Beiträge

    Standard

    Zitat Zitat von kuti Beitrag anzeigen
    Die csv ist von Menschen gemacht.
    Menchen = Fehlerquelle nr 1.

    Zitat Zitat von kuti Beitrag anzeigen
    Ach, wo gibt es denn die vorgefertigten Sachen ?
    Die Rezepte. Damit kann man auch die Daten in CSV Dateien speichern und wieder einlesen.
    Jesper M. Pedersen

  8. #18
    kuti ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    29.05.2013
    Beiträge
    353
    Danke
    74
    Erhielt 3 Danke für 3 Beiträge

    Standard

    Entschuldige, aber was meinst du mit Rezepte? Etwa Rezepturen?

  9. #19
    Registriert seit
    06.10.2004
    Ort
    Kopenhagen.
    Beiträge
    4.639
    Danke
    377
    Erhielt 803 Danke für 644 Beiträge

    Standard

    Ja. Rezepturen.
    Jesper M. Pedersen

  10. #20
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.302
    Danke
    932
    Erhielt 3.321 Danke für 2.683 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Nochmal Vorsicht: Die "schöne Lösung" von Jesper ist nur eine Beispiel-Lösung, auf das wesentliche beschränkt. Die klappt nur zufällig "wunderbar" mit Deiner Testdatei. Die Lösung kannst du aber so nicht für eine industrielle Anwendung verwenden. Laß Deine Menschen eine Leerzeile in die CSV-Datei machen und das Skript crasht. Fehler von Menschen können sooo vielfältig sein...

    Für VBS haben Texdateien keine "Spalten", bzw. jedes Textzeichen ist eine Spalte. Die "column"-Eigenschaft gibt an, am wievielten Textzeichen in einer Zeile der Lesezeiger (oder Schreibzeiger) gerade steht.
    Wenn man VBS programmiert, dann sollte man mit der VBS-Hilfe umgehen und verstehen können.


    Es gibt vorgefertigte Sachen, z.B. Rezepturen, worauf auch Jesper Dich bereits hingewiesen hat. Vielleicht kann man Deine Aufgabenstellung so umformen, daß Rezepturen nutzbar sind? Doch wir wissen ja gar nicht was Du da tust oder tun willst.

    Entschuldige, doch ich muß Dir leider auch noch auf die Füße treten: Wenn ich mir auch Deine anderen Threads und Fragen anschaue, dann kann ich mir nur sehr schwer vorstellen, daß Du mit Deiner "Do-it-yourself"-"trial-and-error"-Programmierung eine robuste industrietaugliche Lösung für Deine Aufgabe hinbekommst. Ich möchte für Deine Anlage nicht Gewährleistung geben müssen...

    Nun sag uns zur Beruhigung, daß Du nur die Lichter in Deinem Heim steuern willst...

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

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

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

    kuti (05.03.2014)

Ähnliche Themen

  1. TwinCAT FTP-Client ErrId 6 /Upload einer CSV Datei
    Von Hans_J im Forum CODESYS und IEC61131
    Antworten: 2
    Letzter Beitrag: 05.03.2014, 15:03
  2. Antworten: 3
    Letzter Beitrag: 29.11.2013, 13:53
  3. CSV Datei mit einer Wago Sps erstellen
    Von Newbie88 im Forum Sonstige Steuerungen
    Antworten: 14
    Letzter Beitrag: 03.11.2012, 23:09
  4. Antworten: 6
    Letzter Beitrag: 05.01.2009, 11:09
  5. Antworten: 10
    Letzter Beitrag: 18.10.2007, 19:54

Lesezeichen

Berechtigungen

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