Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Datenblatt auslesen

Forumthread: Datenblatt auslesen

Datenblatt auslesen
10.07.2018 10:55:08
Daniel
Hallo zusammen,
ich bin momentan an einem Makro, welches per pdftotxt.exe (Tool aus xpdfreader) aus einem Datenblatt (elektonische Bauelemente) eine Textdatei erstellt.
Diese möchte ich anschließend per Regex durchsuchen und die Werte in das Excel Dokument schreiben.
Mein Problem ist aber das jeder Hersteller ein anderes Format für die Darstellung seines Datenblatts verwendet.
Beispielhaft werde ich den RDSon eines FETs nehmen:
IRF:
RDS(on)&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbspStatic&nbspDrain-to-Source&nbspOn-Resistance&nbsp&nbsp&nbsp&nbsp&nbsp---&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp---&nbsp&nbsp­­­&nbsp&nbsp&nbsp&nbsp0.025&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbspVGS&nbsp=&nbsp10V,&nbspID&nbsp=&nbsp29A&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp
infineon:
Drain-source&nbspon-state&nbspresistance&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbspR&nbspDS(on)&nbsp&nbsp&nbsp&nbspV&nbspGS=4.5&nbspV,&nbspI&nbspD=0.25&nbspA&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp---&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp2.0&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp4&nbsp&nbsp&nbsp&nbsp&nbsp
vishay:
Drain-Source&nbspOn-Resistancea&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbspRDS(on)&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbspVGS&nbsp=&nbsp10&nbspV,&nbspID&nbsp=&nbsp1.5&nbspA&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp0.195&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp0.250&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp
oder
&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbspVGS&nbsp=&nbsp­10&nbspV,&nbspID&nbsp=&nbsp­3&nbspA&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp0.064&nbsp&nbsp&nbsp0.080
Drain-Source&nbspOn-Resistancea&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsprDS(on)&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbspW
&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbspVGS&nbsp=&nbsp­4.5&nbsp&nbspV,&nbspID&nbsp=&nbsp­2.5&nbspA&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp0.103&nbsp&nbsp&nbsp0.140
Auslesen möchte ich natürlich den Widerstand und zwar immer den maximalen. Außerdem VGS und ID.
Das Problem ist auch, wie beim zweiten vishay zu sehen, dass es manchmal passiert, dass die Werte in der Zeile verrutschen aufgrund der Formatirung in der PDF.
Gibt es eine elegantere Lösung als das Textdokument per regex zu durchsuchen? Ich habe zwar einen Code der halbwegs funktioniert, jedoch nicht 100% zuverlässig. Aber auch nur wenn die Wetrte in einer Zeile stehen.
Mein Code für den RDSon sieht momentan zu aus (colTFile ist mein Textdokument, welcher aus der PDF erstellt wurde):
'RDS on auslesen
regex.Pattern = "[Dd]rain.*[Oo]n.*[Rr]es.*[^\n\r]+( {2,}([\d\.]{1,}) {2,})" 'Widerstand
Set matches = regex.Execute(FSO.OpenTextFile(colTFile.Item(1)).ReadAll)
If matches.Count > 0 Then
values(8) = matches(0).submatches(1)
End If
regex.Pattern = "[Dd]rain.*[Oo]n.*[^\n\r]+(=[ ]*([\d\.]{1,}) ?V)" 'Spannung
Set matches = regex.Execute(FSO.OpenTextFile(colTFile.Item(1)).ReadAll)
If matches.Count > 0 Then
zusatz(1) = matches(0).submatches(1)
End If
regex.Pattern = "[Dd]rain.*[Oo]n.*[^\n\r]+(=[ ]*([\d\.]{1,}) ?A)" 'Strom
Set matches = regex.Execute(FSO.OpenTextFile(colTFile.Item(1)).ReadAll)
If matches.Count > 0 Then
zusatz(2) = matches(0).submatches(1)
End If
Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Gemeinsamkeiten
10.07.2018 11:07:32
Fennek
Hallo,
eigentlich find ich RegEx sehr gut, aber in den gezeigten Beispielen
- beginnt es immer mit VGS
- endet immer mit A
- enthält 2 "="
- enthält 1x ","
Daraus sollte man eine Abfrage machen können.
mfg
Anzeige
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige