Avatar billede Slettet bruger
20. november 2003 - 11:52 Der er 6 kommentarer

Vise data fra web i Delphi

Hej.
Jeg vil via en gennem delphi kalde en ASP fil der fx, returnerer nyeste 5 overskrifter fra et givent site.
Udtræk fra .asp siden kunne fx se sådan ud
Overskrift1 : Hejsa
Overskrift2 : Goddag
Overskrift3 : Imorgen
osv osv...
Disse overskrifter vil jeg så gerne have lagt ind i et delphiprogram, fx i en TListView.

Jeg eftersøger lidt kode til dette. Og ikke links til andre eksperten svar.
Avatar billede thesurfer Nybegynder
20. november 2003 - 12:24 #1
Hvad med en ide til hvordan du kan gøre det?

Din asp fil kalder du, som du gør normalt fra nettet.
Derefter downloader du den html kode/fil der bliver genereret.
Og til sidst splitter du den op i de overskrifter du vil ha'..
Avatar billede Slettet bruger
20. november 2003 - 12:31 #2
Ja, det er også det jeg vil. Men det er meget lang tid siden jeg har programmeret i delphi, så jeg ved ikke hvordan jeg skal gøre dette :(
Avatar billede kallesen01 Nybegynder
20. november 2003 - 12:36 #3
Det er faktisk ikke så svært som det lyder men prøv at brug den funktion der heder ClearHTML!

Jeg har brugt den med megen succes :)

/Kallesen
Avatar billede Slettet bruger
20. november 2003 - 12:38 #4
Ok. Hvor kan jeg så finde den funktion?
Avatar billede kallesen01 Nybegynder
20. november 2003 - 13:37 #5
hehe, oki, så ved du ikke det helt store om Delphi's og internet sammen :D jeg giver lige en lille forsmag på hvordan man gør dette :D

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, URLmon, StdCtrls;

type
  TForm1 = class(TForm)
    Label1: TLabel;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

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


function ClearForHTML(SourceFile: string; Line: Integer): string;
label redo;
label done;
var
  handler: string;
  stringlist:Tstringlist;
begin
  If fileexists(Sourcefile) then
  begin
    stringlist := Tstringlist.create;
      try
        stringlist.LoadFromFile(Sourcefile);
        handler := stringlist[Line];
redo:
            delete(handler,pos('<', handler),pos('>', handler));
            if not pos('<', handler) >= pos('>', handler) then goto done;
            if pos('<', handler) > 0 then goto redo; //hvis der stadig er < i teksten så hoppes der til redo: !
done:
      finally
      stringlist.Free;
      Result := handler;
      end;
  end;
end;
{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
  DownloadFile('http://www.tips.dk/spil/lotto/indhold/vindertal_lotto.html','c:\temp.tmp');
  label1.Caption := Copy(ClearForHtml('c:\temp.tmp', 52),4, Length(ClearForHtml('c:\temp.tmp', 52))); //Smider vindertallene ind i en label (fjerner 3 tegn som bare er tabulatorer
end;

end.

I denne sammenhæg har jeg valg dansktipstjeneste's lotto side....

man se på det, er der noget galt så skriv skal nok hjælpe...

/Kallesen
Avatar billede thesurfer Nybegynder
18. december 2003 - 04:51 #6
Dette spørgsmål mangler input.
Det kan f.eks. være at spørgeren mangler at acceptere/afvise svar/komme med feedback, eller af en svarer mangler at lægge et svar/komme med feedback.
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