{title}

Ich habe eine Textdatei mit Hunderten von E-Mail-Adressen (durch Semikolons getrennt) - nein, NICHT für Spam! Ich möchte doppelte E-Mail-Adressen in der Datei entfernen. Wenn ich also eine Nachricht an die Empfänger auf meiner Liste sende, ärgere ich niemanden, indem ich sie zwei- oder dreimal sende. Alle Vorschläge wären willkommen, da ich alles ausprobiert habe, einschließlich eines Skripts von MS Technet, das ich nicht ausführen konnte.

Suchen und Ersetzen? (wird nach einer Weile alt)
Flamme

Danke für die Antwort Flame.
Leider bin ich ein alter Mann und werde wahrscheinlich nicht lange genug in der Nähe sein, um manuell zu suchen und zu ersetzen.
Alle anderen, automatisierten Ansätze sind herzlich willkommen!

Automatisierung steht an:
Code:
Const ForReading = 1
Const ForWriting = 2
Dim arrList ()
Set objFSO = CreateObject ("Scripting.FileSystemObject")
Set objInFile = objFSO.OpenTextFile ("PathToInputFile", ForReading)
Set objOutFile = objFSO.OpenTextFile ("PathToOutputFile", ForWriting, True)
'Extrahieren Sie jede E-Mail-Adresse aus der Zeile
'
Tun, bis objInFile.AtEndOfStream
strName = objInFile.ReadLine
arrName = Split (strName, ";")
Für i = 0 bis UBound (arrName) - 1
j = j + 1
ReDim Preserve arrList (j)
arrList (j) = arrName (i)
Nächster
Schleife
'Beseitigen Sie die Dups
'
For i = 1 To UBound (arrList)
Für j = i + 1 To UBound (arrList)
Wenn arrList (i) = arrList (j) Dann
arrList (j)
End If
Nächster
Nächster
'Schreibe auf, was noch in der Reihe übrig ist
'
For i = 1 to UBound (arrList)
Wenn arrList (i) <> "" Dann
objOutFile.Writeline arrList (i)
End If
Nächster
objInFile.Close
objOutFile.Close
WScript.Quit
Ändern Sie PathToInputFile und PathToOutputFile nach Ihren Wünschen. Führen Sie das Skript aus dem Verzeichnis, in dem Sie es gespeichert haben, wie folgt aus: cscript scriptname.vbs
Bitte poste nicht die gleiche Frage auf verschiedenen Foren. Es verwirrt die Eingeborenen sehr.
Hoffe das hilft.

Seitenwinde,
Vielen Dank für Ihre freundliche Unterstützung. Ich werde das ausprobieren und berichten. Tut mir leid wegen des Crossposts, aber ich war mir nicht sicher, ob es einen DOS-Fix oder einen Windows-Fix gibt - ich würde es auch nehmen !!
Mögen die Götter auf jeden Fall über dich und die anderen lächeln, die so hilfreich waren, um zu antworten.
Ich bin immer sehr mit Computerproblemen konfrontiert, daher werde ich jetzt, da ich diese Site gefunden habe, mit Sicherheit regelmäßig hier sein - und dabei helfen, wenn ich glaube, dass meine Eingabe einen gewissen Wert hat. Nichts wie Bluescreens, um Ihr Wissen wachsen zu lassen !!

Sidewinder - bitte helfen Sie!
Es tut mir so leid, dass ich Sie noch einmal gestört habe, aber ich habe dieses Skript viele Male versucht zu konfogieren und kann es nicht dazu bringen, die Zeile zu überschreiten, in der ich den Pfad und den Dateinamen einfügen soll. Glaubst du, du könntest mich pflegen, indem du die folgenden zwei Pfade für die Eingabe- und Ausgabedateien einfügst, je nachdem, wo sie hingehören und im entsprechenden Format, damit ich sie einfach kopieren und vollständig einfügen und ausführen kann?
c: ewsletter-duplicates.txt
c: ewsletterNOduplicates.txt
Ich erröte, als ich das schreibe, aber ich habe noch nie etwas mit Makros oder Skripten zu tun gehabt und bin überhaupt nicht mit der Syntax vertraut.

Ich weiß, dass ich kein Sidewinder bin, aber das funktioniert für mich.
Code: Set objFSO = CreateObject ("Scripting.FileSystemObject")
Set objInFile = objFSO.OpenTextFile ("c: ewsletter-duplicates.txt", ForReading)
Set objOutFile = objFSO.OpenTextFile ("c: ewsletterNOduplicates.txt", ForWriting, True)
'Extrahieren Sie jede E-Mail-Adresse aus der Zeile
'
Tun, bis objInFile.AtEndOfStream
strName = objInFile.ReadLine
arrName = Split (strName, ";")
Für i = 0 bis UBound (arrName) - 1
j = j + 1
ReDim Preserve arrList (j)
arrList (j) = arrName (i)
Nächster
Schleife
'Beseitigen Sie die Dups
'
For i = 1 To UBound (arrList)
Für j = i + 1 To UBound (arrList)
Wenn arrList (i) = arrList (j) Dann
arrList (j)
End If
Nächster
Nächster
'Schreibe auf, was noch in der Reihe übrig ist
'
For i = 1 to UBound (arrList)
Wenn arrList (i) <> "" Dann
objOutFile.Writeline arrList (i)
End If
Nächster
objInFile.Close
objOutFile.Close
WScript.Quit
Beide Dateien müssen existieren. Die zweite Datei sollte leer sein.

Danke für die Hilfe Gussery,
Ich habe es kopiert und direkt eingefügt und es mit beiden Textdateien im entsprechenden Director ausgeführt - eine natürlich leer.
Es kommt zu folgenden Fehlern
Zeile 2 Char 1
Ungültiger Prozeduraufruf oder Argument

Paul,
Möglicherweise haben Sie beim Ausschneiden und Einfügen einige Zeilen übersehen.
Code:
Const ForReading = 1
Const ForWriting = 2
Dim arrList ()
Set objFSO = CreateObject ("Scripting.FileSystemObject")
Set objInFile = objFSO.OpenTextFile ("c: ewsletter-duplicates.txt", ForReading)
Set objOutFile = objFSO.OpenTextFile ("c: ewsletterNOduplicates.txt", ForWriting, True)
'Extrahieren Sie jede E-Mail-Adresse aus der Zeile
'
Tun, bis objInFile.AtEndOfStream
strName = objInFile.ReadLine
arrName = Split (strName, ";")
Für i = 0 bis UBound (arrName) - 1
j = j + 1
ReDim Preserve arrList (j)
arrList (j) = arrName (i)
Nächster
Schleife
'Beseitigen Sie die Dups
'
For i = 1 To UBound (arrList)
Für j = i + 1 To UBound (arrList)
Wenn arrList (i) = arrList (j) Dann
arrList (j)
End If
Nächster
Nächster
'Schreibe auf, was noch in der Reihe übrig ist
'
For i = 1 to UBound (arrList)
Wenn arrList (i) <> "" Dann
objOutFile.Writeline arrList (i)
End If
Nächster
objInFile.Close
objOutFile.Close
WScript.Quit
Außerdem sollte die Ausgabedatei vor dem Ausführen des Skripts nicht vorhanden sein.
Viel Glück.

Schöne Grüße!
So nah ... Das Skript zum Generieren der Liste von E-Mails ohne Dupes war erfolgreich. Was bleibt, ist das Wiedereinsetzen; Trennzeichen und um die Liste zu einer durchgehenden Zeile zu machen, wie es das Original war (die neu erzeugte Liste hat eine E-Mail-Adresse in einer einzelnen Zeile). Mein Anliegen bei letzterem ist es, es in den Ausblick zu bringen, was bei allen Zeilenumbrüchen schwierig sein kann. Aber der Semikolon-Separator muss natürlich da sein.
Ich könnte die Übungen anhand von Wörtern usw. ausprobieren, aber da ich diese Übung von Zeit zu Zeit wiederholen muss, wäre es sicher schön, das Skript dazu zu bringen, die ganze Arbeit zu erledigen.
Vielen Dank!

Bitte schön:
Code:
Const ForReading = 1
Const ForWriting = 2
Dim arrList ()
Set objFSO = CreateObject ("Scripting.FileSystemObject")
Set objInFile = objFSO.OpenTextFile ("c: ewsletter-duplicates.txt", ForReading)
Set objOutFile = objFSO.OpenTextFile ("c: ewsletterNOduplicates.txt", ForWriting, True)
'Extrahieren Sie jede E-Mail-Adresse aus der Zeile
'
Tun, bis objInFile.AtEndOfStream
strName = objInFile.ReadLine
arrName = Split (strName, ";")
Für i = 0 bis UBound (arrName) - 1
j = j + 1
ReDim Preserve arrList (j)
arrList (j) = arrName (i) & ";"
Nächster
Schleife
'Beseitigen Sie die Dups
'
For i = 1 To UBound (arrList)
Für j = i + 1 To UBound (arrList)
Wenn arrList (i) = arrList (j) Dann
arrList (j)
End If
Nächster
Nächster
'Schreibe auf, was im Array als eine Ausgabezeile übrig bleibt
'
For i = 1 to UBound (arrList)
Wenn arrList (i) <> "" Dann
OneLine = OneLine & arrList (i)
End If
Nächster
objOutFile.Writeline OneLine
objInFile.Close
objOutFile.Close
WScript.Quit
Nur neugierig, aber warum nicht eine Gruppe in Ihrem E-Mail-Programm erstellen und dann die Namen der Gruppe hinzufügen?
Viel Glück.

Arbeitete wie ein Zauber - vielen Dank. Ich bin SEHR beeindruckt von dem Fachwissen und der detaillierten und wertvollen Hilfe, die Sie alle hier leisten - und das kostenlos. Mögen die Götter zu euch allen freundlich sein! Und bitte haben Sie etwas Geduld, da ich noch einige weitere Fragen zu stellen habe, über die ich Ihre Gedanken in Bezug auf andere Themen wertschätzen würde.
Ich kann sehen, dass es ein großer Vorteil sein kann, sich in Makros und Skripten zurechtzufinden - besonders bei sich wiederholenden Aufgaben. Sie scheinen jedoch so komplex zu sein, dass es eine Menge Zeit in Anspruch nimmt, das Fachwissen zu entwickeln, über das Sie und Gussery verfügen.
Und ich werde sie zu einer Gruppe hinzufügen, wenn ich kann, aber mein Outlook-Adressbuch funktioniert seit einiger Zeit nicht mehr und ich hatte keine Zeit, es zu untersuchen. Selbst die Aktualisierung von Office auf 2003 hat dies nicht behoben.

Bitte helfen Sie mir bei der Auswahl von Internet-Hosting

Hallo allerseits, es tut mir leid, dass ich so schnell wie möglich einen neuen Webhosting-Anbieter gefunden habe, aber ich brauche Ihre Hilfe, da mein aktueller Host (bluehost.com) mich rausschmeißt und sagt, dass Ihr Konto viel Server verwendet Ressourcen ', aber meine Website erhält nur etwa 200 Besucher pro Tag und meine Datenträgernutzung beträgt 1500 MB (vielleicht gefällt ihnen das nicht?) Was würden Sie für ein zuverlässiges Webhosting empfehlen? Wo hosten Sie Ihre Websites? Bist du mit deinen Providern zufrieden? Ich überprüfe jetzt www.hosting24.com/ - Angebot sieht sehr gut aus, aber ist es real, dass sie unbegrenzten Speicherplatz zur Verfügung stellen können? Ich habe sie wegen dieser Frage kontaktiert und sie sagen etwas: "Heutzutage kosten 500 GB Festplattenlaufwerke nur 30 US-Dollar pro Monat, wenn wir also irgendwann keinen Speicherplatz mehr haben Wir werden einfach ein neues 500 GB Festplattenlaufwerk mit nahezu null Kosten hinzufügen und Sie können ohne Probleme mit dem Hochladen fortfahren. ".Was halten Sie davon? Vielleicht haben sich die Dinge in den letzten 4 Jahren geändert? Bei meinem derzeitigen Anbieter bekomme ich nur 2 GB Festplattenspeicher für 10 USD pro Monat. Ideen und Vorschläge werden sehr geschätzt.

Ich habe benutzt www.lunarpages.com vorher und mit ihnen zufrieden gewesen. Sie haben gute Preise und gute Angebote.

1and1.com ; Sie sind ziemlich gut.

Beliebte Beiträge