Avatar billede stalle Nybegynder
25. januar 2002 - 11:32 Der er 3 kommentarer og
1 løsning

Hente streng fra fil, placeret på en url

Hvordan kan jeg få mit program til at tage indholdet af en fil, beliggende på en webserver, og ligge det ind i en streng!?
Altså skal jeg hente indholdet via en url.

mvp
Stalle
Avatar billede stoney Nybegynder
25. januar 2002 - 11:34 #1
Mener du en text fil ?

Stoney
Avatar billede stalle Nybegynder
25. januar 2002 - 11:40 #2
Jep. En ganske almindelig text-fil
Avatar billede professoren Nybegynder
25. januar 2002 - 11:42 #3
En streng er alphanumerisk data, der kan ligge i en array, en text datatype
, database post, el. lign. Jeg går ude fra, at du har tilladelse at hente filen fra serveren og at det ikke ligger bag en firewall? Ligger strengen i en database, en web-form, en html-side, el. hvad??
Avatar billede stoney Nybegynder
25. januar 2002 - 11:42 #4
tilføj wininet i uses

Nedenstående eks indlæser den i en memo, du kan selv ændre det til en streng

drop en memo1,edit1,button1

function DownloadFile(const Url: string): string;
var
  NetHandle: HINTERNET;
  UrlHandle: HINTERNET;
  Buffer: array[0..1024] of Char;
  BytesRead: dWord;
begin
  Result := '';
  NetHandle := InternetOpen('Delphi 5.x', INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0);

  if Assigned(NetHandle) then
  begin
    UrlHandle := InternetOpenUrl(NetHandle, PChar(Url), nil, 0, INTERNET_FLAG_RELOAD, 0);

    if Assigned(UrlHandle) then
      { UrlHandle valid? Proceed with download }
    begin
      FillChar(Buffer, SizeOf(Buffer), 0);
      repeat
        Result := Result + Buffer;
        FillChar(Buffer, SizeOf(Buffer), 0);
        InternetReadFile(UrlHandle, @Buffer, SizeOf(Buffer), BytesRead);
      until BytesRead = 0;
      InternetCloseHandle(UrlHandle);
    end
    else
      { UrlHandle is not valid. Raise an exception. }
      raise Exception.CreateFmt('Cannot open URL %s', [Url]);

    InternetCloseHandle(NetHandle);
  end
  else
    { NetHandle is not valid. Raise an exception }
    raise Exception.Create('Unable to initialize Wininet');
end;


procedure TForm1.Button1Click(Sender: TObject);
var
s : string;
begin
memo1.clear;
s := copy(edit1.text,1,7);
if  s = 'http://' then
Memo1.Lines.Text := DownloadFile(edit1.text)
else
Memo1.Lines.Text := DownloadFile('http://' + edit1.text)
end;

Stoney
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