DIAdem

cancel
Showing results for 
Search instead for 
Did you mean: 

Anzahl geladener Dateien / File count

Hallo,

ich habe verschiedene csv-Dateien welche ich selektiv lade.

(i have to load several csv-files)

 

Select Case left(oArray(k),4)

Case "0104", "0105", "0106"

    Call DataFileImport(T5& "\" &oArray(k),"csv")

....

Wie bekomme ich nun die Anzahl dieser geladenen Dateien?

How can i get the number of this loaded files?

 

Gruß / regards

0 Kudos
Message 1 of 6
(3,887 Views)

Einfach einen Zähler mitführen.

dim count : count = 0
Select Case left(oArray(k),4)

Case "0104", "0105", "0106"
    Call DataFileImport(T5& "\" &oArray(k),"csv")
    count = count + 1

MsgBox count

Oder spricht etwas dagegen?

0 Kudos
Message 2 of 6
(3,862 Views)

Danke, das ist klar.

Ich habe aber 30 cases und jeder muß mit count = 0 beginnen.

Könnte auch die Anz. der Dateien bestimmen und in ein Array schreiben.

Besser wäre aber eine Funktion    .count

Gruß

0 Kudos
Message 3 of 6
(3,850 Views)

Eine kleine Klasse mit einem Dictionary könnte die Lösung sein

 

Option Explicit

' our counter
dim counters : set counters = new CCounters

counters.Called("abc")
counters.Called("def")
counters.Called("abc")
counters.Called("abc")

MsgBox counters.Count("abc") & VBCRLF & counters.Count("def") & VBCRLF & counters.Count("xyz") & VBCRLF


' class to do the counts
class CCounters

  sub Called(ByVal usecaseName)
    if counters_.Exists(usecaseName) then
      counters_(usecaseName) = counters_(usecaseName) + 1
    else
      counters_.Add usecaseName, 1
    end if
  end sub
  
  function Count(ByVal usecaseName)
    Count = 0
    if counters_.Exists(usecaseName) then
      Count = counters_(usecaseName)
    end if
  end function

  Private Sub Class_Initialize()
    set counters_ = CreateObject("Scripting.Dictionary")
  end sub

  private counters_
end class
0 Kudos
Message 4 of 6
(3,844 Views)

Hallo,

 

ein Zähler zum Mitlaufen wäre denke ich auch eine gute Möglichkeit. Alternativ gibt es noch eine Gruppeneigenschaft sourceoriginalname mit der man den Dateinamen auslesen kann.

 

on error resume next
for j=1 to data.Root.ChannelGroups.Count
  call LogfileWrite("property " & i & " _ " & data.Root.ChannelGroups(j).Properties("sourceoriginalname").Name & " _ " & data.Root.ChannelGroups(j).Properties("sourceoriginalname").Value)
next
on error goto 0

Wenn man das mit dem Zähler besser umsetzen will, als in jede individuelle Laderoutine reinzugehen, sollte man auch mit dem OnLoaded Ereignis argbeiten. Dort könnte man zentral einen Zähler mitlaufen lassen, den man nur beim Start des Skriptes zurücksetzen müsste.

 

Ereignis: OnLoaded - DIAdem 2012 Hilfe - National Instruments
http://zone.ni.com/reference/de-XX/help/370858K-0113/scriptnavi/events/navigator_event_onloaded/

 

Gruß Christoph

Staff Applications Engineer
National Instruments
Certified LabVIEW Developer (CLD), Certified LabVIEW Embedded Systems Developer (CLED)


Don't forget Kudos for Good Answers, and Mark a solution if your problem is solved
0 Kudos
Message 5 of 6
(3,842 Views)

Dank für Eure Hilfe.

Werde das alles mal ausprobieren.

 

0 Kudos
Message 6 of 6
(3,822 Views)