Thema Datum  Von Nutzer Rating
Antwort
Rot Problem mit Absatzzeichen beim Datenauslesen
29.01.2025 20:39:58 Kerstin
NotSolved
30.01.2025 06:59:35 ralf_b
NotSolved
30.01.2025 08:26:10 Kerstin
NotSolved
04.02.2025 02:45:29 Gast52730
NotSolved
30.01.2025 10:39:17 Gast37945
NotSolved

Ansicht des Beitrags:
Von:
Kerstin
Datum:
29.01.2025 20:39:58
Views:
140
Rating: Antwort:
  Ja
Thema:
Problem mit Absatzzeichen beim Datenauslesen

Hallo, ich habe ein Excel VBA erhalten, was leider nicht richtig funktioniert.Das Excel soll Daten aus bestimmten Zeilen einer .txt Datei auslesen. Die Zeilen beginnen mit "BMK_", der folgende Datensatz beginnt mit ">" und endet mit "<". Manchmal springt dieser Datensatz aber mittels Zeilenumbruch in eine zweite Zeile.

In dem Code wird versucht, den Datensatz so zu bereinigen: "tempValue = tempValue & Trim(line)", das klappt aber nicht. Hier ein Beispiel für den Datensatz:

BMK_LA_DETAILS (2106)                        >Frank Mustermann, geb. am 12.01.1970
 (56321)<

Raushaben möchte ich "LA_DETAILS" und "Frank Mustermann, geb. am 12.01.1970 (56321)"

Hat jemand eine Lösung, wie man das lösen kann?

Herzlichen Dank!

 

  ' Verarbeitet eine Datenzeile und fügt sie ins Worksheet ein
Sub ProcessDataLine(line As String, currentSheet As Worksheet, ByRef outputRow As Long, ByRef tempValue As String, ByRef readingValue As Boolean)
    Dim namePart As String
    Dim valuePart As String
        
    If InStr(line, ">") > 0 Then
        ' Start des Wertes gefunden
        namePart = ExtractName(line)
        tempValue = Mid(line, InStr(line, ">") + 1)
        If InStr(tempValue, "<") > 0 Then
            ' Wert endet in derselben Zeile
            valuePart = Left(tempValue, InStr(tempValue, "<") - 1)
            WriteData currentSheet, outputRow, namePart, valuePart
            tempValue = ""
            readingValue = False
        Else
            readingValue = True
        End If
    ElseIf readingValue Then
        ' Wert über mehrere Zeilen zusammensetzen
        tempValue = tempValue & Trim(line)
        If InStr(line, "<") > 0 Then

(Anmerkung Kerstin:  müßte das nicht auch "If InStr(line, "<") = 0 Then" heissen?
            valuePart = Left(tempValue, InStr(tempValue, "<") - 1)
            namePart = ExtractName(line) ' Hole Namen erneut
            WriteData currentSheet, outputRow, namePart, valuePart
            tempValue = ""
            readingValue = False
        End If
    End If
End Sub


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
Rot Problem mit Absatzzeichen beim Datenauslesen
29.01.2025 20:39:58 Kerstin
NotSolved
30.01.2025 06:59:35 ralf_b
NotSolved
30.01.2025 08:26:10 Kerstin
NotSolved
04.02.2025 02:45:29 Gast52730
NotSolved
30.01.2025 10:39:17 Gast37945
NotSolved