Announcement

Collapse
No announcement yet.

Email-Adressen aus Emails auslesen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Email-Adressen aus Emails auslesen

    Hallo zusammen,

    ich hab da ein Problem und weiß nicht wie ich es zeitsparend lösen kann.
    Ich habe ca. 10.000 Emails von Kontaktformularen meiner Seite gesammelt.

    Jetzt würd ich gern aus jeder Email die Emailadresse rausfiltern und ein eine neue Email schreiben. ODer eine TXT Datei oder ähnliches.

    Habt ihr eine Idee wie man das machen könnte? Man müsste praktisch die Email öffnen lassen, die stelle suchen lassen wo die Email-Adresse angegeben wurde und diese dann kopieren.

    Grüße,

  • #2
    Bitte g-nauer spezifizieren...!

    Hallo,

    Bitte beschreibe noch, in welchem Format die E-Mails zur Zeit vorliegen bzw. über welche(s) System/Anwendung diese Mails zugänglich wären.

    Viele Grüße,
    tAgedObject
    darkness is a state of mind

    Comment


    • #3
      hi

      hi, erstmal danke für die Antwort.

      Die liegen mir in einem Backup für Outlook vor. Habe also einen ordner im Posteingang mit allen Emails.

      wolltest du das wissen?

      Comment


      • #4
        ...Habe mal ein kleines Modülchen gebastelt...

        Hallo,

        Hier unten mal ein kleines Modülchen, daß (jedenfalls bei mir) den Zweck erfüllt.
        Du mußt wie folgt vorgehen:
        • Zum Outlook VBA-Editor wechseln
        • Ein neues Modul erstellen (Einfügen->Modul)
        • Den Text einfügen (siehe unten) und speichern
        • Über's Menü das Makro "exportEmailAddressesToAFile" ausführen


        Wenn Du möchtest, kannst Du noch in der Routine saveToAFile() den Zieldateinamen anpassen...

        Code:
        ' tAgedObject (2009) For "Entwickler-Forum.de"
        Option Explicit
        
        Public Type tEmailAddress
        
            DisplayName As String
            Type As String
            Email As String
        
        End Type
        
        
        Dim aoea_Adresses() As tEmailAddress
        Dim lng_curCount As Long
        Dim lng_maxUBound As Long
        
        
        Sub initAdds()
            lng_maxUBound = 10000
            ReDim aoea_Adresses(lng_maxUBound)
            lng_curCount = 0
        End Sub
        
        Sub registerAddress(aName As String, aType As String, aAddress As String)
            If aAddress = "" Then
               Exit Sub
            End If
            
            If lng_curCount = lng_maxUBound - 1 Then
               lng_maxUBound = lng_maxUBound + 10000
               ReDim Preserve aoea_Adresses(lng_maxUBound)
            End If
            aoea_Adresses(lng_curCount).DisplayName = aName
            aoea_Adresses(lng_curCount).Email = aAddress
            Select Case aType
                   Case 0
                        aoea_Adresses(lng_curCount).Type = "Sender"
                   Case 1
                        aoea_Adresses(lng_curCount).Type = "To"
                   Case 2
                        aoea_Adresses(lng_curCount).Type = "CC"
                   Case 3
                        aoea_Adresses(lng_curCount).Type = "BCC"
                   Case Else
                        aoea_Adresses(lng_curCount).Type = "Other (unknown)"
            End Select
            lng_curCount = lng_curCount + 1
        End Sub
        
        
        Sub loopThroughRecipients(aRecs As Recipients)
            Dim vRec1 As Recipient
            
            If aRecs Is Nothing Then
               Exit Sub
            End If
            
            For Each vRec1 In aRecs
                registerAddress vRec1.Name, vRec1.Type, vRec1.Address
            Next vRec1
        End Sub
        
        Sub loopThroughMailItems(aItems As Outlook.Items)
            Dim vOb1 As Object
            Dim vMi1 As Outlook.MailItem
            
            If aItems Is Nothing Then
               Exit Sub
            End If
            
            For Each vOb1 In aItems
                Debug.Print vOb1.Class
                If vOb1.Class = 43 Then
                   loopThroughRecipients vOb1.Recipients
                End If
            Next vOb1
        
        End Sub
        
        Sub loopThroughSubFolders(aFolders As Outlook.Folders)
            Dim vFd1 As Outlook.MAPIFolder
            
            If aFolders Is Nothing Then
               Exit Sub
            End If
            
            For Each vFd1 In aFolders
                registerEmailAddressesFromAFolder vFd1
            Next vFd1
        
        End Sub
        
        
        Sub registerEmailAddressesFromAFolder(aFolder As Outlook.MAPIFolder)
            Dim vFd1 As Outlook.MAPIFolder
        
            Set vFd1 = aFolder
            If (vFd1 Is Nothing) Then
               Set vFd1 = Outlook.ActiveExplorer.CurrentFolder
            End If
            
            If (vFd1 Is Nothing) Then
               MsgBox "Kein aktueller Ordner (verfügbar)"
               Exit Sub
            End If
        
            loopThroughMailItems vFd1.Items
            loopThroughSubFolders vFd1.Folders
        End Sub
        
        Sub saveToAFile()
            Dim vSt1 As String
            Dim vSt2 As String
            Dim vIn1 As Integer
            Dim vLo1 As Long
            
            vIn1 = FreeFile()
            vSt1 = "c:\temp\myAddressExportFile.txt"
            Open vSt1 For Output As vIn1
            
            For vLo1 = 0 To lng_curCount
                vSt2 = aoea_Adresses(vLo1).Email & Chr(9) & aoea_Adresses(vLo1).DisplayName & Chr(9) & aoea_Adresses(vLo1).Type
                Print #vIn1, vSt2
            Next vLo1
            
            Close vIn1
        End Sub
        
        Sub doneAdds()
            lng_maxUBound = -1
            lng_curCount = -1
            Erase aoea_Adresses
        End Sub
        
        
        Sub exportEmailAddressesToAFile()
            
            initAdds
            registerEmailAddressesFromAFolder Nothing
            If lng_curCount > 0 Then
               saveToAFile
               MsgBox "Es wurden " & lng_curCount & " Adresseinträge exportiert. Diese müssen noch auf Eindeutigkeit hin gefiltert werden!", vbInformation, "Export beendet..."
            End If
            doneAdds
            
        End Sub
        Edit : Die Adressen sind natürlich nicht eindeutig. Du kannst diese bspws. in Access importieren und noch "eindeutig machen"...

        Viele Grüße,
        tAgedObject
        darkness is a state of mind

        Comment


        • #5
          Hi, habe den Script eingebaut und er hat auch funktioniert.

          Problem: Er hat jetzt immer die Absender der einzelnen Mails exportiert. Das Problem ist aber, dass die Mails alle von einem Kontaktformular kommen. Somit ist der Absender immer die selbe Adresse. Die Mailadressen, die ich brauche stehen erst im Textfeld der jeweiligen Nachricht.

          Grüße,

          Comment


          • #6
            ...soso... ;-)

            Hallo,

            Vermutlich ist es ja möglich den VBA-Code dahingehend zu erweitern,
            so daß dieser auch die E-Mail-Adressen aus dem Inhalt ausliest. Hierfür wäre es günstig,
            wenn Du mal den Inhalt eines der Mails hier publizieren würdest. Du kannst ja die
            Kontaktdaten vorher ändern ;-)

            Viele Grüße,
            tAgedObject
            darkness is a state of mind

            Comment


            • #7
              Ok, es sieht in der Regel so aus:

              Code:
              Soeben hat sich ein Interessent in das Kontaktformular eingetragen und folgende Daten übermittelt:
              
              Start:
              
              Sparte:		yx
              Herkunft:	xy
              Anrede:		Herr
              Vorname:	j
              Nachname:	b
              Strasse:	xy
              PLZ:		xy
              Ort:		xy
              E-Mail:		[email protected]
              Telefon:	xy
              Geburtsdatum:	xy
              Familienstand: xy
              Berufsstatus:	Angestellter
              Kinder:		keine Kinder
              
              
              Ende

              Comment


              • #8
                ...etwas g-ändert...

                Hallo,

                Habe das Modülchen mal so abgeändert,
                daß es die Kontaktdaten (aus dem Text) statt
                der E-Mail-Adressen exportiert (siehe unten).

                Code:
                ' tAgedObject (2009) For "Entwickler-Forum.de"
                Option Explicit
                
                Public Type tContactData
                
                    Sparte As String
                    Herkunft As String
                    Anrede As String
                    Vorname As String
                    Nachname As String
                    Strasse As String
                    PLZ As String
                    Ort As String
                    EMail As String
                    Telefon As String
                    Geburtsdatum As String
                    Familienstand As String
                    Berufsstatus As String
                    Kinder As String
                
                End Type
                
                
                Dim aocd_Records() As tContactData
                Dim lng_curCount As Long
                Dim lng_maxUBound As Long
                
                
                Sub initRecords()
                    lng_maxUBound = 10000
                    ReDim aocd_Records(lng_maxUBound)
                    lng_curCount = 0
                End Sub
                
                Sub registerRecord(aRecord As tContactData)
                    
                    If lng_curCount = lng_maxUBound - 1 Then
                       lng_maxUBound = lng_maxUBound + 10000
                       ReDim Preserve aocd_Records(lng_maxUBound)
                    End If
                    aocd_Records(lng_curCount) = aRecord
                    lng_curCount = lng_curCount + 1
                End Sub
                
                Function cleanRecordLine(aLine As String, aToken) As String
                    Dim vSt1 As String
                    
                    vSt1 = Right(aLine, Len(aLine) - Len(aToken) - 1)
                    vSt1 = Replace(vSt1, Chr(160), " ")  ' wo kommt das eigentlich her...?
                    vSt1 = Replace(vSt1, Chr(9), " ")
                    vSt1 = Trim(vSt1)
                
                    cleanRecordLine = vSt1
                End Function
                
                
                Sub pickData(ByVal aText As String)
                    Dim vtCd1 As tContactData
                    Dim vSt1 As String
                    Dim vIn1 As Integer
                    Dim vIn2 As Integer
                    
                    vIn1 = 0
                    
                    Do
                    
                      vIn1 = InStr(vIn1 + 2, aText, Chr(13) & Chr(10))
                      vIn2 = InStr(vIn1 + 2, aText, Chr(13) & Chr(10))
                      If vIn2 > 0 Then
                         vSt1 = Mid(aText, vIn1 + 1, vIn2 - vIn1 - 1)
                      End If
                      If (vIn1 > 0) And (vIn2 > 0) Then
                
                         If InStr(vSt1, "Sparte:") > 0 Then vtCd1.Sparte = cleanRecordLine(vSt1, "Sparte:")
                         If InStr(vSt1, "Herkunft:") > 0 Then vtCd1.Herkunft = cleanRecordLine(vSt1, "Herkunft:")
                         If InStr(vSt1, "Anrede:") > 0 Then vtCd1.Anrede = cleanRecordLine(vSt1, "Anrede:")
                         If InStr(vSt1, "Vorname:") > 0 Then vtCd1.Vorname = cleanRecordLine(vSt1, "Vorname:")
                         If InStr(vSt1, "Nachname:") > 0 Then vtCd1.Nachname = cleanRecordLine(vSt1, "Nachname:")
                         If InStr(vSt1, "Strasse:") > 0 Then vtCd1.Strasse = cleanRecordLine(vSt1, "Strasse:")
                         If InStr(vSt1, "PLZ:") > 0 Then vtCd1.PLZ = cleanRecordLine(vSt1, "PLZ:")
                         If InStr(vSt1, "Ort:") > 0 Then vtCd1.Ort = cleanRecordLine(vSt1, "Ort:")
                         If InStr(vSt1, "E-Mail:") > 0 Then vtCd1.EMail = cleanRecordLine(vSt1, "E-Mail:")
                         If InStr(vSt1, "Telefon:") > 0 Then vtCd1.Telefon = cleanRecordLine(vSt1, "Telefon:")
                         If InStr(vSt1, "Geburtsdatum:") > 0 Then vtCd1.Geburtsdatum = cleanRecordLine(vSt1, "Geburtsdatum:")
                         If InStr(vSt1, "Familienstand:") > 0 Then vtCd1.Familienstand = cleanRecordLine(vSt1, "Familienstand:")
                         If InStr(vSt1, "Berufsstatus:") > 0 Then vtCd1.Berufsstatus = cleanRecordLine(vSt1, "Berufsstatus:")
                         If InStr(vSt1, "Kinder:") > 0 Then vtCd1.Kinder = cleanRecordLine(vSt1, "Kinder:")
                
                      End If
                          
                    Loop Until vIn2 < 1
                    
                    registerRecord vtCd1
                    
                End Sub
                
                Sub checkPickData(aMailItem As MailItem)
                    Dim vSt1 As String
                    
                    vSt1 = Left(aMailItem.Body, 100)
                    If InStr(vSt1, "Interessent in das Kontaktformular") < 1 Then
                       Exit Sub
                    End If
                    
                    vSt1 = CStr(aMailItem.Body)
                        
                    pickData vSt1
                    
                End Sub
                
                
                Sub loopThroughMailItems(aItems As Outlook.Items)
                    Dim vOb1 As Object
                    Dim vMi1 As Outlook.MailItem
                    
                    If aItems Is Nothing Then
                       Exit Sub
                    End If
                    
                    For Each vOb1 In aItems
                        
                        If vOb1.Class = 43 Then
                           Set vMi1 = vOb1
                           checkPickData vMi1
                           Set vMi1 = Nothing
                        End If
                    Next vOb1
                
                End Sub
                
                Sub loopThroughSubFolders(aFolders As Outlook.Folders)
                    Dim vFd1 As Outlook.MAPIFolder
                    
                    If aFolders Is Nothing Then
                       Exit Sub
                    End If
                    
                    For Each vFd1 In aFolders
                        registerContactDataRecordsFromAFolder vFd1
                    Next vFd1
                
                End Sub
                
                
                Sub registerContactDataRecordsFromAFolder(aFolder As Outlook.MAPIFolder)
                    Dim vFd1 As Outlook.MAPIFolder
                
                    Set vFd1 = aFolder
                    If (vFd1 Is Nothing) Then
                       Set vFd1 = Outlook.ActiveExplorer.CurrentFolder
                    End If
                    
                    If (vFd1 Is Nothing) Then
                       MsgBox "Kein aktueller Ordner (verfügbar)"
                       Exit Sub
                    End If
                
                    loopThroughMailItems vFd1.Items
                    loopThroughSubFolders vFd1.Folders
                End Sub
                
                Sub saveToAFile()
                    Dim vSt1 As String
                    Dim vSt2 As String
                    Dim vIn1 As Integer
                    Dim vLo1 As Long
                    
                    vIn1 = FreeFile()
                    vSt1 = "c:\temp\myContactsExportFile.txt"
                    Open vSt1 For Output As vIn1
                    
                    vSt2 = "Sparte" & Chr(9) & "Herkunft" & Chr(9) & "Anrede" & Chr(9) & "Vorname" & Chr(9) & "Nachname" & Chr(9) & "Strasse" & Chr(9) & _
                           "PLZ" & Chr(9) & "Ort" & Chr(9) & "EMail" & Chr(9) & "Telefon" & Chr(9) & "Geburtsdatum" & Chr(9) & "Familienstand" & Chr(9) & _
                           "Berufsstatus" & Chr(9) & "Kinder"
                
                    Print #vIn1, vSt2
                    
                    For vLo1 = 0 To lng_curCount - 1
                    
                        vSt2 = aocd_Records(vLo1).Sparte & Chr(9) & _
                               aocd_Records(vLo1).Herkunft & Chr(9) & _
                               aocd_Records(vLo1).Anrede & Chr(9) & _
                               aocd_Records(vLo1).Vorname & Chr(9) & _
                               aocd_Records(vLo1).Nachname & Chr(9) & _
                               aocd_Records(vLo1).Strasse & Chr(9) & _
                               aocd_Records(vLo1).PLZ & Chr(9) & _
                               aocd_Records(vLo1).Ort & Chr(9) & _
                               aocd_Records(vLo1).EMail & Chr(9) & _
                               aocd_Records(vLo1).Telefon & Chr(9) & _
                               aocd_Records(vLo1).Geburtsdatum & Chr(9) & _
                               aocd_Records(vLo1).Familienstand & Chr(9) & _
                               aocd_Records(vLo1).Berufsstatus & Chr(9) & _
                               aocd_Records(vLo1).Kinder
                               
                        Print #vIn1, vSt2
                    Next vLo1
                    
                    Close vIn1
                End Sub
                
                Sub doneRecords()
                    lng_maxUBound = -1
                    lng_curCount = -1
                    Erase aocd_Records
                End Sub
                
                
                Sub exportContactDataRecordsToAFile()
                    
                    initRecords
                    registerContactDataRecordsFromAFolder Nothing
                    If lng_curCount > 0 Then
                       saveToAFile
                       MsgBox "Es wurden " & lng_curCount & " Kontaktdatensätze exportiert. Diese müssen noch auf Sinnfälligkeit & Eindeutigkeit hin gefiltert werden!", vbInformation, "Export beendet..."
                    End If
                    doneRecords
                    
                End Sub
                Zum Ausführen mußt Du die Routine "exportContactDataRecordsToAFile" starten.

                Da hier der Text nach Schlüsselzeichenketten durchsucht wird,
                kann es durchaus sein, daß noch nicht 100% das exportiert wird,
                was tatsächlich gewünscht ist. Falls das so ist, dann schau Dir mal die
                Routinen "checkPickData", "pickData" und "cleanRecordLine" an.
                In diesen Routinen könnte man evt. dann noch Änderungen vornehmen.


                Viele Grüße,
                tAgedObject
                darkness is a state of mind

                Comment


                • #9
                  Hi,

                  erstmal danke.
                  Das sagt mir beim Ausführen jetzt aber "Die Makros in diesem Projekt sind deaktiviert"

                  Comment


                  • #10
                    ...muß man halt mal aktivieren ;-)

                    Hallo,

                    Durch den Umstand, daß diese Variante des Moduls auf den Inhalt der E-Mails zugreift,
                    muß evt. bei Dir die Makro-Sicherheit für die Zeit der Makro-Ausführung herabgesetzt werden.
                    Über das Menü "Extras|Makros|Sicherheit" kannst Du das überprüfen bzw. einstellen.

                    Hinweis : Falls Du dort etwas änderst, vergiß nicht, die Einstellung nach der Makro-Ausführung wiederherzustellen ;-)

                    Viele Grüße,
                    tAgedObject
                    darkness is a state of mind

                    Comment


                    • #11
                      Hi,

                      danke. Er hat jetzt 94 Datensätze exportiert. Zwischendrin ändert sich das layout der Emails. Da wurde jeweils das Kontaktformular angepasst.

                      Wie kann ich den Script abändern, dass er nur die Emailadressen rausssucht? Ich brauch in der TXT am Ende einfach nur die Emailadressen aufgelistet. Alle anderen Daten aus den Emails sind egal.

                      Grüße,

                      Comment


                      • #12
                        Entoder - Weder

                        Hallo,

                        Eigentlich kannst Du einfach die Datei mit Access importieren und
                        dann dort die Spalte mit den E-Mail-Adressen weiter verarbeiten.
                        In diesem Fall mußt Du das Skript nicht ändern.

                        Ansonsten kannst Du Dir mal die Routine "pickData" anguggen.
                        Hier wird für jede Zeile nachgeschaut, ob was brauchbares drin ist.
                        Du kannst alle Code-Zeilen der Routine rausnehmen, die nach unnötigen Daten suchen.

                        Wenn es nur um's exportieren geht, dann kannst Du einfach die
                        Routine "saveToAFile" anpassen, in welcher die Datensätze in eine Datei geschrieben werden.

                        Viele Grüße,
                        tAgedObject
                        darkness is a state of mind

                        Comment


                        • #13
                          Moin,

                          erstmal danke für die regelmäßigen Antworten. Leider arbeite ich nie wirklich mit Outlook und somit ist mir auch das VBA ein bisschen fern.

                          Ich habe wie du gesagt hast jetzt das "SaveToAFile" wie folgt abgeändert:
                          Code:
                          ' tAgedObject (2009) For "Entwickler-Forum.de"
                          Option Explicit
                          
                          Public Type tContactData
                          
                              Sparte As String
                              Herkunft As String
                              Anrede As String
                              Vorname As String
                              Nachname As String
                              Strasse As String
                              PLZ As String
                              Ort As String
                              EMail As String
                              Telefon As String
                              Geburtsdatum As String
                              Familienstand As String
                              Berufsstatus As String
                              Kinder As String
                          
                          End Type
                          
                          
                          Dim aocd_Records() As tContactData
                          Dim lng_curCount As Long
                          Dim lng_maxUBound As Long
                          
                          
                          Sub initRecords()
                              lng_maxUBound = 10000
                              ReDim aocd_Records(lng_maxUBound)
                              lng_curCount = 0
                          End Sub
                          
                          Sub registerRecord(aRecord As tContactData)
                              
                              If lng_curCount = lng_maxUBound - 1 Then
                                 lng_maxUBound = lng_maxUBound + 10000
                                 ReDim Preserve aocd_Records(lng_maxUBound)
                              End If
                              aocd_Records(lng_curCount) = aRecord
                              lng_curCount = lng_curCount + 1
                          End Sub
                          
                          Function cleanRecordLine(aLine As String, aToken) As String
                              Dim vSt1 As String
                              
                              vSt1 = Right(aLine, Len(aLine) - Len(aToken) - 1)
                              vSt1 = Replace(vSt1, Chr(160), " ")  ' wo kommt das eigentlich her...?
                              vSt1 = Replace(vSt1, Chr(9), " ")
                              vSt1 = Trim(vSt1)
                          
                              cleanRecordLine = vSt1
                          End Function
                          
                          
                          Sub pickData(ByVal aText As String)
                              Dim vtCd1 As tContactData
                              Dim vSt1 As String
                              Dim vIn1 As Integer
                              Dim vIn2 As Integer
                              
                              vIn1 = 0
                              
                              Do
                              
                                vIn1 = InStr(vIn1 + 2, aText, Chr(13) & Chr(10))
                                vIn2 = InStr(vIn1 + 2, aText, Chr(13) & Chr(10))
                                If vIn2 > 0 Then
                                   vSt1 = Mid(aText, vIn1 + 1, vIn2 - vIn1 - 1)
                                End If
                                If (vIn1 > 0) And (vIn2 > 0) Then
                          
                          
                                   If InStr(vSt1, "E-Mail:") > 0 Then vtCd1.EMail = cleanRecordLine(vSt1, "E-Mail:")
                          
                          
                                End If
                                    
                              Loop Until vIn2 < 1
                              
                              registerRecord vtCd1
                              
                          End Sub
                          
                          Sub checkPickData(aMailItem As MailItem)
                              Dim vSt1 As String
                              
                              vSt1 = Left(aMailItem.Body, 100)
                              If InStr(vSt1, "Interessent in das Kontaktformular") < 1 Then
                                 Exit Sub
                              End If
                              
                              vSt1 = CStr(aMailItem.Body)
                                  
                              pickData vSt1
                              
                          End Sub
                          
                          
                          Sub loopThroughMailItems(aItems As Outlook.Items)
                              Dim vOb1 As Object
                              Dim vMi1 As Outlook.MailItem
                              
                              If aItems Is Nothing Then
                                 Exit Sub
                              End If
                              
                              For Each vOb1 In aItems
                                  
                                  If vOb1.Class = 43 Then
                                     Set vMi1 = vOb1
                                     checkPickData vMi1
                                     Set vMi1 = Nothing
                                  End If
                              Next vOb1
                          
                          End Sub
                          
                          Sub loopThroughSubFolders(aFolders As Outlook.Folders)
                              Dim vFd1 As Outlook.MAPIFolder
                              
                              If aFolders Is Nothing Then
                                 Exit Sub
                              End If
                              
                              For Each vFd1 In aFolders
                                  registerContactDataRecordsFromAFolder vFd1
                              Next vFd1
                          
                          End Sub
                          
                          
                          Sub registerContactDataRecordsFromAFolder(aFolder As Outlook.MAPIFolder)
                              Dim vFd1 As Outlook.MAPIFolder
                          
                              Set vFd1 = aFolder
                              If (vFd1 Is Nothing) Then
                                 Set vFd1 = Outlook.ActiveExplorer.CurrentFolder
                              End If
                              
                              If (vFd1 Is Nothing) Then
                                 MsgBox "Kein aktueller Ordner (verfügbar)"
                                 Exit Sub
                              End If
                          
                              loopThroughMailItems vFd1.Items
                              loopThroughSubFolders vFd1.Folders
                          End Sub
                          
                          Sub saveToAFile()
                              Dim vSt1 As String
                              Dim vSt2 As String
                              Dim vIn1 As Integer
                              Dim vLo1 As Long
                              
                              vIn1 = FreeFile()
                              vSt1 = "K:\daten\myContactsExportFile.txt"
                              Open vSt1 For Output As vIn1
                              
                              vSt2 = "EMail" & Chr(9)
                          
                              Print #vIn1, vSt2
                              
                              For vLo1 = 0 To lng_curCount - 1
                              
                                  vSt2 = aocd_Records(vLo1).EMail & Chr(9)
                                         
                                  Print #vIn1, vSt2
                              Next vLo1
                              
                              Close vIn1
                          End Sub
                          
                          Sub doneRecords()
                              lng_maxUBound = -1
                              lng_curCount = -1
                              Erase aocd_Records
                          End Sub
                          
                          
                          Sub exportContactDataRecordsToAFile()
                              
                              initRecords
                              registerContactDataRecordsFromAFolder Nothing
                              If lng_curCount > 0 Then
                                 saveToAFile
                                 MsgBox "Es wurden " & lng_curCount & " Kontaktdatensätze exportiert. Diese müssen noch auf Sinnfälligkeit & Eindeutigkeit hin gefiltert werden!", vbInformation, "Export beendet..."
                              End If
                              doneRecords
                              
                          End Sub
                          wo ist mein Fehler, dass das nicht funktioniert? =)

                          sry ich bin ein noob (:

                          wäre es vielleicht am sichersten, wenn der Script nach dem @ im Inhalt sucht und vielleicht 100 Zeichen davor und danach kopiert und in die TXT schreibt?

                          Comment


                          • #14
                            Welcher Fehler...?

                            Hallo,

                            Was tritt denn für ein Fehler auf...? Bitte mal nicht immer so konkrete Angaben ;-)

                            Das Einzige, was ich mit den Augen erkennen kann, ist,
                            daß Du bei "saveToAFile" prinzipiell auf den Tabulator am Zeilenende verzichten kannst.
                            Du kannst also den Ausdruck "& Chr(9)" weglassen.

                            Im Prinzip kann man auch "tContactData" auf "EMail As String" reduzieren oder
                            noch besser "Dim aocd_Records() As tContactData" durch "Dim aocd_Records() As String" ersetzen
                            (dann muß man beim Zugriff natürlich jeweils auf ".EMail" verzichten).

                            ...aber vielleicht meldest Du Dich ja noch mal mit einer Beschreibung dessen,
                            was Du mit "Fehler" meinst...? ;-)

                            Grüße,
                            tAgedObject
                            darkness is a state of mind

                            Comment


                            • #15
                              Er ist nach paar Sekunden fertig.

                              Und in der Txt steht nur folgendes: "EMail"

                              Kannst du mir den Script nicht schnell umschreiben. Weil ich versteh nur Bahnhof

                              Comment

                              Working...
                              X