Avatar billede linder Nybegynder
22. september 2000 - 09:39 Der er 9 kommentarer og
1 løsning

Søge på del af streng

Hejsa kloge hoveder...
Jeg skal søge i en fil, som er sat op som følger:
felt1|felt2|felt3|felt4
data1|data2|data3|data4
elft1|elft2|elft3|elft4
osv...

Så laver jeg en side med en søgebox på, og hvis jeg f.eks. søger på el, så skal den komme frem til at linie 1 og 3 matcher.
og søger jeg på da, linie 2.

er det simpelt?
- nogen der har noget jeg kan bruge?
/Morten
Avatar billede breum Nybegynder
22. september 2000 - 10:11 #1
Sjovt nok skal jeg lave et kursus om netop det i morgen.

Mit kursusmateriale ligger på http://kursus.virtualave.net/ikke-en-manual.htm
Avatar billede breum Nybegynder
22. september 2000 - 10:13 #2
#!/usr/local/bin/perl
require \"cgi-lib.pl\";
&ReadParse(*input);
print \"Content-type: text/html\\n\\n\";
print <<SLUTUDSKRIFT;
<html>
<head>
<title>Dette er en demoside</title>
</head>
<body>

<h1>Kategorien der ønskes er: $input{\'kategori\'}</h1>
SLUTUDSKRIFT

open (PRINTFILE, \"indexfile.txt\");
@printfilelines =  <PRINTFILE>;
close (PRINTFILE);
$skilletegn=\"%%==%%\";

foreach $line (@printfilelines)
    {
    ($titel,$url,$beskrivelse,$kategori) = split(/$skilletegn/,$line);

if ($kategori =~ /$input{\'kategori\'}/i)
    {

print <<SLUTUDSKRIFT;
    <a href=\"$url\"><b>$titel</b></a>
SLUTUDSKRIFT


    print \" -  $beskrivelse<br><br>\";

    }




    }
Avatar billede breum Nybegynder
22. september 2000 - 10:15 #3
http://kursus.virtualave.net/testside.html
Her kan du også se kildeteksten til løsningsforslagene.



Avatar billede linder Nybegynder
22. september 2000 - 11:17 #4
Her tror jeg, at vi går lidt forbi hinanden... for hvad nu hvis værdien jeg leder efter ikke er i feltet kategori, men i feltet url?

så får jeg det jo ikke frem?
Avatar billede breum Nybegynder
22. september 2000 - 14:39 #5
scriptet skal jo rettes lidt til:

if ($kategori =~ /$input{\'kategori\'}/i)
rettes til
if ($line =~ /$input{\'kategori\'}/i)

så får du det uanset felt

Avatar billede breum Nybegynder
22. september 2000 - 14:43 #6
$skilletegn=\"%%==%%\";

skal jo også ændres du bruger jo | som skilletegn

Men jeg troede bare du manglede et script at arbejde udfra??????
Derfor mente jeg at mit script var godt fordi det er stillet forståeligt op, det kan gøres bedre og kortere, men som sagt jeg troede du også gerne ville forstå det, derfor postede jeg heller ikke kun scriptet, men også Urlen til en simpel forklaring
Avatar billede linder Nybegynder
22. september 2000 - 14:57 #7
Ved godt, at det skal ændres til mit skilletegn...
Men, nu jeg tænker over det, så har du egentlig fortalt, hvad jeg skal bruge...

så jeg takker.

/Morten
Avatar billede breum Nybegynder
22. september 2000 - 15:18 #8
Glad for at kunne hjælpe ;-)
Avatar billede breum Nybegynder
25. september 2000 - 15:14 #9
p?
Avatar billede breum Nybegynder
27. september 2000 - 22:15 #10
Takker ;-)
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