Indice del forum Olimpo Informatico
I Forum di Zeus News
Leggi la newsletter gratuita - Attiva il Menu compatto
 
 FAQFAQ   CercaCerca   Lista utentiLista utenti   GruppiGruppi   RegistratiRegistrati 
 ProfiloProfilo   Messaggi privatiMessaggi privati   Log inLog in 

    Newsletter RSS Facebook Twitter Contatti Ricerca
[pascal] scaricare file da rete
Nuovo argomento   Rispondi    Indice del forum -> Programmazione
Precedente :: Successivo  
Autore Messaggio
elena1990
Mortale devoto
Mortale devoto


Registrato: 20/06/11 21:07
Messaggi: 5

MessaggioInviato: 20 Giu 2011 21:20    Oggetto: [pascal] scaricare file da rete Rispondi citando

Ciao a tutti

pongo subito il mio problema.

Da un po' di giorni sto cercando di capire come scrivere all'interno di un programma un pezzo di codice che si occupa di scaricare un file da rete.
Purtroppo cercando "scaricare file pascal" o con termini analoghi non sono riuscita a trovare niente di niente....

Se qualcuno volesse darmi qualche consiglio, oltre a linkarmi una qualche guida dove possa imparare, vorrei fare la seguente cosa, se possibile.

Il pezzo di programma che scarica il file va associato ad un button, come posso fare se voglio che scarichi, ad esempio, il programma Firefox dalla pagina https://www.mozilla.com/it/firefox/

Il problema sta nel fatto che quando uscirà la nuova versione, cambierà il link, quello attuale è http://download.mozilla.org/?product=firefox-4.0.1&os=win&lang=it, ma domani dovrebbe uscire la nuova versione, e quindi suppongo sarà http://download.mozilla.org/?product=firefox-5.0.0&os=win&lang=it o qualcosa di analogo, però a questo punto faccio prima a fare il lavoro a mano (scaricare il browser mozilla) al posto di dire al programma di farlo se devo occuparmi di inserire i link esatti.

Servirebbe quindi qualcosa che si metta a provare le possibili combinazioni per i link finchè non trova il più nuovo, facendo le possibili combinazioni del numero di versione, ma
1) non saprei bene come scriverlo in pascal
2) non saprei come far decidere al programma se ha trovato l'ultima versione o meno, visto che tra una versione e l'altra possono esserci dei "gap", ad esempio non c'è firefox 4.1, 4.2 ...

Spero che qualcuno sia in grado di darmi una mano ;)
Top
Profilo Invia messaggio privato
SverX
Supervisor Macchinisti
Supervisor Macchinisti


Registrato: 25/03/02 11:16
Messaggi: 11559
Residenza: Tokelau

MessaggioInviato: 21 Giu 2011 10:44    Oggetto: Rispondi citando

Non so come puoi scaricare un file dal Pascal, però per verificare quale è la versione più aggiornata da scaricare puoi fare in un modo simile a quello che usa Firefox stesso: richiama una specifica URL (che non conosco ma che si può ricavare) e verifica se quella corrente è uguale a quella che proviene da quella URL. Se no con questa costruisce il link...
Top
Profilo Invia messaggio privato HomePage
elena1990
Mortale devoto
Mortale devoto


Registrato: 20/06/11 21:07
Messaggi: 5

MessaggioInviato: 21 Giu 2011 15:02    Oggetto: Rispondi citando

[quote="SverX"]Non so come puoi scaricare un file dal Pascal, però per verificare quale è la versione più aggiornata da scaricare puoi fare in un modo simile a quello che usa Firefox stesso: richiama una specifica URL (che non conosco ma che si può ricavare) e verifica se quella corrente è uguale a quella che proviene da quella URL. Se no con questa costruisce il link...[/quote]

Ah, sinceramente non sapevo che firefox facesse così, in questo caso va bene, e ti ringrazio, però purtroppo temo che non tutti i programmi facciano così (ad esempio openoffice, thunderbird, lazarus...)

Sapresti come cercare l'URL, perchè ovviame "url download firefox" riporta al sito, come anche se cerco informazioni sugli aggiornamenti di firefox dicono che gli fa in automatico....
Top
Profilo Invia messaggio privato
SverX
Supervisor Macchinisti
Supervisor Macchinisti


Registrato: 25/03/02 11:16
Messaggi: 11559
Residenza: Tokelau

MessaggioInviato: 21 Giu 2011 16:33    Oggetto: Rispondi citando

ho fatto una prova con wireshark catturando i pacchetti e nella ultima versione Firefox non richiama più una URL ma apre una chiamata TSL ad un server apposta, quindi non si riesce a leggere niente in chiaro... allora mi sa che devi fare un altro giro: potresti scaricare la pagina http://www.mozilla.com/it/firefox/ e cercare il link che inizia per http://download.mozilla.org/?product=firefox ... te lo copi tutto e dovresti essere a posto... spero Embarassed
Top
Profilo Invia messaggio privato HomePage
elena1990
Mortale devoto
Mortale devoto


Registrato: 20/06/11 21:07
Messaggi: 5

MessaggioInviato: 21 Giu 2011 21:16    Oggetto: Rispondi citando

[quote="SverX"]ho fatto una prova con wireshark catturando i pacchetti e nella ultima versione Firefox non richiama più una URL ma apre una chiamata TSL ad un server apposta, quindi non si riesce a leggere niente in chiaro... allora mi sa che devi fare un altro giro: potresti scaricare la pagina http://www.mozilla.com/it/firefox/ e cercare il link che inizia per http://download.mozilla.org/?product=firefox ... te lo copi tutto e dovresti essere a posto... spero :oops:[/quote]

Potrebbe funzionare, ma scaricare una pagina per cercare un solo link mi sembra uno spreco di banda inutile (oltre al fatto che non saprei come farlo in pascal...)

Vi è però un altro problema, cioè quello di scaricare l'eseguibile per windows e non ad esempio mac o linux, dal momento che viene specificato dopo il numero di versione l'os....

edit:
All'infuori adesso di come estrapolare il link giusto nel caso di firefox, sai dove posso trovare una guida che mi permette di fare un pezzo di codice che, dato un url, scarichi il programma?
Purtroppo in rete non ne trovo molte, ho qualche libro con me, ma sono stravecchi e non trattano queste cose...
Top
Profilo Invia messaggio privato
SverX
Supervisor Macchinisti
Supervisor Macchinisti


Registrato: 25/03/02 11:16
Messaggi: 11559
Residenza: Tokelau

MessaggioInviato: 22 Giu 2011 09:46    Oggetto: Rispondi citando

non programmo in Pascal da tanti anni, non saprei dirti... se non hai librerie che ti permettono di fare chiamate http guarda se hai almeno librerie che ti permettono di aprire una connessione TCP, poi al massimo provi a costruirti 'a mano' l'header http per la richiesta... non è difficilissimo alla fine...
Se invece non hai funzioni neanche per aprire un socket TCP allora ho paura non sia una cosa trattabile per niente Confused

edit: questo articolo sembra interessante a riguardo...

Citazione:
TCP sockets in Pascal are generally hard to use; Free Pascal doesn't come with any high-level socket libraries by default, only a relatively low-level socket library. Some external libraries are available to make using sockets with Pascal easier, and one of these libraries is Synapse. Synapse is an easy-to-use socket library for Pascal, and in this blog post I'll try to show how to use Synapse to connect to a remote server and send/receive data from it

Firstly, you'll want to download the stable release of Synapse, and place them somewhere. At the time of writing, the latest Synapse version is release number 38. Once you've downloaded it, extract the files somewhere (it doesn't matter where you extract them to, as long as you remember the directory name. I'd suggest to create a directory for all your Free Pascal library code). Next, we need to edit the config file, so that Free Pascal can find these libraries. Open your Free Pascal configuration file (on Linux, this is at/etc/fpc.cfg. On Windows, this should be in the directory you installed Free Pascal to).
Top
Profilo Invia messaggio privato HomePage
elena1990
Mortale devoto
Mortale devoto


Registrato: 20/06/11 21:07
Messaggi: 5

MessaggioInviato: 22 Giu 2011 16:24    Oggetto: Rispondi citando

[quote="SverX"]non programmo in Pascal da tanti anni, non saprei dirti... se non hai librerie che ti permettono di fare chiamate http guarda se hai almeno librerie che ti permettono di aprire una connessione TCP, poi al massimo provi a costruirti 'a mano' l'header http per la richiesta... non è difficilissimo alla fine...
Se invece non hai funzioni neanche per aprire un socket TCP allora ho paura non sia una cosa trattabile per niente :?

edit: [url=http://forum.zeusnews.com/link/59315]questo articolo[/url] sembra interessante a riguardo...

[quote]TCP sockets in Pascal are generally hard to use; Free Pascal doesn't come with any high-level socket libraries by default, only a relatively low-level socket library. Some external libraries are available to make using sockets with Pascal easier, and one of these libraries is Synapse. Synapse is an easy-to-use socket library for Pascal, and in this blog post I'll try to show how to use Synapse to connect to a remote server and send/receive data from it

Firstly, you'll want to download the stable release of Synapse, and place them somewhere. At the time of writing, the latest Synapse version is release number 38. Once you've downloaded it, extract the files somewhere (it doesn't matter where you extract them to, as long as you remember the directory name. I'd suggest to create a directory for all your Free Pascal library code). Next, we need to edit the config file, so that Free Pascal can find these libraries. Open your Free Pascal configuration file (on Linux, this is at/etc/fpc.cfg. On Windows, this should be in the directory you installed Free Pascal to).[/quote][/quote]


Ok, gia dalle prime righe mi sembra di capire che sia difficile....
Potrei allora usare uno strumento esterno come wget...
Top
Profilo Invia messaggio privato
SverX
Supervisor Macchinisti
Supervisor Macchinisti


Registrato: 25/03/02 11:16
Messaggi: 11559
Residenza: Tokelau

MessaggioInviato: 22 Giu 2011 16:32    Oggetto: Rispondi citando

elena1990 ha scritto:
Ok, gia dalle prime righe mi sembra di capire che sia difficile....
Potrei allora usare uno strumento esterno come wget...


sì, se riesci dal tuo programma a lanciarlo con i parametri che desideri e ricevere l'output del programma direi che è una buona idea Smile
Top
Profilo Invia messaggio privato HomePage
elena1990
Mortale devoto
Mortale devoto


Registrato: 20/06/11 21:07
Messaggi: 5

MessaggioInviato: 22 Giu 2011 16:47    Oggetto: Rispondi citando

[quote="SverX"]
sì, se riesci dal tuo programma a lanciarlo con i parametri che desideri e ricevere l'output del programma direi che è una buona idea :)[/quote]

Ok, allora in questi giorni faccio un poco di prove prima di ricominciare a chiedere ;)

Questione "puramente" etica.

Wget, suppongo, non ho controllato approfonditamente, è rilasciato sotto licenza gnu.
Quindi, se io rilascio il mio programma, posso creare un pacchetto che oltre il mio programma contenga wget stesso (ovviamente con tanto di link alla pagina ufficiale, nomi degli autori e via dicendo)?

edit:
premetto che non ho ancora provato, però mi ero segnata da qualche parte come lanciare un 2° programma, ma so gia che ai tempi non avevo minimamente pensato a richiedere l'output....dove posso cercare informazioni in merito?
Top
Profilo Invia messaggio privato
SverX
Supervisor Macchinisti
Supervisor Macchinisti


Registrato: 25/03/02 11:16
Messaggi: 11559
Residenza: Tokelau

MessaggioInviato: 23 Giu 2011 11:11    Oggetto: Rispondi citando

elena1990 ha scritto:
Wget, suppongo, non ho controllato approfonditamente, è rilasciato sotto licenza gnu.
Quindi, se io rilascio il mio programma, posso creare un pacchetto che oltre il mio programma contenga wget stesso (ovviamente con tanto di link alla pagina ufficiale, nomi degli autori e via dicendo)?


http://www.gnu.org/software/wget/ GPL , leggi come usare la licenza nel tuo software qui.

Ciao
Top
Profilo Invia messaggio privato HomePage
mozart2
Mortale adepto
Mortale adepto


Registrato: 14/12/11 22:45
Messaggi: 30

MessaggioInviato: 16 Dic 2011 23:43    Oggetto: Rispondi citando

ciao, mi attacco a questa discussione perchè vorrei trattare lo stesso argomento.

Anche a me la soluzione migliore sembra essere wget, ma purtroppo non sono riuscito a trovare una versione per windows (l'ultima disponibile è del 2008) e io volevo fare una applicazione portable (nel senso che in una cartella doveva esserci il mio programma e wget) senza spargere file per windows.

Temo che quindi l'unica cosa che posso fare è scaricare wget e compilarlo, ma non sono capace.

Leggendo in giro sono arrivato a synapse (link) ma purtroppo non riesco a installarlo/ lazarus mi da errore se aggiungo HTTPSend tra gli uses..., ho cercato di fare quello scritto qua (link), ma non riesco a ritrovare i menu (io ho lazarus in italiano) che vengono elencati...

elena, te come hai risolto? (se hai risolto..)
Top
Profilo Invia messaggio privato
SverX
Supervisor Macchinisti
Supervisor Macchinisti


Registrato: 25/03/02 11:16
Messaggi: 11559
Residenza: Tokelau

MessaggioInviato: 19 Dic 2011 09:48    Oggetto: Rispondi citando

Wget aggiornato (almeno abbastanza... spero Smile )
Top
Profilo Invia messaggio privato HomePage
mozart2
Mortale adepto
Mortale adepto


Registrato: 14/12/11 22:45
Messaggi: 30

MessaggioInviato: 20 Dic 2011 08:18    Oggetto: Rispondi citando

beh, ora wget è alla versione 1.13 (http://ftp.gnu.org/gnu/wget/), quella che mi hai indicato è la 1.11, dalla 1.12 segnalano problemi, quindi direi che va bene Wink

Ma la pagina linkatami di chi è?
Un po' per diffidenza avrei preferito scaricare wget da una fonta 'ufficiale'
Top
Profilo Invia messaggio privato
SverX
Supervisor Macchinisti
Supervisor Macchinisti


Registrato: 25/03/02 11:16
Messaggi: 11559
Residenza: Tokelau

MessaggioInviato: 20 Dic 2011 09:22    Oggetto: Rispondi citando

la pagina è di qualcuno che ha fatto il port su Windows, dato che WGet in realtà è una utility GNU... Confused
Top
Profilo Invia messaggio privato HomePage
mozart2
Mortale adepto
Mortale adepto


Registrato: 14/12/11 22:45
Messaggi: 30

MessaggioInviato: 20 Dic 2011 15:43    Oggetto: Rispondi citando

e non esiste, "built-in" in windows, qualcosa di analogo per wget? La mia applicazione è pensata solo per sistemi windows (xp, vista, 7)
Top
Profilo Invia messaggio privato
SverX
Supervisor Macchinisti
Supervisor Macchinisti


Registrato: 25/03/02 11:16
Messaggi: 11559
Residenza: Tokelau

MessaggioInviato: 20 Dic 2011 16:41    Oggetto: Rispondi

per il resto leggi cosa si diceva in questo stesso topic... di più non so, non uso più il Pascal da tanti tanti anni (purtroppo...)
Top
Profilo Invia messaggio privato HomePage
Mostra prima i messaggi di:   
Nuovo argomento   Rispondi    Indice del forum -> Programmazione Tutti i fusi orari sono GMT + 1 ora
Pagina 1 di 1

 
Vai a:  
Non puoi inserire nuovi argomenti
Non puoi rispondere a nessun argomento
Non puoi modificare i tuoi messaggi
Non puoi cancellare i tuoi messaggi
Non puoi votare nei sondaggi