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.
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.
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 =)
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.
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.