3.4k Aufrufe
Gefragt in Datenbanken von fanta4all Einsteiger_in (11 Punkte)
Hallo zusammen,
ich bin neu im Forum und hoffe an dieser stelle meine Frage richtig positioniert zu haben.

Ich habe eine TXT Datei aus der ich gerne alle E-Mail adressen gerausfiltern würde... Gibt es hier eine einfach möglichkeit dazu?


VG

8 Antworten

0 Punkte
Beantwortet von kjg17 Profi (34.4k Punkte)
Hallo,

du müsstest schon mal erzählen, ob diese Mail-Adressen willkürlich innerhalb von normalem Text auftauchen oder ob dein TXT-File eine bestimmte Struktur unter Verwendung von Trennzeichen bzw. Tab-Stops hat, also im Aufbau eher einer Tabelle entspricht.

Gruß
Kalle
0 Punkte
Beantwortet von fanta4all Einsteiger_in (11 Punkte)
Hallo Kalle,
die E-Mailadressen kommen willkürlich vor, die einzige erkennbare Struktur wäre dass die Adressen untereinander also mit Absatz vorhanden sind.
0 Punkte
Beantwortet von kjg17 Profi (34.4k Punkte)
Hallo,

unter "untereinander also mit Absatz vorhanden" kann ich mir leider nichts vorstellen. Bedeutet das, dass sie jeweils am Anfang eines neuen Absatzes stehen?

Du könntest das mal an einem kleinen Beispiel deutlich machen, dabei aber natürlich die Mail-Adressen (und den sonstigen Text) so verfälschen, dass sie nicht durch irgendwen für Spams o.ä. missbraucht werden könnten.

Gruß
Kalle
0 Punkte
Beantwortet von Experte (3.2k Punkte)
selbst wenn es keine maschinenverständliche form hat, ein Text z.B., kann man sich zunutze machen, dass e-mailadressen immer das format irgendeinname@irgendeinanbieter.iwas haben und zwar bindestriche oder punkte, aber keinesfalls leerzeichen enthalten dürfen. Da müsste relativ schnell ein kleines script geschrieben sein.
so in vb oder so.

oder mal versuchen, iwie einen halbwegs intelligenten texteditor mit regexen zu füttern, dürfte auch gehn.

Ele
0 Punkte
Beantwortet von fanta4all Einsteiger_in (11 Punkte)
Die Textdatei hat folgenden Aufbau:

Text, Text
Text
Text
text@e-mail.de
text
text

Text, Text
Text
Text
text@e-mail.de
text
text

wobei die Textmenge zwischen den E-Mail Adressen varieiert...

@Ele: Ich bin in punkto Programmieren leider nicht so fit, gibt es ein Tool oder etas der gleichen mit dem man Arbeiten könnte...

Beste Grüße....
0 Punkte
Beantwortet von rahi Experte (1.5k Punkte)
Hallo fanta4all,

ich gehe mal davon aus, du willst die E-Mailadressen vielleicht in einer Tabelle speichern (sonst wäre die DB-Gruppe nicht ganz richtig). Ich habe dir mal eine VBA-Prozedur geschrieben, die aus einer Textdatei alle Zeilen liest und die Zeilen mit einer halbwegs validen Adresse in eine zweite Textdatei schreibt. Achtung: Ich habe KEINE Fehlerbehandung eingebaut!
Option Compare Database
Option Explicit


Public Sub emailausgabe()
Dim f As Scripting.FileSystemObject
Dim textin As Scripting.TextStream
Dim textout As Scripting.TextStream
Dim textline As String

Set f = New Scripting.FileSystemObject

Set textin = f.OpenTextFile("d:\text.txt", ForReading)
Set textout = f.OpenTextFile("d:\emailadressen.txt", ForWriting, True)
While Not textin.AtEndOfStream
textline = textin.ReadLine
If textline Like "?*@?*.??*" Then
textout.WriteLine (textline)
'
' hier könntest du die E-Mailadressen auch in einer Tabelle speichern...
'
End If
Wend
textin.Close
textout.Close
Set f = Nothing
End Sub

Du muss nur in VBA im Menüpunkt Extras-->Verweise den Verweis auf "Microsoft Scripting Runtime" aktivieren. Falls du kein MS Access hast, geht das ganze auch mit reinem VBS, also mit Windowsmitteln. Hast du dir so was vorgestellt?

Gruß
Ralf
0 Punkte
Beantwortet von
wenn deine datei sonst keine klammer affen enthält, tut es aucch ein einfacher findstr befehl:

test.txt

Text, Text
Text
Text
text@e-mail.de
text
text

Text, Text
Text
Text
text@e-mail.de
text
text


C:\>findstr @ test.txt
text@e-mail.de
text@e-mail.de
0 Punkte
Beantwortet von
nachtrag:

ich gehe mal davon aus du weißt wie man eine Dos Box öffnet und das ausführt...

ausgabe umleitung ist so möglich:

findstr @ test.txt > ausgabe.txt
...