[Delphi] PHP file met refresh laden in Memo1

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Atmoz
  • Registratie: Juli 2001
  • Laatst online: 19-09 11:32

Atmoz

Techno!!

Topicstarter
Sinds vorige week krijg ik op school Delphi bij programmeren. Maar omdat ik thuis altijd met Visual Basic werk ben ik bang dat ik in de war kom doordat ik 2 (ofja eigenlijk meer) talen door elkaar gebruik.

Hierdoor ben ik voor mijn thuis projecten ook maar aan Delphi begonnen, en heb ik VB aan de kant gezet. Maarja nu kom ik natuurlijk allemaal problemen tegen doordat ik Delphi nog niet zo goed snap/ken. Een probleem wat ik nu heb is dit:

Ik wil graag een file op internet ophalen en de inhoud ervan in Memo1 zetten. Dit lukt allemaal goed, totdat ik een PHP file (met refresh script) ga inladen. Een gewone *.txt file lukt perfect, die krijg ik mooi in mijn Memo1, maar zodra ik de file die ik uiteindelijk wil inladen (een PHP file) dan lukt dat niet.

Het gaat zich om deze file: http://www.name2serve.com/playlist2.php
Dit is van een Belgisch radio station die de plaat wat ze draaien online laat zien. Ik wilde dus iets maken dat hij de plaatnaam inleest in Memo1 en vandaaruit een PIC16F628 aanstuurt welke weer een hd44780 LCD aanstuurt zodat de plaatnaam op het LCD komt ;)

Het enigste wat ik dus moet weten is hoe ik die PHP file (met refresh) kan inladen.

Heeft iemand dit al eens gedaan?

P.S. ik gebruik TIdHTTP met deze code:

code:
1
Memo1.Text := IdHttp1.Get('http://www.name2serve.com/playlist2.php');

Acties:
  • 0 Henk 'm!

  • Monga
  • Registratie: Mei 2002
  • Laatst online: 21:52
Kan je preciezer aangeven wat er mis gaat? Krijg je excepties, allemaal troep in je memo, of gebeurt er helemaal niets na de Get?

Acties:
  • 0 Henk 'm!

  • Atmoz
  • Registratie: Juli 2001
  • Laatst online: 19-09 11:32

Atmoz

Techno!!

Topicstarter
Monga schreef op 11 februari 2004 @ 20:14:
Kan je preciezer aangeven wat er mis gaat? Krijg je excepties, allemaal troep in je memo, of gebeurt er helemaal niets na de Get?
Sorry voor mijn onduidelijkheid.

Ik krijg zowieso geen info in de Memo1, en het programma "freest".
Op een andere site heeft iemand me aangeraden om TIDAntiFreeze op mijn form te zetten om het "freesen" tegen te gaan.

Iemand vertelde me ook dit:
Zoals ik zie duurt het vrij lang voordat de pagina klaar is met laden (eeuwig?), dus je Get zal heel lang duren voordat het klaar is. Je PHP bevat een foutje of opzettelijke bug zodat de pagina nooit laar is met laden. In je IE zie je alvast het deel dat al wel verzonden is. Ik weet niet of je bij TIdHTTP al kan zien wat er alvast gedownload is, maar iig niet met de Get functie die je nu gebruikt.
en erna iemand:
Als je de source opent, zie je dat het script een aantal malen
<!-- -->
stuurt, totdat het huidige nummer afgelopen is en dan opnieuw de nummers schrijft.
Dus het ligt waarschijnlijk aan dat refresh script, want een andere willekeurige PHP kan ik wel inlezen.

  • BoomSmurf
  • Registratie: Maart 2003
  • Laatst online: 13-06 16:50

BoomSmurf

Am-Ende!

Wat ik begrijp van wat je hierboven zelf zegt, en de kennis van Indy 'uit het hoofdje' zit het als volgt:

De pagina is nooit klaar, maar blijft altijd draaien en zal zodra er een nieuw nummer is die ook outputten. Het is meer een soort van stream dus.

Je moet dus een event gebruiken dat wanneer er data binnenkomt je deze meteen kan lezen. Naar ik me herinner is dat event OnData of OnDataAvailable of zo. Wat je dus doet is als volgs:

- Gebruik gewoon deze Get zoals je al deed
- Lees de huidige datastream uit in het OnData event
- Als je je informatie hebt, verbreek de connectie

Let hierbij erop dat het zo kan zijn dat het event alleen het huidige chunkje teruggeeft, dus dat je die bij de vorige chunk moet 'optellen' en dat je misschien de buffergrootte moet verkleinen/buffering uit moet zetten om op de goeie momenten de goeie chunks te krijgen.

Gebruik een timer voor het 'refreshen'.

Zoiets is het iig allemaal ongeveer, zoals ik al meldde, het is uit het hoofdje en het is al weer een tijdje terug dat ik me met Indy bemoeid heb :)

Succes

[ Voor 34% gewijzigd door BoomSmurf op 12-02-2004 05:01 ]