Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - [C++] lettura ciclica su file scaricato
Forum - C/C++ - [C++] lettura ciclica su file scaricato

Pagine: [ 1 2 ] Precedente | Prossimo
Avatar
oretovalley (Normal User)
Pro


Messaggi: 109
Iscritto: 12/04/2009

Segnala al moderatore
Postato alle 20:01
Giovedì, 15/10/2009
Ciao a tutti, devo eseguire una lettura ciclica su una pagina in php che scarico continuamente da internet e voglio stampare il valore, adesso il mio file è diviso in due parte un exe che scarica il file e l'altro che lo legge...

Codice sorgente - presumibilmente C#

  1. #include<iostream>
  2. #include<fstream>
  3. using namespace std;
  4.  
  5. int main() {
  6.         ifstream leggi;
  7.         string risposta;
  8.         do {
  9.                 system("receive.exe");         
  10.         leggi.open("ricevi");
  11.                    system("pause");                                                                    
  12.                 leggi >> risposta;     
  13.                 leggi.close();         
  14.                 cout << risposta << endl;
  15.                 system("pause");               
  16.         }while(true);
  17. }



utilizzo questo codice per eseguire l'exe, "receive.exe" che mi scarica la pagina e la mette nella stessa cartella dell'eseguibile e successivamente dovrei leggere quel file e stamparlo, il problema è che il primo valore lo legge e lo stampa perfettamente dal secondo in poi invece non legge più niente ma mi stampa sempre lo stesso valore, ho provato a controllare a mano il file receive.exe ma funziona correttamente xkè preleva valori via via diversi, ora mi chiedo xkè quindi il mio file in C++ non stampa tutti i valori letti ?

PM Quote
Avatar
Matthew (Member)
Expert


Messaggi: 387
Iscritto: 29/01/2007

Segnala al moderatore
Postato alle 6:25
Venerdì, 16/10/2009
Una possibile spiegazione potrebbe essere che il tuo programma "receive.exe" appende solo i valori alla fine del file, senza cancellare quello che c'è prima. In tal modo tu apri e chiudi il file e ogni volta leggi solo il primo valore, che ovviamente resta invariato.

Ultima modifica effettuata da Matthew il 16/10/2009 alle 6:25
PM Quote
Avatar
theprogrammer (Normal User)
Guru^2


Messaggi: 2509
Iscritto: 28/01/2009

Segnala al moderatore
Postato alle 7:21
Venerdì, 16/10/2009
Inserisci una

remove("ricevi");

subito dopo la close.

PM Quote
Avatar
oretovalley (Normal User)
Pro


Messaggi: 109
Iscritto: 12/04/2009

Segnala al moderatore
Postato alle 15:21
Venerdì, 16/10/2009
ho provato cn la remove niente, continua a stamparmi sempre gli stessi valori, inoltre non può aggiungere i valori xkè nel download io scrivo questo codice:

Codice sorgente - presumibilmente C++

  1. #include <windows.h>
  2. #include <fstream>
  3. using namespace std;
  4.  
  5. int main(int argc, char *argv[]){
  6.  
  7.         typedef int * (*URLDownloadToFileA)(void*,char*,char*,DWORD,void*);
  8.         HINSTANCE LibHnd = LoadLibrary("Urlmon.dll");
  9.         URLDownloadToFileA URLDownloadToFile =  (URLDownloadToFileA) GetProcAddress(LibHnd,"URLDownloadToFileA");
  10.         URLDownloadToFile(NULL, "http://www.zackfairsite.altervista.org/tictactoe_online/ricevi.php", "ricevi", NULL, NULL);        
  11. }



PM Quote
Avatar
theprogrammer (Normal User)
Guru^2


Messaggi: 2509
Iscritto: 28/01/2009

Segnala al moderatore
Postato alle 16:05
Venerdì, 16/10/2009
Non ho capito ... e quest'altro codice cosa e' ???

PM Quote
Avatar
Matthew (Member)
Expert


Messaggi: 387
Iscritto: 29/01/2007

Segnala al moderatore
Postato alle 17:46
Venerdì, 16/10/2009
A prima vista sembrerebbe il sorgente del "receive.exe"...

PM Quote
Avatar
oretovalley (Normal User)
Pro


Messaggi: 109
Iscritto: 12/04/2009

Segnala al moderatore
Postato alle 17:56
Venerdì, 16/10/2009
Testo quotato

Postato originariamente da oretovalley:

ho provato cn la remove niente, continua a stamparmi sempre gli stessi valori, inoltre non può aggiungere i valori xkè nel download io scrivo questo codice:

Codice sorgente - presumibilmente C++

  1. #include <windows.h>
  2. #include <fstream>
  3. using namespace std;
  4.  
  5. int main(int argc, char *argv[]){
  6.  
  7.         typedef int * (*URLDownloadToFileA)(void*,char*,char*,DWORD,void*);
  8.         HINSTANCE LibHnd = LoadLibrary("Urlmon.dll");
  9.         URLDownloadToFileA URLDownloadToFile =  (URLDownloadToFileA) GetProcAddress(LibHnd,"URLDownloadToFileA");
  10.         URLDownloadToFile(NULL, "http://www.zackfairsite.altervista.org/tictactoe_online/ricevi.php", "ricevi", NULL, NULL);        
  11. }





questo è il codice del receive.exe come vedi scarica il file e lo mette nella stessa cartella dove è eseguito, nel caso esiste viene sovrascritto, è l'altro file quello che legge deve solamente leggere ciò che viene scaricato da questo file... ma sembra che al posto di leggere ogni volta, legge solo una volta e stampa sempre lo stesso valore...

PM Quote
Avatar
theprogrammer (Normal User)
Guru^2


Messaggi: 2509
Iscritto: 28/01/2009

Segnala al moderatore
Postato alle 20:51
Venerdì, 16/10/2009
Scusa se ti faccio qualche domanda per capire ...

1) Perche' non hai inserito tutto il codice che ti serve in un solo programma?

2) Perche' carichi dinamicamente la URLDownloadToFile al posto di utilizzarla staticamente?

3) La URL che utilizzi e' quella nel codice? Perche' non restituisce nulla ...


PM Quote
Avatar
oretovalley (Normal User)
Pro


Messaggi: 109
Iscritto: 12/04/2009

Segnala al moderatore
Postato alle 21:06
Venerdì, 16/10/2009
Testo quotato

Postato originariamente da theprogrammer:

Scusa se ti faccio qualche domanda per capire ...

1) Perche' non hai inserito tutto il codice che ti serve in un solo programma?

2) Perche' carichi dinamicamente la URLDownloadToFile al posto di utilizzarla staticamente?

3) La URL che utilizzi e' quella nel codice? Perche' non restituisce nulla ...




1) Perchè il codice per scaricare il file necessita delle librerie windows.h, siccome io utilizzando questo codice per un gioco con una modalità online, è il gioco utilizza le allegro.h, il compilatore mi ha segnalato vari problemi di incompatibilità tra le due librerie.

2) Perchè sto facendo un test, successivamente mi serve modificare più volte il link nello stesso file.

3) Io scarico l'intera pagina con il valore stampato a schermo è quello che mi serve leggere. Anche se la pagina non restituisce un download, il codice mi scarica la pagina html, con ciò che viene mostrato a schermo, ciò che serve leggere a me e che legge solo una volta...

PM Quote
Pagine: [ 1 2 ] Precedente | Prossimo