Ergebnis 1 bis 10 von 10
  1. #1
    W32.Lovgate
    Registriert seit
    01.07.2007
    Beiträge
    354

    Standard Perl Wordlist Generator

    Das habe ich gerade geschrieben, bei Fragen könnt ihr euch gerne melden.

    Hier nochmal im Pastebin:http://pastebin.com/yWDVZT0k

    Code:
    #! /usr/bin/perl 
    
    use warnings;
    
    print "How many characters to use: ";
    chomp($how_many = <STDIN>);
    
    print "Which characters to use: ";
    chomp($characters = <STDIN>);
    
    sub doIt {
        my $i;
        if($_[1] eq 0) {
            print $_[0]."\n";
        }
        else {
            for($i=0; $i le length($characters)-1; $i++) {
                doIt($_[0].substr($characters, $i, 1), $_[1]-1);
            }
        }
    }
    
    doIt("", $how_many);

  2. #2
    (*(void (*)()) sc)(); Avatar von Cheese
    Registriert seit
    25.12.2008
    Beiträge
    332

    Standard

    rekursiver algo

    echt nice geschrieben, wie sinnvoll das ganze jetz ist ist mir egal, aber der code ist nice.
    [myCheese.org]

    << n0psl3d >>

  3. #3
    Swaggy Dude Avatar von mbeezy
    Registriert seit
    29.03.2007
    Beiträge
    2.112

    Standard

    Die Option, das ganze in einer Art Wordlist abzuspeichern wäre noch eine nette Funktion. So rennt das Script im Terminal und das wars.
    #ichwurdezurückgehaltendamals #sheesh #burrr #scurrr #nohomo #turnup #eaglegang #byrdcall #glogangornogang #duschkabinenposse #codeincobracrew

  4. #4
    W32.Lovgate
    Registriert seit
    01.07.2007
    Beiträge
    354

    Standard

    Freut mich, dass es euch gefällt.
    Hier das ganze noch einmal, doch jetzt kann man es auch in einer Datei abspeichern:

    Pastebin: http://pastebin.com/GhEab6KH

    Code:
    #! /usr/bin/perl 
    
    use warnings;
    
    print "How many characters to use: ";
    chomp($how_many = <STDIN>);
    
    print "Which characters to use: ";
    chomp($characters = <STDIN>);
    
    print "Enter filename to save to:";
    chomp($filename = <STDIN>);
    
    open $fh, '>', $filename;
    
    sub doIt {
        my $i;
        if($_[1] eq 0) {
            print $fh $_[0]."\n";
        }
        else {
            for($i=0; $i le length($characters)-1; $i++) {
                doIt($_[0].substr($characters, $i, 1), $_[1]-1);
            }
        }
    }
    
    doIt("", $how_many);
    
    close($fh);
    Ich werde eventuell morgen das ganze mit Tk verpacken, einfach um bisschen Tk zu lernen.

  5. #5
    Bad Times Virus
    Registriert seit
    04.08.2007
    Beiträge
    646

    Standard

    ~
    Geändert von nemo (08.01.2016 um 09:21 Uhr)


  6. #6
    W32.Lovgate
    Registriert seit
    01.07.2007
    Beiträge
    354

    Standard

    Danke, so sieht das wirklich schon besser aus.
    Eigentlich hatte ich dieses Programm in C geschrieben (abends im Bett auf den Netbook, und WLAN funzt nicht), und nun wollte ich es nach Perl portieren, um eben den Umgang mit Perl zu üben.
    Ich denke ich werde das jetzt mal öfters tun.

    Aber gibt es eigentlich noch andere Methoden, eine Wordlist zu generieren?

  7. #7
    print&lt;&gt;=~y/0-9//,$/ Avatar von 0x30
    Registriert seit
    01.02.2010
    Beiträge
    468

    Standard

    Code:
    my ($word, $chars, $num, $fh) = ($_[0], $_[1], $_[2], $_[3]);
    wird zu
    Code:
    my ($word, $chars, $num, $fh) = @_;
    Code:
    sub remove_duplicates {
      my @array = split('', $_[0]);
      my $chars = '';
      
      foreach (@array) {
        if ($chars !~ /$_/) {
          $chars .= $_;
        }
      }
      
      return $chars;
    }
    wird zu
    Code:
    sub remove_duplicates {
      my @dub = split('', shift);
      my %tmp = map{$_, 1) @array;
      my @uni = keys(%tmp);
      return @uni;
    }
    ungetestet.
    Geändert von 0x30 (21.04.2010 um 12:52 Uhr)

  8. #8

  9. #9
    print&lt;&gt;=~y/0-9//,$/ Avatar von 0x30
    Registriert seit
    01.02.2010
    Beiträge
    468

    Standard

    Du weisst schon das C != C++ ist oder?
    Code:
    $_=<>;map$-+=$_,/./g;print$-,$/
    +0x60

  10. #10
    W32.Lovgate
    Registriert seit
    01.07.2007
    Beiträge
    354

    Standard

    Klar weiss ich das, aber ich code kein reines C++, da ist viel C mit dabei, wobei die Übergänge sowieso fliessend sind.
    Dann deklarieren wir es halt als C++, weil man es mit einem C++-Compiler kompilieren muss.

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •