Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1888to1892
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
EKG Integer Daten in Array einlesen
25.06.2022 14:13:38
wp70
Ich habe aus einem EKG-Langzeit-Rekorder (Wellue ER1) Integer Rohaten in einer Datei (bis zu 10.800.000 EinzeWerte), die ich direkt in ein 1-Dimensionales Array laden möchte.
Anschließend suche ich, mit einer getesteten Routine die Zeitpunkte der Pulsspitzen (QRS Bzw. R-Zeitpunkte), die in eine Excel-Spalte geschrieben werden.
Begründung: In den normalen EKG Plots wird nur der Verlauf über der Zeit angezeigt und insbesondere bei Herzrhythmus-Störungen gibt es viele Informationen, die aus den Zeitpunken des R-Pulses bestimmt und visualisiert werden können z.B. Pulsfrequenz f(t; max 24 h), StandardAbweichung über RR-Intervalle von 0.25-0.5-1.0-2.0...h, Varianz aufeinder folgender RR-Intervalle usw.
In ein Tabellenblatt passt die Datenmenge nur, wenn pro Zeile 7500 Werte geschrieben werden, dann sind es maximal bzw. bis zu 1440 Zeilen. Und es dauert ewig.
Ich hoffe, das wir gemeinsam eine Löung finden.

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: EKG Integer Daten in Array einlesen
25.06.2022 14:21:46
snb
Beispieldatei hochladen ?
AW: EKG Integer Daten in Array einlesen
25.06.2022 16:14:03
wp70
Die Daten habe ich bisher mit folgendem Macro eingelesen.
ff = FreeFile
Open "C:\EKG\211149246320220609165205" For Binary Access Read As ff
Do While Not EOF(ff)
intRow = intRow + 1
For intCol = 1 To 7500
Get #ff, , mVal
Cells(intRow, intCol) = mVal ' m<Val = mVal / 400 wandelt in mV
Next
Loop
Close ff
Die Datenmenge bekomme ich nur im Arbeitsblatt gespeichereib, aber , wenn ich je 7500 Werte in 1 Zeile schreibe,aber für Auswertung muss ich die Daten seriell untersuchen.
AW: EKG Integer Daten in Array einlesen
25.06.2022 16:51:50
wp70
Mit dem o.g. VBA brauche ich ca. 0,5s pro Zeile, also für eine große Datei bis zu 13 min.
Hier habe ich eine kleine DAtei ausgesucht:
https://www.herber.de/bbs/user/153759.zip
Anzeige
AW: EKG Integer Daten in Array einlesen
25.06.2022 17:34:42
Oberschlumpf
bei mir reagiert dein Makro mit Fehler
Userbild
und ich nutze auch Office 2016
AW: EKG Integer Daten in Array einlesen
25.06.2022 17:58:06
onur
Sind das alles ein-Byte-Daten?
AW: EKG Integer Daten in Array einlesen
25.06.2022 18:01:44
onur
Wenn das ein-Byte-Daten sind, braucht mein Makro nur 0,47 sec, um alles in ein Array zu schreiben:

Private Sub CommandButton1_Click()
Dim ff, mVal As Byte, intCellRow%, data(10800000) As Byte, i As Long
Dim ti
ti = Timer
ff = FreeFile
intCellRow = 0
Open "C:\EKG\211149246320220612023956" For Binary Access Read As ff
Do While Not EOF(ff)
Get ff, , mVal
data(i) = mVal
i = i + 1
Loop
Close ff
MsgBox Timer - ti & " sec."
End Sub

Anzeige
AW: EKG Integer Daten in Array einlesen
25.06.2022 21:10:41
wp70
Danke für die schnelle Hilfe.
Es handelt sich um Integer (2 Byte) Daten und für einen großen EKG-Datensatz über 15 Stunden und 8 Minuten brauche ich mit dem an Integer angepassten Code eine EinleseZeit von ca. 21 Sekunden, also ca. 0,023 s pro Minute. Damit bin ich 17x schneller als mit meiner alten Lösung.
Hier der Code für die EKG Daten

Private Sub Read_Array()
Dim ff, mVal As Integer, intCellRow%, data(108000000) As Integer, i As Long
Dim ti
ti = Timer
ff = FreeFile
intCellRow = 0
Open "C:\EKG\211149246320220609165205" For Binary Access Read As ff
Do While Not EOF(ff)
Get ff, , mVal
data(i) = mVal
i = i + 1
Loop
Close ff
MsgBox Timer - ti & " sec."
MsgBox i & "Anzahl der Werte"
End Sub

Anzeige
Gerne !
25.06.2022 21:43:23
onur
intCellRow = 0
kann übrigens weg.

228 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige