Ausgewählte Werte einer .SPF Datei per VBA in excel geziehlt einfügen
Hallo liebe Admingemeinde!
Ich mache gerade ein Praktikum und versuche seit Tagen folgendes umzusetzen: Ich habe eine reihe .SPF datei (Bild) in der Pararmeter für eine Härteanlage stehen. Ziel ist es wie im Beispiel die .SPF dateien zu durchsuchen und ausgewählte Werte in eine Exceltabelle zu schreiben, die dann miteinander verglichen werden konnen.
Die .SPF fangen alle mit CYC1_*.SPF an. Die Werte die mich interessieren, stehen zwischen "=" und ";" .
Pro Datei soll quasi eine Zeile erzeugt werden die wie folgt ausschaut:
CYC1_683849 30.06.2017 22.5 71.0 550 80 8.0 5.0 28 0 3.0 1.5 5.0 ........ (siehe Bild)
Ich bin ein blutiger Anfänger und mache langsam Fortschritte, einlesen der gesamten dateinen untereinander klappt schon... aber die Woche neigt sich dem Ende und ich würde gern übers Wochenende auf den richtigen weg kommen. Für eure Unterstützung wäre ich euch sehr dankbar!!!
Grüße Andreas
Ich mache gerade ein Praktikum und versuche seit Tagen folgendes umzusetzen: Ich habe eine reihe .SPF datei (Bild) in der Pararmeter für eine Härteanlage stehen. Ziel ist es wie im Beispiel die .SPF dateien zu durchsuchen und ausgewählte Werte in eine Exceltabelle zu schreiben, die dann miteinander verglichen werden konnen.
Die .SPF fangen alle mit CYC1_*.SPF an. Die Werte die mich interessieren, stehen zwischen "=" und ";" .
Pro Datei soll quasi eine Zeile erzeugt werden die wie folgt ausschaut:
CYC1_683849 30.06.2017 22.5 71.0 550 80 8.0 5.0 28 0 3.0 1.5 5.0 ........ (siehe Bild)
Ich bin ein blutiger Anfänger und mache langsam Fortschritte, einlesen der gesamten dateinen untereinander klappt schon... aber die Woche neigt sich dem Ende und ich würde gern übers Wochenende auf den richtigen weg kommen. Für eure Unterstützung wäre ich euch sehr dankbar!!!
Grüße Andreas
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 354425
Url: https://administrator.de/forum/ausgewaehlte-werte-einer-spf-datei-per-vba-in-excel-geziehlt-einfuegen-354425.html
Ausgedruckt am: 22.04.2025 um 03:04 Uhr
2 Kommentare
Neuester Kommentar
Hi,
es wäre hilfreich für uns, wenn sehen könnten, was Du bereits an Code beisammen hast.
Schau Dir mal die Function Split an.
1. Zeile nach ";" splitten. Linker Teil ist interessant, also Element 0 des Array.
2. Linken Teil aus 1. nach " " (Leerzeichen) splitten. Rechter Teil ist interessant, also Element 1 dieses Array
3. Rechten Teil aus 2. nach "=" splitten. Linker Teil (Element 0) ist der Spaltenkopf, rechter Teil (Elemnet 1) der Wert. Im rechten Teil solltest Du noch "." durch "," ersetzen.
Wenn Du das hast, dann sehen wir weiter, wie Du das in die Tabelle bekommst.
E.
Edit:
Ich seh gerade, dass da vor dem "=" auch ein Leerzeichen sein kann. Also solltest Du vorher "] =" durch "]=" ersetzen.
es wäre hilfreich für uns, wenn sehen könnten, was Du bereits an Code beisammen hast.
Schau Dir mal die Function Split an.
1. Zeile nach ";" splitten. Linker Teil ist interessant, also Element 0 des Array.
2. Linken Teil aus 1. nach " " (Leerzeichen) splitten. Rechter Teil ist interessant, also Element 1 dieses Array
3. Rechten Teil aus 2. nach "=" splitten. Linker Teil (Element 0) ist der Spaltenkopf, rechter Teil (Elemnet 1) der Wert. Im rechten Teil solltest Du noch "." durch "," ersetzen.
Wenn Du das hast, dann sehen wir weiter, wie Du das in die Tabelle bekommst.
...
'Line sei die Variable mit der aktuellen Zeile
e() = Split(Line, ";")
Line = e(0)
e() = Split(Line, " ")
Line = e(1)
e() = Split(Line, "=")
Msgbox e(0) & vbnewline & e(1)
.....
E.
Edit:
Ich seh gerade, dass da vor dem "=" auch ein Leerzeichen sein kann. Also solltest Du vorher "] =" durch "]=" ersetzen.
...
Line = Replace(Line, "] =", "]=")
...

Machs doch schnell mit Powershell
$lines = @()
gci 'd:\ordner\*.spf' -File | %{
$data = [pscustomobject]@{}
[regex]::matches((gc $_.Fullname -raw), '(?ism)^([^=]+)=([\d\.-]+)').Captures | %{
$data | Add-Member -MemberType Noteproperty -Name $_.Groups[1].Value.Trim() -Value $_.Groups[2].Value.Trim() -Force
}
$lines += $data
}
$lines | export-csv 'd:\ordner\daten.csv' -NoType -Delimiter ";" -Encoding UTF8