Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1520to1524
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Textdatei als Endlosschleife einlesen

Textdatei als Endlosschleife einlesen
10.11.2016 08:05:47
Rainer
Hallo!
Ich habe eine Idee, aber leider keine fast Ahnung von VBA.
Ich habe eine Messsoftware, welche mir eine Textdatei mit einem optischen Spectrum speichert, ca. alle 2 Sekunden wird die Datei mit neuen Werten überschrieben.
In Excel habe ich ein Template, wo ich die Datei einlesen kann.
Dann muss man über Text in Spalten (kommasepariert) die Daten umwandeln.
Danach berechnet Excel aus dem Spektrum (Spalte A = Wellenlänge; Spalte B = Reflection) über eine Reihe von Formeln die Farbwerte nach CIELAB.
Das klappt auch alles ganz wunderbar. Nur leider muss man den Dateiimport immer händisch durchführen.
Die Frage wäre nun also, wie kann man es automatisieren?
1. Prüfen ob Quelldatei ein neues Änderungsdatum + Zeit hat. (Oder mit fest definiertem Zeitinterval alle 5 Sekunden neu einlesen?)
2. Textdatei öffnen und Daten mit "Text in Spalten" umwandeln.
3. Daten in die Berechnungstabelle kopieren.
4. Das Resultat der Berechnung (3 Werte) zusammen mit dem Zeitstempel in einer dritten Tabelle abspeichern (ein Wertepaar pro Zeile).
Die Tabelle hat dann also 3 Sheets: 1. Import, 2. Berechnung, 3. Export
Vielen Dank und viele Grüße!
Rainer

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Textdatei als Endlosschleife einlesen
10.11.2016 09:56:22
Fennek
Hallo,
ich halte es für möglich, die genannten Aufgaben mit vba zu lösen.
In VBA gibt es die Möglichkeit mit "Application.OnTime", dass ein Makro sich nach einer definierten Zeit selbst aufruft und damit alle 1-2 Sekunden prüft, ob eine neue Version vorliegt.
Für ein Forum erscheint es mir relativ kompliziert, da man für eine gute Unterstützung ein Test-Scenario aufbauen müßte.
mfg
AW: Textdatei als Endlosschleife einlesen
10.11.2016 17:44:58
Michael
Hi,
das mit Excel-FORMELn zu machen, kostet Rechenzeit und kommt mir etwas umständlich vor.
Ich würde die Textdatei direkt mit VBA in ein Array einlesen, durchrechnen und nur die paar Ergebnisse in "Export" schreiben.
Die Berechnung scheint ja keine Hexerei zu sein; nach dem, was ich auf die Schnelle gefunden habe, ist das nur ein MMULT, das läßt sich in VBA abbilden.
Lade uns doch mal so eine Textdatei und Deine vorhandene Datei (damit wir die Formeln sehen) hoch, vielleicht zusammen als ZIP, dann läßt sich das evtl. einbauen.
Mich würde eher das Zerpflücken der Textdatei interessieren; vielleicht kümmert sich Fenneck um die Zeitsteuerung.
Schöne Grüße,
Michael
Anzeige
AW: Textdatei als Endlosschleife einlesen
15.11.2016 03:15:15
Rainer
Hallo Fennek, hallo Michael,
ich habe eine Beispieldatei hochgeladen.
https://www.herber.de/bbs/user/109418.xlsx
Ich muss das Anliegen etwas präzisieren, es gibt 3 Spektren, welche simultan neu gemessen werden.
Außerdem war die Motivation für Excel, dass man die Berechnungen leicht editieren kann im jeweiligen Berechnungsblatt (so bilde ich es mir ein), z.B. in Zukunft Schichtdicken, andere Wichtungsfunktionen oder was auch immer. Es steht ja immer das Import Spektrum zur Verfügung. Also bevorzugt wäre eine Lösung, welche die Berechnungen ohne VBA macht und nur IMPORT und EXPORT automatisiert.
In der Datei haben wir nun 2 Beispiele, es werden CIE Farben (L,a*,b*,X,Y,Z) berechnet und in einem weiteren Tabellenblatt Reflectionswerte (3 mal mit verschiedenen Wichtungsfunktionen). Im Sheet Export habe ich die gesuchten Werte nun als Verknüpfung (Platzhalter) einggetragen. Dort wäre dann für jeden neuen Import eine neue Zeile zu schreiben.
Zur Zeit habe ich ein MATLAB basiertes Program, welches seinen Zweck gut erfüllt. Nur leider ist es mit großem Aufwand verbunden, da Änderungen:
- erst in MATLAB Code programiert werden müssen
- immer neu kompiliert werden müssen
- auf dem Messcomputer auch keine MATLAB Runtime installiert werden kann, so dass man die Daten immer über Netzwerk stibitzen muss
Vielen Dank für eure Hilfe,
Rainer
Anzeige
AW: Textdatei als Endlosschleife einlesen
15.11.2016 03:21:33
Rainer
Ich habe natürlich vergessen, die Datei zum Importieren hochzuladen...
https://www.herber.de/bbs/user/109419.txt
Der richtige Dateiname ist "x.csv".
AW: Zurück zu Start
15.11.2016 16:00:33
Fennek
Hallo Rainer,
nachdem ich mir noch einmal die xlsx und x.csv Datei angesehen habe, vermute ich, dasses relativ einfach mit VBA automatisiert werden kann.
Es gibt aber noch viele Vertständnisproblemen: Im sheets("Import") werden 3 x.csv Dateien eingelesen: Measure Point 0,1,2. Müssen diese Dateien wirklich alle 2 Sekunden gelesen werden, oder werden die Daten während des Messprozesses alle 2 Sekunden ANGEFÜGT wie in der beigefügten x.csv?
Vorschlag: Die verschiedenen Aufgaben werden getrennt, da dieser Beitrag in kürze nicht mehr editierbar ist, lege einen neuen Beitrag an, der NUR den Import lösen soll.
mfg
Anzeige
ja, wahrscheinlich
16.11.2016 17:31:23
Michael
Hi zusammen,
ich interpretiere das anders als Fenneck: ist es so, daß immer ALLE Werte in der .csv vorhanden sind, also von 305 bis 1700?
Wegen der Auswertung von 3 Punkten ergibt sich zunächst die logische Frage, wann welche Datei eingelesen wird bzw. ob man beim Einlesen warten soll, bis alle 3 Dateien aktualisiert wurden?
Das Einlesen würde ich, wie gesagt, "händisch" machen, ohne die Excel-Funktionen wie "Text in Spalten", und zwar deshalb, weil mir aufgefallen ist, daß in den Kalkulationsblättern nur Nummern in 5er- bzw. 10er Schritten vorhanden sind: wozu ALLE importieren, wenn ich nur jede 5. benötige?
Ist es so, daß in Kalkulationsblättern alle Angaben bereits fix vorhanden sind (incl. der Nummern) und NUR die Werte (was bisher mit Index verformelt wurde) übernommen werden sollen?
Also im Blatt CALC_Reflectance die Spalten B,C und H,I und N,O immer unverändert sind (5er)?
Und in CALC_CIE_colour alles außer J (das hast Du ja gelb markiert)? Sind hier insbesondere IMMER nur die Werte von 700 bis 400 in 10er-Schritten gefragt?
Insbesondere hier läßt sich auch ein Teil der Berechnung einsparen (vorausgesetzt, die Werte ändern sich "fast nie"): wozu in N2:N16 (und analog in den anderen Bereichen nebendran und unten) überhaupt RECHNEN (=D2*H2*J2), wenn D2=0? Schreibe in N2:N16 gleich 0er rein!
Ansonsten ist heute wirklich "kurz vor Schluß", so daß ich mich Fennecks Bitte anschließe: mach den Thread bitte neu auf...
Schöne Grüße,
Michael
Anzeige

302 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige