Avatar billede azs Nybegynder
20. december 2002 - 21:49 Der er 5 kommentarer og
1 løsning

Søge i html

Hvordan kan jeg søge efter noget tekst i et html doc og så få href=".." ud fra <a> tags.

fx. jeg søger efter Maxnes og så skal jeg få dens url tilbage som er http://www.url.com/item.asp?c=200452

sådan her kan det html se ud uden font tables osv
<html><head><title></title></head><body>
<a href="http://www.url.com/item.asp?c=200452">Maxnes</a>
<a href="http://www.url.com/item.asp?c=201469">Maxen</a>
</body></html>
Avatar billede janbb Juniormester
21. december 2002 - 14:01 #1
Mig bekendt kan man slet ikke søge i html-tekst i et delphi-program.Derfor laves der søgemaskiner i programmeringssprog, der baserer sig på at takle internetbrugerfladen.Der skal derfor laves en transformering til et andet format af teksten inden du kan lave en søgning.
Avatar billede hatecaps Nybegynder
21. december 2002 - 16:13 #2
hvis vi går ud fra at du har teksten fra html-dokumentet i en eller anden form for tstrings, så er det kun et spørgsmål om lidt "håndarbejde". Løb teksten igennem efter forekomster af <a eller <A, for hver af dem du finder løber du teksten fra den position igennem til du finder </a> eller </A>. Smid hele linket i en tstringlist. Nu har du alle links i dokumentet sorteret fra. Derefter bygger du en procedure der kan splitte et link op i f.eks. href, target og caption (dine tre variabler). Når du ved hvad der skal søges efter løber du din stringlist igennem, splitter hvert link op, kigger på om søgeteksten befinder sig i din caption variable, og hvis ja, spytter du caption variablen ud.

ta da... :-)

ha' det godt
hatecaps
Avatar billede azs Nybegynder
21. december 2002 - 20:56 #3
janbb -> man kan søge i alt tekst i delphi hvis man ved hvordan. det der er mit problem er fordi jeg ik lige er en hej til det =)

hatecaps -> det lyder meget rigtigt men hvordan? jeg er nemlig ik en hej til det med at lave "søge-pocedure" og bruge pos osv.
måske du kunne lave et eksemple?=)

jeg vil godt give flere point for det, hvis du vil ha det =)

/Kenneth
Avatar billede hatecaps Nybegynder
21. december 2002 - 21:59 #4
hmm,

hvis vi siger at du er hentet html-dokumentet ind i memo1, og du vil ha' de link der har en tekst med det søger ud i listbox1 så:

procedure TForm1.soeg(soegtekst :string);
var sl : tstringlist;
    i, j, p1, p2, p3 : integer;
    href, linktekst : string;
begin
  sl := tstringlist.create;
  try
    sl.clear;
    for i := 0 to (length(memo1.text)-length(soegtekst)-14) do
    begin
      if uppercase(copy(memo1.text,i,2)) = '<A' then
      begin
        p1 := i;
        p2 := pos('</A>',uppercase(copy(memo1.text,i,length(memo1.text)-i-10)));
        if p2 > 0 then
        begin
          sl.add(copy(memo1.text,p1,p2));
        end;
      end;
    end;
    // det var alle linksene, de er nu i sl
    // nu skal vi igennem sl, dele linket op i href og linktekst variablerne
    // hvis soegetekst er i linktekst smider vi href inf i listbox1
  finally
    sl.free;
  end;
end;

det skulle kunne sætte dig i gang, kig evt. i hjælpen for pos o.s.v.

ha'det godt
hatecaps
Avatar billede azs Nybegynder
22. december 2002 - 17:04 #5
tak tak hatecaps det virker nu =)

men lav lige et svar så du kan få dine point ;)
Avatar billede hatecaps Nybegynder
22. december 2002 - 20:36 #6
okej dokej :-)
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