DIAdem

cancel
Showing results for 
Search instead for 
Did you mean: 

Strategisches Programmieren

Im Serienauswertungs Script erfolgt der Zugriff auf die LST Datei völlig automatisch. Jedes Mal, wenn der Kenner UsefileList im Programm auftaucht, wird aus der Listendatei eine Zeile ausgelesen. So lange, bis alle Zeilen der Datei abgearbeitet wurden.

Natürlich handelt es sich bei der LST um eine einfache Textdatei, die auch mit jedem anderen Dateibefehl geöffnet und gelesen werden kann. Das folgende Beispiel nutzt die DIAdem Textfile Befehle um eine ASCIIdatei zu öffnen, und deren Inhalt Zeile für Zeile in die Variable files() zu übertragen. Der Dateiname ist hier in der Variable Listfile gespeichert.
file = TextFileOpen(Listfile,tfRead)
  Do While Not TextFileEOF(file)
    buffer = TextFileReadLn(file)
      line=line+1
      redim preserve files(line)
      files(line) = buffer
   Loop
  textfileclose file
Beantwortet das Ihre Frage?

Ingo Schumacher
Systems Engineering Manager CEERNational Instruments Germany
0 Kudos
Message 11 of 17
(1,650 Views)
Hi Ingo,
 
ich stelle fest,
dass die DatToTdm.lst korrekt erstellt wird,
kann öffnet werden und die im Dialog markierte MEssdateien sind zu sehen.
 
Alleidings werden selektive Kanäle nur aus einer Messdatei geladen.
 
Darum dachte ich, ich soll zeilenweise auf die DatToTdm.lst greifen um sicher zu gehen,
dass JEDE Messdateien in DatToTdm.lst geöffnet wird und  bearbeitet werden.
 
Im Anhang ein kleiner Beispiel.
Vielleicht siehst du den fehler mit deinem geübten Auge sofort.
 
Danke im Voraus,
a6a
Download All
0 Kudos
Message 12 of 17
(1,648 Views)
Verstehe ich das richtig? Wird das Script nur einmal ausgeführt?

Zum Testen könnten Sie ja das Scriptstart "Berechnung" einmal durch msgbox Datasetfilename ersetzten. Dann müsste eigentlich für Jede Datei  in der Liste eine Msgbox aufpoppen - und natürlich auch eine TDM Datei erstellt werden.

Bei der Serienauswertung mit UseFileList ist es nicht nötig, eine Schleife zu programmieren und die Listendatei manuell auszuwerten
Ingo Schumacher
Systems Engineering Manager CEERNational Instruments Germany
0 Kudos
Message 13 of 17
(1,645 Views)

Hi Ingo,

es wird nur eine Datei ausgelesen, unabhängig davon wieviele sind in DatToTdm.lst geschrieben.

Was kann ich tut, dass alle Messdateien gelesen werden, bevor die Berechnungen durchgeführt werden?

Danke für die Hilfe,

a6a

0 Kudos
Message 14 of 17
(1,631 Views)
Hi a6a,
das heisst also, des Script wird nicht automatisch wiederholt, wis alle Dateien der LST Datei bearbeitet wurden. Gleichzeitig wird die LST Dateien jedoch richtig ausgelesen - die erste Datei kann ja erfolgreich geladen und ausgeführt werden.
Irgendwo ist noch ein Fehler, ich kann ihn im Moment aber noch nicht erahnen.

Ich habe jetzt nochmal ein ganz einfaches Script generiert, welches die gleiche Architektur hat wie Ihr Programm. Sie können es ja erst einmal so testen und dann Schritt für schritt für die MDF Dateien umschreiben, nicht, dass es am Dateiimport liegt.

Das Hauptscript im Beispiel ist Run example.vbs
Ingo Schumacher
Systems Engineering Manager CEERNational Instruments Germany
0 Kudos
Message 15 of 17
(1,622 Views)

Hi Ingo,

Jetzt kann ich alle Messdateien in LST offnen und selektiv laden.

Supi!

 

Mit welcher Funktion kann ich in IstLoop die Ladeschleifen durchführen bevor der calcScript geöffnet wird und die Berechnungen durchgeführt werden?

Ich möchte gerne zuerst alle Messdateien nacheinander offen und laden und dann in den calcScript übergehen, in dem die Berechnungen vorgenommen werden.

 

Zur Zeit kann ich die erste Messdatei öffnen, laden, berechnen, dann die nächste usw.

So wird in IstLoop geladen und sofort in den calcScript übergegangen zum berechnen und dann wieder in IstLoop geladen und danach im calcScript berechnet.

 

Viele Grüße,

a6a

 

0 Kudos
Message 16 of 17
(1,614 Views)
Hi a6a,

ganz einfach: In diesem Fall müsste man den calcScript Aufruf nur unten in das run Example.vbs verfrachten. Dann wird zuerst das lst loop Script abgearbeitet (für alle Dateien) und nachdem dieser Vorgang beendet ist, die Berechnung.
Ingo Schumacher
Systems Engineering Manager CEERNational Instruments Germany
0 Kudos
Message 17 of 17
(1,597 Views)