simsons
Goto Top

MS Access VBA txt Datei bearbeiten

Einen schönen guten Abend zusammen.

Ich habe ein Problem face-sad und hoffe das mir jemand helfen kann.

Ich habe eine Sicherungsdatei *.csv (UTF-8) einer "Datenbank" diese ist ca 40 MB groß.
Als Feldtrennzeichen wurde TAB benutzt
Als Textqualifizierer "

Diese Sicherungsdatei möchte ich jetzt in eine vorbereitete Access 2016 Datenbank einlesen.

Mein Problem ist das sich in der Datensicherungsdatei Bilddaten befinden.
Diese Bilddaten benötige ich nicht und verhindern leider auch den Import der Daten.

Ich habe Testweise die Sicherungsdatei auf ein paar Datensätze gekürzt und die Bilddaten entfernt.
Damit funktionierte dann der Import.

Ich möchte nun gerne die Bilddaten aus Access (VBA) heraus aus der Sicherungsdatei löschen.
Das bedeutet, Datei öffnen, Bild suchen, Bild löschen, nächstes Bild suchen, Bild löschen usw.
Datei Speichern.

Die Bilder sind "verstreut" in der Sicherungsdatei nach folgenden Schema vorhanden.

TAB"<p><img alt="""" src=""data:image/png;base64,*"TAB
Das Ergebnis soll sein TAB""TAB

Die einzelnen Bilder haben zur Zeit eine Größe von ca. 25.000 Zeichen

Ich hoffe es erbarmt sich jemand face-smile

Content-ID: 3170130282

Url: https://administrator.de/contentid/3170130282

Ausgedruckt am: 22.11.2024 um 03:11 Uhr

StefanKittel
Lösung StefanKittel 07.12.2023 um 21:41:07 Uhr
Goto Top
Hallo,
Du schreibst Dir per VBA einen eigenen Parser und fügste dabei die bereinigten Datensätze zu der Tabelle hinzu.
Stefan
simsons
simsons 07.12.2023 um 21:50:43 Uhr
Goto Top
Hallo Stefan,

danke für die Antwort. Manchmal sieht man den Wald vor lauter Bäumen nicht mehr face-smile

Auch Stefan face-smile
StefanKittel
StefanKittel 07.12.2023 um 22:48:12 Uhr
Goto Top
Probier mal ob dies hier funktioniert bei Dir.
Nimmt nur den Text aus einer HTML-Datei.

Function HtmlToText(sHTML) As String
    Dim oDoc As HTMLDocument
    Set oDoc = New HTMLDocument
    oDoc.body.innerHTML = sHTML
    HtmlToText = oDoc.body.innerText
End Function

Damit lese ich UTF8-Text-Dateien ein
Function ReadTextFile(p_Filename As String) As String

    Dim objStream, strData
    
    Set objStream = CreateObject("ADODB.Stream")  
    
    objStream.Charset = "utf-8"  
    objStream.Open
    objStream.LoadFromFile (p_Filename)
    
    ReadTextFile = objStream.ReadText()
    
    objStream.Close
    Set objStream = Nothing
End Function