Avatar billede KLS Novice
09. juni 2005 - 19:10 Der er 10 kommentarer og
1 løsning

Internet HTML kilde kode søgning

Det er sikkert mig der er dum,
men jeg har brug for at søge på en hjemmeside efter en bestemt tekst i en tabel og omkring denne tekst er der placeret nogle tabel celler..

Dette betyder at jeg har en tabel der ser sådanne ud :

<tr>
<td>tekst1</td>
<td>tekst2</td>
<td>tekst3</td>
<td>tekst4</td>
</tr>
(siden indeholder ca 800 <tr> </tr> og det er KUN den hvor tekst3 er identisk med min søge tekst.
Det jeg søger på er tekst3, som ikke er ukendt.
men tekst1,tekst2,tekst4 er ukendt både af længde og tekst.

det som jeg gerne vil er at finde tekst3 også herefter tage det som er i tekst1 og tekst2 indtil <tr> og igen fra tekst 3 og til </tr>

Er der nogle der ved om det kan lade sig gøre ?

jeg bruger Microsoft Internet Control (Inet) som componentet hedder.
Avatar billede martin_moth Mester
09. juni 2005 - 22:02 #1
Nu er jeg ikke sikker på jeg fatter præcis hvad du vil søge efter, men uanset hvad det er, vil det kunne lade sig gøre.

Men - den tekst du skal gennemsøge, har du adgang til den - går spørgsmålet kun på at søge efter noget tekst, eller er det også et spørgsmål om at få adgang til HTML-siden?
Avatar billede KLS Novice
09. juni 2005 - 22:09 #2
Det er KUN omkring at udføre søgningen.

Dette er et eksempel :
StrURL = "http://www.eksperten.dk"
Jeg forbinder til hjemmesiden med Inet1.OpenUrl(strURL)

Men det er det med at søge og bruge Instr og Mid$ osv..

så jeg får mit resultat som jeg ønsker det.
Avatar billede martin_moth Mester
10. juni 2005 - 00:14 #3
Så skal du bare forklare betingelserne helt præcis...

Som jeg forstår det, skal du finde noget bestemt tekst mellem en <td> og en </td> - når den er fundet skal de to foregående <td></td> og den efterfølgende <td></td> gemmes i en string. Er det korrekt?

Er du sikker på, at den betingelse altid vil kunne opfyldes - at der er to før og en efter?
Avatar billede martin_moth Mester
10. juni 2005 - 00:15 #4
PS: Hvordan læser du i html-filen (ved ikke meget om inet) - et hele siden i en stor streng, i et array, læses linie for linie (hvordan) eller noget helt andet?
Avatar billede martin_moth Mester
10. juni 2005 - 00:16 #5
Eller henter du siden så der ligger en fil lokalt på din pc som du kan åbne?
Avatar billede KLS Novice
11. juni 2005 - 14:43 #6
Det hele bliver hentet ind i en enkelt streng, som jeg så søger i.

Den side jeg henter er der ca. 3500 linier i så det bliver ikke til et array, det syntes jeg vil give alt for meget arbejde... men ved det ikke ..  hvad du siger, man kunne sagtens lave en split, men jeg skal bare bruge grund reglerne til det med at finde den foregående tekst og den næste tekst, resten kan jeg så selv lave, hvis det er at der er mere eller mindre end de antal celler som jeg snakker om her.
Avatar billede martin_moth Mester
11. juni 2005 - 15:45 #7
Jeg ville nu bruge et array, men det er jo smag og behag.
Med

Mid()
Len()
Instr()
Left()
Right()
Trim()
Ltrim()
Rtrim()
Split()
Instrrev()

kan du lave alle de manipulationer du måtte ønske

Princip for en mulig løsning (forudsat, at spørgsmålet er som jeg har skitseret 10/06-2005 00:14:05)

Find din tekst - det skulle ikke være svært med InStr()
Hvis det så var i et array, med en linie i hver post i arrayet, kunne du jo bare gå et antal poster tilbage.

Når det er en stor string, kan du så bruge instrrev 2 gange (hvor du jo søger på <td>)til at finde den forrige post, med udgangspunkt ved den position hvor du har fundet dit søgeord

Men som sagt - der er jo 1000 måder at gøre det på, og det afhænger jo af hvordan dine data ser ud - om der altid er to <td> før dit søgeord, f.eks.
Avatar billede KLS Novice
11. juni 2005 - 17:21 #8
oki lad os så som udgangs punkt sige at der altid er en formatering som jeg poster, for jeg vil bare så gerne igang med at teste det som jeg er igang med at lave.

Det er faktisk sådan at de fleste gange er der 2 stk <td> før det jeg søger på, og ellers er der en <td> før, så håber du bare kan brygge noget sammen til de 2 x <td> så vil jeg se om jeg kan finde en løsning på det andet.
Avatar billede martin_moth Mester
13. juni 2005 - 14:33 #9
Har ikke tiden - men følg ovenstående fremgangsmåde, og læs om de enkelte funktioner først (f.eks. InStrRev)
Avatar billede KLS Novice
13. juni 2005 - 17:06 #10
Er der så en der gider at hjælpe mig med noget kode, så det er at jeg kan komme igang med dette ?

Jeg har ikke tid til at skulle sidde og læse det hele igennem, for at kunne lave denne funktion.

Der må være nogle der har noget kode stump eller noget til at om ikke andet så bare sætte mig igang med det.
Avatar billede KLS Novice
15. juni 2005 - 11:39 #11
Her sker der ikke mere og jeg valgte at bruge et array til at dele min side op, med hvor efter jeg så brugte count til at tælle frem til det søgte og tilbage til de andre informationer.
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