Live-Forum - Die aktuellen Beiträge
Datum
Titel
17.04.2024 18:57:33
17.04.2024 16:56:58
Anzeige
Archiv - Navigation
920to924
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
920to924
920to924
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Messdaten aus Ascii-Dateien einlesen

Messdaten aus Ascii-Dateien einlesen
29.10.2007 13:15:00
thomas
Hallo zusammen,
von einer Messmaschine kann ich verschiedene Messprotokolle per Ascii-File auslesen. Für jede Messung erhalte ich dabei eine Datei mit Namen "Serienmessung.geo0001.act". Der Dateinamen zählt dann automatisch hoch z.B. Serienmessung.geo0152.act. Die Dateien sind immer im gleichen Ordner. Eine Beispieldatei ist unten beigefügt. Gegebenenfalls kann der Dateiname auch noch verändert werden.
Konkret muss ich aus der beigefügten Musterdatei immer den Namen des Prüfers (Zeile 405), das Datum (Zeile 407), un die Messwerte auslesen. Die Messwerte sind dabei jeweils die letzten Zahlen in den 100er Zeilen, bei diesem Teil sind es 12 Messpunkte. Es können maximal 20 Messpunkte sein Die Messwerte der einzelnen Dateien sollten dann untereinander in ein Arbeitsblatt eingetragen werden und sollte dann so aussehen:
Datum Prüfer MP1 MP2 MP3 MP4 MP5
18.10.07 Mustermann -0,26 -0,34 -0,31 1,71 -1,01
"Daten der nächsten Datei".....
Da ich die Originaldatei nicht hochladen kann, hier ein Beispiel der Originaldatei der Messungen
401 "W-Name" "Musterteil"
402 "Teile-Nr." "A000 000 0001"
403 "Stand " "0709-1546"
404 "Lieferant/Kunde Nr." "Musterfirma"
405 "Prüfer" "Thomas Mustermann"
406 "Blatt-nr" "03"
407 "Datum" "18.10.2007"
409 "Teil" "Letztteil"
500 "Materialstärke" "2mm"
300 "Serienmessung.geo"
101 1 "FP 1" 4075.36 24.47 248.03 0.26 0.01 -0.00 -0.26
101 2 "FP 2" 4075.42 -24.36 248.03 0.32 0.10 -0.00 -0.34
101 3 "FP 3" 4042.05 -87.84 298.94 0.31 -0.00 -0.01 -0.31
102 4 "BP 4" 4041.79 -97.56 297.83 0.01 -1.71 -0.11 1.71
102 5 "BP 5" 4050.10 -86.20 324.63 1.01 -0.01 0.05 -1.01
101 6 "FP 6" 4065.95 -85.05 324.41 0.02 0.00 -1.04 -1.05
101 7 "FP 7" 4104.76 -47.17 327.92 0.02 0.00 -0.01 -0.03
101 8 "FP 8" 4104.79 47.17 327.86 0.06 0.00 -0.07 -0.10
101 9 "FP 9" 4065.91 85.06 323.89 -0.02 0.00 -1.56 -1.56
102 10 "BP 10" 4049.66 86.19 324.61 0.57 0.00 0.03 -0.57
101 11 "FP 11" 4041.97 87.89 298.84 0.24 0.05 -0.11 -0.27
102 12 "BP 12" 4041.78 96.44 297.86 0.00 0.59 -0.08 0.60
Kann mir jemand dabei helfen, hier eine Lösung zu finden? Minimalkenntnisse in VBA hätte ich
Viele Grüße und vielen Dank im voraus
Thomas

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Messdaten aus ASCII-Dateien einlesen
29.10.2007 13:50:30
NoNet
Hallo Thomas,
hier eine Komplett-Lösung per VBA :

Sub Messpunkte_aus_ASCII_einlesen()
'29.10.2007, NoNet
Dim strPfad As String, strDatei As String, strZeile As String
Dim inzZ As Integer, intS As Integer
Dim wshBlatt As Worksheet
Set wshBlatt = Sheets.Add 'neues Blatt anlegen
'Oder : in aktuelles Blatt :
'Set wshBlatt = ActiveSheet
wshBlatt.[A1:B1] = Array("Datum", "Prüfer")
For intS = 1 To 20 'Überschriften Messpunkte
wshBlatt.Cells(1, intS + 2) = "MP" & intS
Next
intZ = 0
strPfad = "C:\Temp\" 'Pfad der ASCII-Dateien - mit "\" am Ende !
strDatei = Dir(strPfad & "Serienmessung.geo?.act")
Do
If intZ > 0 Then strDatei = Dir
If strDatei  "" Then
intZ = intZ + 1
Open strPfad & strDatei For Input As 1
intS = 0
While Not EOF(1)
Input #1, strZeile
Select Case Left(strZeile, 4)
Case "405 " 'Prüfer in Zelle schreiben
wshBlatt.Cells(intZ + 1, 1) = Mid(strZeile, 15, Len(strZeile) - 15)
Case "407 " 'Datum in Zelle schreiben
wshBlatt.Cells(intZ + 1, 2) = CDate(Mid(strZeile, 14, 10))
Case Else
If Left(strZeile, 4) Like "1? " Then '100er Numern
intS = intS + 1
wshBlatt.Cells(intZ + 1, intS + 2) = _
Split(strZeile, " ")(UBound(Split(strZeile, " ")))
End If
End Select
Wend
Close 1
Else
MsgBox "Es wurden " & intZ & " Dateien gefunden !", , "Ende"
End If
Loop Until strDatei = ""
wshBlatt.Columns.AutoFit
End Sub


Den Pfad "C:\Temp\" Deiner ASCII-Dateien musst Du noch anpassen !
Gruß, NoNet

Anzeige
Kleine Korrektur "Prüfer" und Datum tauschn
29.10.2007 13:54:04
NoNet
Sorry Thomas,
habe gerade festgestellt, dass ich die Überschriften "Prüfer" und "Datum" versehentlich vertauscht habe, aber ich bin sicher, dass Du diese Korrektur noch selbst vornehmen kannst, oder ;-)) ?
Gruß, NoNet

AW: Messdaten aus ASCII-Dateien einlesen
29.10.2007 14:31:03
thomas
Hallo NoNet,
erstmal vielen heftigen Dank, hab zum ersten Mal seit 8 Jahren etwas mit VBA-Makros gemacht und es hat funktioniert. Das mit dem Prüfer und dem Datum probiere ich jetzt aus. Einfach klasse dein Makro.
Viele Grüße
Thomas

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige