Avatar billede hundrup Nybegynder
20. september 2001 - 09:07 Der er 8 kommentarer og
1 løsning

random funktion i perl

Jeg har en  stor textfil, hvor jeg skal have en tilfældig fil ud, hver gang jeg sender en forspørgsel.
Hjælp.
Avatar billede cuddles Nybegynder
20. september 2001 - 10:30 #1
Uhm, står der et filnavn på hver linie eller hvad?
Avatar billede hundrup Nybegynder
20. september 2001 - 10:39 #2
undskyld.
det er en tilfældig linie i en textfil
Avatar billede hundrup Nybegynder
20. september 2001 - 10:40 #3
undskyld.
det er en tilfældig linie i en textfil
Avatar billede cuddles Nybegynder
20. september 2001 - 11:12 #4
OK, dette er lidt af et skud:

$tal = rand
for ($i = 1;$i < $tal; $i++)
{
    $line = readline(filehandle)
}
Avatar billede cuddles Nybegynder
20. september 2001 - 11:40 #5
evt. læg:

if not eof()
{
  $line = readline(filehandle)
}

ind i for-løkken.
Avatar billede cuddles Nybegynder
20. september 2001 - 11:42 #6
Du kan evt også, hvis du ved, hvor mange linier, der er i filen lave $tal om således:

$tal = rand antal_linier
Avatar billede thomasledet Nybegynder
20. september 2001 - 12:51 #7
Dette burde gøre det...


#!/usr/bin/perl

srand;

open(TEXTFILE, \"fuldstitiltekstfil\") or die(\"fejl 1\");
@textfile=<TEXTFILE>;
close(TEXTFILE) or die(\"fejl 2\");

$index=rand(@array);
$element=$array[$index];


print \"$element\";
Avatar billede thomasledet Nybegynder
20. september 2001 - 12:52 #8
Hvis det er en meget stor tekst-fil, kan programmet godt tage en smule ram, men dette er nødvendigt, da vi skal vide, hvor mange linier, der er i filen...

held og lykke med det..
Avatar billede thomasledet Nybegynder
21. september 2001 - 07:48 #9
der er desuden også en fejl deri, så vidt jeg kan se... @textfile=<TEXTFILE>; burde have været @array=<TEXTFILE>; ... men det brude være til at overkomme at rette den...:)
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
Kurser inden for grundlæggende programmering

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