Office - Word, Excel und Co. 9.706 Themen, 40.868 Beiträge

Knifflige Datenbanksortierung

flo_1 / 5 Antworten / Flachansicht Nickles
Hallo Leute!

Stehe vor einem - meiner Meinung nach - sehr kniffligem Problem: Ich habe eine Textdatei mit verschiedenen Messergebnissen und möchte diese Auswerten. Die Sortierung soll so erfolgen, dass für jedes Datum und Zeit die dazugehörigen Messdaten in einem Datensatz stehen.

Die Textdatei sieht folgendermaßen aus:







Measure:    1  Time: Mar 23 11:24:18 2004
Analog Inputs:
C-01:   0.0 ÿÿ AC-02:   4.8 ÿÿ AC-03:   6.3 ÿÿ AC-04:   6.2 ÿÿ AC-05:   5.4 ÿÿ AC-06:   6.4 ÿÿ A
C-07:  14.2 ÿÿ AC-08: 180.0 ÿÿ AC-09: 180.0 ÿÿ AC-10:  15.3 ÿÿ AC-11: 180.0 ÿÿ AC-12:  15.5 ÿÿ A
C-13: 180.0 ÿÿ AC-14:  13.1 ÿÿ AC-15:  65.2 ÿÿ AC-16:  65.4 ÿÿ AC-17:  59.8 ÿÿ AC-18:   0.1 ÿÿ A
C-19:   0.0 ÿÿ AC-20: 180.0 ÿÿ AC-21:  59.3 ÿÿ AC-22: 180.0 ÿÿ AC-23:  41.8 ÿÿ AC-24:  15.2 ÿÿ A
C-25:  16.5 ÿÿ AC-26:   9.8 ÿÿ A
Analog Outputs:
C-01:   0.0 ÿÿ AC-02:   0.0 ÿÿ AC-03:   0.0 ÿÿ A
Relais: 1: 0, 2: 0, 3: 0, 4: 0
Data-Next: <far>0027:0070H

Measure:    2  Time: Mar 23 11:50:31 2004
Analog Inputs:
C-01:   0.0 ÿÿ AC-02:   5.1 ÿÿ AC-03:   6.4 ÿÿ AC-04:   6.3 ÿÿ AC-05:   5.5 ÿÿ AC-06:   6.3 ÿÿ A
C-07:  14.1 ÿÿ AC-08: 180.0 ÿÿ AC-09: 180.0 ÿÿ AC-10:  15.8 ÿÿ AC-11: 180.0 ÿÿ AC-12:  15.6 ÿÿ A
C-13: 180.0 ÿÿ AC-14:  13.6 ÿÿ AC-15:  68.2 ÿÿ AC-16:  62.3 ÿÿ AC-17:  58.4 ÿÿ AC-18:   0.0 ÿÿ A
C-19:   0.0 ÿÿ AC-20: 180.0 ÿÿ AC-21:  60.2 ÿÿ AC-22: 180.0 ÿÿ AC-23:  40.7 ÿÿ AC-24:  15.2 ÿÿ A
C-25:  16.5 ÿÿ AC-26:  10.7 ÿÿ A
Analog Outputs:
C-01:   0.0 ÿÿ AC-02:   0.0 ÿÿ AC-03:   0.0 ÿÿ A
Relais: 1: 0, 2: 0, 3: 0, 4: 0
Data-Next: <far>0027:00E0H

C-01 bis C-026 sind die benötigten Messwerte die ich dem jeweiligem Datensatz zuordnen möchte. Hab die Sortierung bereits mit einem kleinem Delphi Programm versucht - bin aber leider gescheitert.
Wäre über eure Hilfe sehr dankbar!!

Mit freundlichen Grüßen

Flo
bei Antwort benachrichtigen
tuxfriend flo_1 „Knifflige Datenbanksortierung“
Optionen

Falls das Problem noch besteht habe ich hier eine Lösung in VBA für die Messwertübernahme in EXCEL:
--------------------------------------------------------------------
Option Explicit

Dim TextZeile, TeilText, dlgAnswer
Dim Datum, inoutText, datenText

Dim iInt As Integer
Dim iStr As String

Dim wrksht As Worksheet
Dim objList As ListObject
Dim objListRng As Range

Sub main()
Debug.Print "Messwertwandlung"
With Application.FileDialog(msoFileDialogOpen)
.AllowMultiSelect = False
.Show
dlgAnswer = .SelectedItems(1)
End With
Open dlgAnswer For Input As #1
iInt = 1
Do While Not EOF(1) ' Schleife bis Dateiende.
Input #1, TextZeile
iStr = "A" + LTrim(Str(iInt))
If Left(TextZeile, 8) = "Measure:" Then
Datum = Mid(TextZeile, 22, 20)
End If
If Left(TextZeile, 14) = "Analog Inputs:" Then
inoutText = "Input"
End If
If Left(TextZeile, 15) = "Analog Outputs:" Then
inoutText = "Output"
End If
If Left(TextZeile, 2) = "C-" Then
datenText = TextZeile
End If

Worksheets("Tabelle1").Activate
Worksheets("Tabelle1").Range(iStr).Activate
ActiveCell.Value = Datum
ActiveCell.Next.Select
ActiveCell.Value = inoutText
ActiveCell.Next.Select
ActiveCell.Value = datenText
iInt = iInt + 1
Loop
Close #1
End Sub
-------------------------------------------------------------------

bei Antwort benachrichtigen