DIAdem

cancel
Showing results for 
Search instead for 
Did you mean: 

Opening and completing operations on multiple files of the same type

Hi All

 

I wonder if anyone could help me with something I am struggling with? It is something very useful for me that I can complete successfully in CATMAN by HBM but I want / need to do it in DIADEM aswell. I want to be able to use a for loop to do the following with files named Cycle1.csv, Cycle 2,csv, Cycle3.csv etc:-

 

-Load file cycle1.csv

-Complete a series of operations on channels within file, the results of which are saved in a new group.

-Delete cycle1.csv from data portal

-Load file cycle2.csv

-Complete a series of operations on channels within file, the results of which are saved in new group with cycle1.csv results

-Delete cycle2.csv from data portal

-Load file cycle3.csv

-Complete a series of operations on channels within file, the results of which are saved in new group with cycle1.csv and cycle2.csv results

-Delete cycle3.csv from data portal

etc.

 

I found the following at this location which I tried to adapt but had no success - http://zone.ni.com/reference/en-XX/help/370858M-01/procscript/procscript/procscript_serial_evaluatio...

 

Option Explicit
Dim i
If FileDlgShow(DataReadPath,"TDM Files,*.tdm","DataSelection",True) = "IDOk" Then
  For i = 0 to UBound(FileDlgNameList) 
    Call Data.Root.Clear()
    Call DataFileLoad(FileDlgNameList(i),"TDM","Load")
    Call ChnSmooth("[1]/[2]","/Smoothed",12,"maxNumber")
    Call DataFileSave("Serie_"&str(i),"TDM")
  Next
End If

Any help would be much apprecieated.

 

Many thanks

 

Lloyd James

Delphi Technologies

 

 

 

 

 

0 Kudos
Message 1 of 3
(2,452 Views)

This code can be a starting point for you:

Option Explicit  'Forces the explicit declaration of all the variables in a script.

' Folder with cycles
DIM CYCLES_FOLDER: CYCLES_FOLDER = "C:\Users\111660\Desktop\Example Folder\"

' Prepare variables
Call Data.Root.Clear()
Call Data.Root.ChannelGroups.Add("Result Group")
Dim loadedElements, element
Dim i: i = 1
Dim cycleFile: cycleFile = CYCLES_FOLDER & "Cycle" & i & ".csv"

' Loop over files
Do While FileExist(cycleFile) ' This loop will not execute if "cycleX.csv" doesnt exist
  
  ' Load a cycle
   Set loadedElements = DataFileLoad(CYCLES_FOLDER & "Cycle1.csv","")
  
  ' Do stuff and put in the "Resuilts Group"
  
  ' Delete the loaded groups
  For Each element In  loadedElements
    Call Data.Root.ChannelGroups.Remove(element.Name)
  Next
  
  ' Update cycle counter and set up the new file name
  i = i + 1
  cycleFile = CYCLES_FOLDER & "Cycle" & i & ".csv"
  
Loop

I tried to comment but et me know if any part needs explanation.

0 Kudos
Message 2 of 3
(2,433 Views)

Hi gsklyr

 

Many thanks for such a quick reply on this, I will have a look and let you know how I get on.

 

Best regards

 

Lloyd James

0 Kudos
Message 3 of 3
(2,400 Views)