Muss es VB sein (willst du es programmieren oder halt nur ein Ergebnis? Sonst könnte ich schnell ein Skript schreiben ;) )
Um das nochmal genau nachzufragen: du willst also nur:
vorname+nachname@mail
und keine
nachname+vorname@mail kombos?
Druckbare Version
Muss es VB sein (willst du es programmieren oder halt nur ein Ergebnis? Sonst könnte ich schnell ein Skript schreiben ;) )
Um das nochmal genau nachzufragen: du willst also nur:
vorname+nachname@mail
und keine
nachname+vorname@mail kombos?
hm...müsste dann theoratisch ja nur die txt tauschen...;) aber sicherlich wäre es schon besser das es dies automatisch macht ?
in was "könnstest" du es denn coden, fragen wir mal so ...oder haste sowas schon ?
In WLML, die Sprache eignet sich perfekt dafür (es soll zwar ursprünglich Passwordliste generieren, kann aber auch für jegliche Kombobildung genutzt werden ;) )
http://free-hack.com/showthread.php?t=41008
da du es ja nicht lernen musst, reicht es, den Interpereter herunterzuladen und zu starten (start.bat) ;).
WLML Script (einfach in eine TXT Datei im WLML Ordner kopieren (wo schon die ganzen Beispiele stehen) und zu WLML umbenennen) :
oder in kurz:Code:define nachnamen= file "namen.txt"
define vornamen= file "vornamen.txt"
define szeichen=".+-_"
define mailer= file "mailer.txt"
password=vornamen+szeichen+nachnamen+'@'+mailer
dann per "compile 'myscript.wlml' " compilieren und per "genlist 'listname.txt'" die Liste generieren.Code:define szeichen=".+-_"
password=file 'vornamen.txt'+file 'namen.txt'+szeichen+'@'+file 'mailer.txt'
Getestet mit:
müsste also 4(Namen)*3(Vornamne)*3(mailer)*4(Sonderzeichen)= 144 Möglichkeiten ergebenCode:Namen:
meier
geier
schulz
niemand
Vornamen:
dieter
detlef
jana
mailer:
web.de
freenet.de
hotmail.com
Ausgabe:
Code:|: compile "mailaddis.wlml"
|: test
dieter.meier@web.de
dieter.meier@freenet.de
dieter.meier@hotmail.com
dieter.geier@web.de
dieter.geier@freenet.de
|: genlist "mail.text"
144 Woerter generiert
benötigte Zeit: 0.00 S
super klasse, erheblich kürzer als ich es mir dachte :)
vielen vielen dank :)
Ist doch ganz einfach.
Vornamen: Nachnahmen:
1 3
2 4
3 5
Jetzt musst du jeden Einrag in Zeile 1 mit jedem aus der 2 Kombinieren und Aufschreiben, dann haste alle Kombis.
For each... ;)
Naja, dafür ist die Performance unter aller Sau.Zitat:
erheblich kürzer
Testweise mit den von dir angegebenen Werten laufen lassen (900 Namen,800 Vornamen,10 mailer,4 Sonderzeichen) -
28 868 040 Woerter generiert
benötigte Zeit: 1570.13 Sekunden
(ist aber auch fast 800MB große Liste - und das auf einem alten Laptop im Hintergrundmodus :))
bei 1000der Werten sind es sowieso 40 Mio Adressen - wird also ~50 Minuten dauern. Allerdings spart man sich wiedrum die Programmier&Testzeit für ein "richtiges" Programm :)
Naja, die Frage wurde ja eigendlich schon geklärt aber hier nochmal den vb.net Code:
Diese Sub einfügen und dann per Button oder so aufrufen.Code:Public Sub Permutation()
Dim Datei1 As Array = IO.File.ReadAllLines("C:\Datei1.txt")
Dim Datei2 As Array = IO.File.ReadAllLines("C:\Datei2.txt")
Dim Datei3 As Array = IO.File.ReadAllLines("C:\Datei3.txt")
Dim Datei4 As Array = IO.File.ReadAllLines("C:\Datei4.txt")
Dim Ergebnis(Datei1.Length - 1) As String
For i As Integer = 0 To Datei1.Length - 1
Ergebnis(i) = Datei1(i) & Datei2(i) & Datei3(i) & Datei4(i)
Next
IO.File.WriteAllLines("C:\Alles.txt", Ergebnis)
End Sub
Hab es getestet und es hat geklappt.
lg Ich
@Dordan: dein Code erstellt aber keine Permutation ;). Sondern fügt einfach die eingelesenen Wörter zusammen.
Wenn man also:
Namen:
meier
schulz
und Vornamen:
dieter
detlef
hat, steht in der "Alles.txt" nur
dietermeier
detlefschulz
gefragt sind aber:
dietermeier
dieterschult
detlefmeier
detlefschult
(bei mehreren Textdateien entsprechend auch mehr Kombos) ;)
Achsooo meint er das :o
Sorry...
Ich habe die Frage falsch verstanden :/ *schäm*
lg Ich