Querschnittsanalyse mehrerer Signalreihen

SupportCommunity FPScript Querschnittsanalyse mehrerer Signalreihen

Ansicht von 5 Beiträgen - 1 bis 5 (von insgesamt 5)
  • Autor
    Beiträge
  • #8448
    Ulf LichteUlf Lichte
    Mitglied

    Auf meiner bisherigen Suche habe ich zu folgender Problemstellung noch keine Lösung gefunden:

    Innerhalb eines Ordners befinden sich eine Vielzahl von Signalreihen, alle selbst in einem eigenen Unterordner. Die Namen der Unterordner sind nicht fortlaufend nummeriert sondern ergeben sich aus einer festgelegten Nomenklatur der Versuche. Die Signalreihen selbst haben den simplen Namen ‘Datensatz’.

    Aufgabe: Ich benötige ein FPscript, welches mir z.B. eine Liste/einen Datensatz mit dem Maximalwerten der Signale liefert. Hierzu müsste ich eine Schleife über alle vorhandenen Unterordner durchführen. Den Maximalwert jeder einzelnen Signalreihe könnte man ja über eine Formel ermitteln, die in jeden Unterordner abgespeichert wird. Wie aber fasse ich die Ergebnisse aller Unterordner in einem Datensatz zusammen?

    #12789
    Ulf LichteUlf Lichte
    Mitglied

    Auf meiner bisherigen Suche habe ich zu folgender Problemstellung noch keine Lösung gefunden:

    Innerhalb eines Ordners befinden sich eine Vielzahl von Signalreihen, alle selbst in einem eigenen Unterordner. Die Namen der Unterordner sind nicht fortlaufend nummeriert sondern ergeben sich aus einer festgelegten Nomenklatur der Versuche. Die Signalreihen selbst haben den simplen Namen ‘Datensatz’.

    Aufgabe: Ich benötige ein FPscript, welches mir z.B. eine Liste/einen Datensatz mit dem Maximalwerten der Signale liefert. Hierzu müsste ich eine Schleife über alle vorhandenen Unterordner durchführen. Den Maximalwert jeder einzelnen Signalreihe könnte man ja über eine Formel ermitteln, die in jeden Unterordner abgespeichert wird. Wie aber fasse ich die Ergebnisse aller Unterordner in einem Datensatz zusammen?

    #9254
    Bernhard KantzBernhard Kantz
    Moderator

    Antwort von Herrn Lichte:

    Das von mir beschriebene Problem habe ich gelöst und möchte es nachfolgend dem interessierten Leser in Form eines allgemein gehaltenen Beispiel-Skripts mitteilen. Das Skript erstellt aus allen Datensätzen mit Namen ‘Datensatz’ eine Liste mit Ordnername, Maximalwerten und Minimalwerten. Dieses Grundmuster kann nun nach Bedarf angepasst werden.

    
    Dim List
    Dim Path
    Dim DataSet
    
    Dim Result1
    Dim Result2
    
    Dim RetVal
    
    List =.\.Objects({ ".*\.fld"}).Names
    Path = .\.FullName : "\\\\"
    
    For Each Row i in List Do
    	DataSet=$Path : List : "\\Datensatz.dat"$
    	Result1 = Result1 : GlobalMaximum(DataSet[1], EVENT_EXTRACT)
    	Result2 = Result2 : GlobalMinimum(DataSet[1], EVENT_EXTRACT)
    	List=StringReplace(List, ".FLD", "")
    End
    
    RetVal=[ List, Result1, Result2]
    

    Gruß U. Lichte

    #9356
    Diana KettnerDiana Kettner
    Mitglied

    Lieber Support,
    da ist noch ein Fehler im Beispiel-Skript:

    Der Backslash muss in zusammengefügten Strings doch immer doppelt sein.
    In der Zeile Path meckert der Editor sogar über Syntaxfehler.

    Aber ich sehe gerade bei der Vorschau meiner Antwort hier:
    es gibt hier wohl einen Bug in der Code-Umgebung.

    Das doppelte “\\” wird nicht übernommen und als “\” angezeigt und das
    “\\Datensatz.dat” als “\Datensatz.dat” angezeigt.

    Path = .\.FullName : "\\" //hinter dem : stehen eigentlich 2 Backslashs 

    Das sollte vielleicht behoben werden!

    #9357
    Bernhard KantzBernhard Kantz
    Moderator

    Vielen Dank für Ihren Hinweis, der Code wurde entsprechend korrigiert. Der Syntaxfehler rührt übrigens von einer nicht abgeschlossenen Zeichenkette her; durch den einfachen Backslash vor dem ‘schließenden’ Anführungszeichen wird dieses als Teil des Strings und nicht als dessen Ende interpretiert.
    Leider liegt die Programmierung des Forums selbst nicht in unserer Hand. Wir werden dieses Problem entsprechend weiterleiten.

Ansicht von 5 Beiträgen - 1 bis 5 (von insgesamt 5)
  • Du musst angemeldet sein, um auf dieses Thema antworten zu können.