Avatar billede mik789 Nybegynder
08. oktober 2002 - 21:05 Der er 16 kommentarer og
1 løsning

generere ordliste

Hvordan genererer man en ordliste af en tekstfil, dvs. en liste der indeholder hvert af ordene i tekstfilen uden gentagelser. Jeg stillede samme sp. i MySql (da det er den database jeg bruger) men der var ingen svar. Dog må det her da være standard procedure i arbejde med databaser.
Avatar billede erikjacobsen Ekspert
08. oktober 2002 - 21:07 #1
Det er meget nemt i Unix (Linux). Kører du det?
Avatar billede mik789 Nybegynder
08. oktober 2002 - 21:08 #2
nej, WinXP
Avatar billede lalledenby Nybegynder
08. oktober 2002 - 21:10 #3
jeg har et program der kan gøre det. Er det det du leder efter?
Avatar billede mik789 Nybegynder
08. oktober 2002 - 21:10 #4
lalledenby> hvad som helst bare det virker ;-)
Avatar billede erikjacobsen Ekspert
08. oktober 2002 - 21:13 #5
Du har heller ikke Perl installeret på din WinXP ?
Avatar billede mik789 Nybegynder
08. oktober 2002 - 21:14 #6
erikjacobsen> nej desværre.
Avatar billede lalledenby Nybegynder
08. oktober 2002 - 21:18 #7
jeg har sendt den til din mail... :P
Avatar billede mik789 Nybegynder
08. oktober 2002 - 21:19 #8
stærkt!
Avatar billede mik789 Nybegynder
08. oktober 2002 - 21:30 #9
lalledenby> jeg er vist nødt til at have en smule instruktion. hvad gør jeg med filen (pp.com)? Jeg har forsøgt bare at køre den, men det virker ikke.
Avatar billede mik789 Nybegynder
08. oktober 2002 - 21:43 #10
lalledenby> OK jeg fandt ud at køre den i Dos prompten. Men den laver kun en ren word-split af teksten, dvs. den nøjes ikke med hvert ord én gang. + den udelader danske bogstaver (æ, ø, å). Hvordan får jeg den i det mindste til at nøjes med hvert ord én gang i listen?
Avatar billede mik789 Nybegynder
08. oktober 2002 - 21:52 #11
så vidt jeg kan se erstatter programmet blot mellemrum med ny linje, og det er ikke det jeg har brug for. Jeg skal have noget der skriver en liste over tekstfilens ord, men uden at gentage dem.
Avatar billede erikjacobsen Ekspert
08. oktober 2002 - 22:30 #12
Det fylder ca. så meget i Perl:

while (<>) {
  split /[^a-zA-ZæøåÆØÅ]+/;
  while ($a=pop(@_)) {
    $tab{$a}++;
  }
}

foreach $k (sort (keys %tab)) {
  print "$k\n";
}
Avatar billede mik789 Nybegynder
08. oktober 2002 - 22:36 #13
erikjacobsen> jeg kender ikke Perl, men ved da at det er beslægtet med både php og javascript. Jeg tænkte også at jeg med både php og javascript måtte kunne lave en funtion der kan gøre det. Den skal splitte teksten ved hvert mellem rum eller linjeskift, lave et array af alle ord der således er splittet ad, liste første forekomst af et ord og så slette alle andre. Kan du forklare mig nærmere hvad dit Perl script gør, så kan jeg måske selv oversætte til javascript eller php. Hver af udtrykkene (while, split, foreach og print) er jo kendte nok. Hvad gør (<>), hvad betyder pop(@_), hvad betyder keys %tab)?
Avatar billede erikjacobsen Ekspert
08. oktober 2002 - 22:42 #14
Det gør stort set du siger den skal. Det var blot for at inspirere dig
til måske at lære noget nyt, og måske få installeret et ordentligt
værktøj på din maskine (vink: www.activestate.com)
Avatar billede mik789 Nybegynder
08. oktober 2002 - 22:48 #15
jeg er i fuld gang med at lære nyt: både php og MySql og vil godt først prøve om jeg enten kan klare mig med det eller skyde genvej ved en anden løsning
Avatar billede mik789 Nybegynder
09. oktober 2002 - 16:22 #16
jeg lukker her, men vil godt have et svar også fra erikjacobsen, som jeg, ganske rigtigt, lærte noget nyt af ;-)
Avatar billede mik789 Nybegynder
12. oktober 2002 - 00:01 #17
jeg fandt ud af noget med en kombination af unix og perl. Det ser sådan ud:

cat tekstfil | perl -Mlocale -pe "s/[^-'\s[:alpha]]//g; s/ /\n/g;" | sort -fu > nyTekstfil

Det virker perfekt og er lynhurtigt, selv med lange tekster
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester