Avatar billede safl Nybegynder
27. september 2002 - 14:04 Der er 10 kommentarer og
1 løsning

Http fetch debug

Hello!

Nedenstående kode vil ikke compileres, håber i har en løsning.
Det skal siges at det er godt 2 år siden jeg sidst lavede noget i Delphi så fejlen kan snildt skyldes en eller anden lame fejl :) Her er koden:

procedure TSrvList_Main.But_GetListClick(Sender: TObject);
    const
      BufferSize = 1024;
      URL = 'http://www.safl.dk/test.php';
    var
      hSession, hURL: HInternet;
      Buffer: Array[0..Pred(BufferSize)] of Byte;
      BufferLength: DWORD;
      f: File;
      OutputFile: String;
    begin

      hSession := InternetOpen('ServerlistClient: http://www.safl.dk/',INTERNET_OPEN_TYPE_PRECONFIG,nil,nil,0);
      try
        hURL := InternetOpenURL(hSession, PChar(URL), nil,0,0,0);
        try
          Assing(f, OutputFile);
          Rewrite(f,1);
          repeat
            InternetReadFile(hURL, @Buffer, BufferSize, BufferLength);
            Status.Panels[0].Text :=  Status.Panels[0].Text + '.';
            BlockWrite(OutputFile, Buffer, BufferLength)
          until BufferLength = 0;
          Close(OutputFile);
          Status.Panels[0].Text :=  Status.Panels[0].Text + 'WE GOT IT!';
        finally
          InternetCloseHandle(hURL)
        end
      finally
        InternetCloseHandle(hSession)
      end
    end;

På forhånd tak :)
Avatar billede esoulman Nybegynder
27. september 2002 - 14:05 #1
Skriv fejl meddelelsen.
Avatar billede safl Nybegynder
27. september 2002 - 14:27 #2
[Error] main.pas(52): Incompatible types: 'TPersistent' and 'file'
[Error] main.pas(57): Incompatible types
[Error] main.pas(59) Too many actual parameters
[Fatal Error] serverlist.dpr(5): Could not compile used unit 'main.pas'
Avatar billede safl Nybegynder
27. september 2002 - 14:30 #3
Dette er linie 52: "Assign(f, OutputFile);"

Så har du en ide om hvor fejlene kommer fra :)
Avatar billede safl Nybegynder
27. september 2002 - 14:42 #4
Sagen er den at jeg har prøvet at skrive programmet om fra konsol-baseret, sourcecoden til konsol-versionen er her: http://www.safl.dk/delphi/fetch.txt
Men jeg kan ikke få det til at virke! Please help me!
Avatar billede zimp Nybegynder
27. september 2002 - 15:43 #5
Assign skal være AssignFile og Close skal være CloseFile, det er ihvertfald to fejl.

Disse to funktioner bliver brugt til andre ting i object Pascal (Delphi), end i den originale Pascal, derfor har de skiftet navne.
Avatar billede safl Nybegynder
27. september 2002 - 16:37 #6
Ok det hjalp væsentligt, nu fortæller debuggeren ikke nogen fejl. Dør crasher programmet når man forsøger at køre proceduren. Den stopper ved linien:
"BlockWrite(f, Buffer, BufferLength)"
Avatar billede safl Nybegynder
27. september 2002 - 16:40 #7
nogen der har en forklaring?
Avatar billede zimp Nybegynder
27. september 2002 - 16:40 #8
Du har ikke sat OutputFile til et filnavn. Giver det ikke allerede fejl i Rewrite? Og giver compileren dig ikke en warning, "warning: OutputFile might not have been initialized"?
Avatar billede safl Nybegynder
27. september 2002 - 16:47 #9
Kanon så virker det :) Takker for hjælpen. Zimp skriv et svar så får du nogle point.
Avatar billede zimp Nybegynder
27. september 2002 - 16:49 #10
Husk at checke dine warnings ;) Delphi har nogle meget hjælpsomme warnings ind imellem
Avatar billede safl Nybegynder
27. september 2002 - 16:52 #11
OK cool, den fortalte nemlig ikke noget i debuggeren.
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