Zunächst mal ein paar Anmerkungen zu Deinem Tabellenentwurf:
Lord Nelson hat geschrieben:
Haus Nr.:12 -> nach -> Haus-Nr. [Zahl]
[...]
Telefon-Leser: 01234/12345 -> nach -> Telefon [Zahl]
[...]
Zustellername Telefon: 12345/12345 -> nach -> Telefon Zust. [Zahl]
a) "
Haus Nr." können nach meiner Erfahrung auch lauten: "
10-12" oder "
1a": Datentyp ZAHL ungeeignet; nimm
TEXT
b) "
Telefon-Leser": mit dem Trenner "/" nicht als
ZAHL speicherbar, auch geht die Vorwahl-Null verloren; nimm
TEXT
c) desgleichen für "Z
ustellername Telefon"
Der Rest ist Fleissarbeit gewesen.
Bei manchen Spaltenwerten habe ich die Position des Bezeichners ermittelt und den Wert dann ausgeschnitten.
Bei anderen Werten konnte ich eine Hilfsroutine aus der Bibliothek
TOOLS nutzen, die einen Teilstring, eingefasst durch zwei bekannte Zeichenketten, ausschneidet.
Das sieht dann so aus:
Code: Alles auswählen
Sub de48860
GlobalScope.BasicLibraries.loadLibrary( "Tools" )
' 2011-07-11
' hier anpassen ! ! ! ! !
'
sTempDatei = "/home/BENUTZER/testdata/thunderbird.txt"
On Error Goto ERR_1
iNumber = Freefile
On Error Resume Next
Open sTempDatei For Input As iNumber
While not EOF( iNumber)
Line Input #iNumber, sZeile
' Position des ersten Doppelpunktes
iPosDoppelpkt = INSTR( 1, sZeile, ":" )
' bestimmt den Typ der Zeile
Select Case iPosDoppelpkt
Case 16 ' "Reklamation-Nr.:"
idRekla = _
MID( sZeile, iPosDoppelpkt+2 , LEN (sZeile)-iPosDoppelpkt+1 )
Case 17 ' "Zustellungsdatum:"
dZustell = FindPartString( sZeile, "Zustellungsdatum: ", " Titel: ", 1 )
iPosBezirk = INSTR( sZeile, "Bezirk: " )
iBezirk = TRIM ( MID( sZeile, iPosBezirk+6 ) )
Case 7 ' "Straße"
sStrasse = FindPartString( sZeile, "Straße: ", "Haus Nr.:", 1 )
iHausNr = FindPartString( sZeile, "Haus Nr.:", "Name:", 1 )
sAnrufer = FindPartString( sZeile, "Name:", "Telefon-Leser", 1 )
iPosTelLeser = INSTR( sZeile, "Telefon-Leser" )
sTelLeser = MID( sZeile, iPosTelLeser+14 )
Case 10 ' "Zusteller:"
sPersNr = FindPartString( sZeile, "Zusteller: ", "Name:", 1 )
iPosTel = INSTR( sZeile, "Telefon:" )
sZustTel = MID( sZeile, iPosTel+9 )
Case Else
sBemerk = sBemerk & sZeile & " "
End Select
WEnd
Close #iNumber
print "rekl " & idRekla
print "datum " & dZustell
print "bezirk " & iBezirk
print "str " & sStrasse
print "hnr " & iHausNr
print "anrufer " & sanrufer
print "telLeser " & sTelLeser
print "PersNr " & sPersNr
print "Tel " & sZustTel
print sbemerk
End Sub
Bedeutet für Dich erstmal:
1) Nachricht aus Thunderbird als Text speichern (bspw. unter "
c:\temp\thunderbird.txt") - immer am gleichen Ort und mit gleichem Namen
2) den Dateinamen im Skript anpassen !
3) die Routine
de48860 in/aus OOo abrufen
Bekommst Du damit bei Deinen Testdaten (nimm zum Testen verschiedene Datensätze) die richtigen Ergebnisse?
Dann machen wir im nächsten Schritt mit den Befehlen zum Einfügen in die Datenbank weiter.