Avatar billede jekk Nybegynder
20. september 2002 - 21:22 Der er 15 kommentarer

Hent HTML-dokument til memo1.text d.v.s. sidens tekst-indhold

jeg har prøvet http://exp.dk/spm/256058, som anvender webbrowser1.document,
MEN resultatet er HTML-koden - jeg ønsker sidens tekstindhold tilgængelig i memo1.text -

hvordan gør man det ?

jeg har eksperimenteret med (jvnf. eksemplet i ovenstående spørgsmålslink)
DOM.Body.OuterHTML (som giver HTML-koden),
jeg troede så at det kunne være DOM.Body.InnerHTML - men det var det ikke !

help ...
Avatar billede dkn Nybegynder
20. september 2002 - 21:35 #1
hvis du ønsker teksten i html dokumentet, skal du vel bare parse html koden.

Men jeg er ikke helt sikker på hvad du mener.
Avatar billede jekk Nybegynder
20. september 2002 - 22:59 #2
jeg vil have sidens data, som de bliver vist i browseren - altså IKKE html-koden med tags og det der begvedliggende (Vis kode) ...


iøvrigt ved jeg ikke hvordan man parser ...
Avatar billede dkn Nybegynder
20. september 2002 - 23:23 #3
vil du bare vise en webside i dit program?
Avatar billede jekk Nybegynder
20. september 2002 - 23:38 #4
ja, men således at jeg kan "scanne" siden for dens tekst-indhold, derfor skal den havne i et memo-felt, som jeg efterfølgende kan undersøge for indhold...

dit eksempel med memo1.text := DOM.Body.OuterHTML - giver "Vis kode" det ønsker jeg ikke !

hvis den side jeg vil hente indholder grafik, hvad de fleste gør - så ved jeg godt, at jeg mister det i et memo-felt - det er OK !
Avatar billede jekk Nybegynder
20. september 2002 - 23:42 #5
med DOM := WebBrowser1.Document - får jeg netop siden - komplet - og det gør heller ikke noget (inkl. grafik), hvis jeg bare vidste hvordan jeg kan undersøge DOM for tekst-indhold...
så "sparede jeg for at flytte siden over i memo1.text -

håber du forstår ...
Avatar billede dkn Nybegynder
20. september 2002 - 23:57 #6
ok men hvis du har alt teksten (body) så er det tekst som bliver vist på siden også i det...
Det er svært at få det ud helt rent. Men i bedste fald kan man fjerne alle tags som er i teksten. Dette ville efterlade teksten.
Avatar billede jekk Nybegynder
21. september 2002 - 00:10 #7
vil det sige, at man IKKE kan komme udenom "tags" (altså indmaden i en web-side) ! ?

jeg troede og håbede på, at der var en instruktion a la memo1.text := DOM.Body.OuterHTML, som gav mig den tekst, som en almindelig internet surfer, normalt ser - han ser jeg normalt ikke "Vis kode" med tags og den slags !

i min konkrete situation, skal jeg åbne en web-side, der er opbygget, som en tabel på flere tusinde linier - fra denne tabel, som den bliver vist i browseren, vil jeg linie for linie have fat i dens data og arbejde videre med i mit program ...

men er det virkelig rigtigt, at man ikke kan gemme en web-side i et memo-felt ! ?
Avatar billede janbb Juniormester
21. september 2002 - 09:56 #8
procedure TForm1.Button1Click(Sender: TObject);
begin
memo1.Lines.LoadFromFile(listview1.Selected.Caption + '.htm');
end;

Jeg vil langtfra sige jeg forstår hvorfor eller iøvrigt gøre mig kodeklog, men nylig i et listwievspm. var der een (af de "skrappe", der lagde et eks ud til download, der havde den effekt du beskriver.
Har "leget" lidt med det eksempel - men hvergang jeg prøver at lave lidt om eller bygge det ind i andre programmer eller for den sags skyld eksportere det til en anden delphiversion: forsvinder "effekten".
Avatar billede cms Nybegynder
21. september 2002 - 12:07 #9
Kan du ikke blot bruge DOM.Body.innerText ?
Avatar billede cms Nybegynder
21. september 2002 - 12:21 #10
Alternativt kan du bruge følgende:

function GetBrowserText(Browser: TWebBrowser): String;
var
  Doc: OleVariant;
begin
  try
    Doc := Browser.OleObject;
    Doc.document.execCommand('SelectAll');
    Result := Doc.document.selection.createRange().text;
    Doc.document.selection.empty();
  except
    Result := '';
  end;
end;
Avatar billede jekk Nybegynder
21. september 2002 - 13:21 #11
Kan du ikke blot bruge DOM.Body.innerText ?

kender den ikke - MEN den virker, som jeg ønsker - tak.
Avatar billede cms Nybegynder
21. september 2002 - 15:11 #12
:)
Avatar billede hermandsen Juniormester
11. november 2002 - 10:47 #13
Kan du ikke prøve det her:

function DownloadFile(SourceFile, DestFile: string): Boolean;
begin
  try
    Result := UrlDownloadToFile(nil, PChar(SourceFile), PChar(DestFile), 0, nil) = 0;
  except
    Result := False;
  end;
end;

Og så bagefter åbne filen i en memo eller noget?
Avatar billede cms Nybegynder
14. november 2002 - 18:17 #14
hermandsen, tsk(!) han ville jo ikke have html-koden :o)
Avatar billede hermandsen Juniormester
15. november 2002 - 08:00 #15
>>cms
Sådan er det åbenbart når man lige er stået op! :)

Han kunne jo eventuelt også bruge min kode, fjerne alle tags og at tage sig af det! :)

Nå, men jeg tror bare jeg tager mig en times ekstra søvn så!
Hygger! ;)
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