01-25-2022 07:29 AM - edited 01-25-2022 07:34 AM
Hallo Community!
Folgende Lage:
Ich habe eine Ordnerstruktur mit Geräte-TDM-Files. Jedes neu getestete Gerät speichert eine neue TDM-File in diesem Ordner ab.
Ziel ist es, aus diesen gesammelten Werten der verschiedenen Geräte einen Mittelwert darzustellen. (Also von allen Geräten über einen Zeitraum)
Für die Darstellung benötige ich nicht alle Kanäle. Ich "ziehe" mir also nur welche ich dafür brauche.
Den einfachen Weg dafür habe ich soweit auch schon programmiert.
Daten mit DataFileLoadSel ausgewählt, Berechnungen und Report erstellt.
Problem:
Neu getestete Geräte mit neuen TDM-Files in der Ordnerstruktur muss ich im Script neu hinzufügen. (Datenauswahl, Berechnung, etc)
Gibt es eine Lösung, dass neue TDM erkannt werden, bzw. einfach alle TDM in einem Ordner berücksichtigt werden und ins Datenportal geladen werden? Also eine automatische Aktualisierung?
Ich habe es schon mit Platzhaltern (*) etc. versucht. Nur kann dann nie die Datei gefunden werden.
Anschließend muss ich natürlich auch die Berechnungen in Schleifen verpacken, nur komme ich nicht soweit, weil ich bisher alles einzeln eingefügt habe. Da waren dann keine Schleifen nötig.
Im Anhang ist ein Screenshot meiner Dateiauswahl, wie sie jetzt funktioniert.
Beispiel: Würde ich nun TestStack4 abspeichern, dann müsste ich in Zeile 24 "Call DataFileLoadSel...." einfügen. Das möchte ich mir eben gerne ersparen. Auch danach die Anpassung der Rechnungen.
Edit: Alternativ habe ich schon überlegt einfach einen Dialog anzulegen und mit diesem einfach Daten auszuwählen und demensprechend nach dieser Auswahl die Daten auf das wesentliche zu reduzieren und die Berechnungen dafür anpassen. Vielleicht die "einfachere / bessere" Lösung?
Ich Danke für kommendes Feedback 🙂
01-26-2022 03:26 AM
An easy way to loop is just using file system object
Option Explicit
dim folderPath : folderPath = "C:\Users\Public\Documents\National Instruments\DIAdem 2021\Data\"
data.Root.Clear
dim fso : set fso = CreateObject("Scripting.FileSystemObject")
dim folderO : set folderO = fso.GetFolder(folderPath)
dim files : set files = folderO.Files
dim fileO : for each fileO in files
if 0 = strcomp("tdm", fso.GetExtensionName(fileO.name), vbtextcompare) then
call DataFileLoadSel(fileO.Path, "TDM", "[1]/[1]", "LoadOnWriteAccess")
end if
Next
01-28-2022 01:16 AM
Hello AndreasK!
As you can see, my level of experience is still very low.
Thanks for the help. It works.
🙂