Oppure

Loading
15/10/09 18:01
oretovalley
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...

#include<iostream>
#include<fstream>
using namespace std;

int main() {
	ifstream leggi;
	string risposta;
	do {
	   	system("receive.exe");		
        leggi.open("ricevi");
		   system("pause"); 		    							
		leggi >> risposta;	
		leggi.close();		
		cout << risposta << endl;
	   	system("pause");	   	
	}while(true);
}


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 ?
aaa
16/10/09 4:25
Matthew
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 16/10/09 4:25
aaa
16/10/09 5:21
theprogrammer
Inserisci una

remove("ricevi";);

subito dopo la close.
aaa
16/10/09 13:21
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:

#include <windows.h>
#include <fstream>
using namespace std;

int main(int argc, char *argv[]){

	typedef int * (*URLDownloadToFileA)(void*,char*,char*,DWORD,void*); 
	HINSTANCE LibHnd = LoadLibrary("Urlmon.dll");
	URLDownloadToFileA URLDownloadToFile =  (URLDownloadToFileA) GetProcAddress(LibHnd,"URLDownloadToFileA");
	URLDownloadToFile(NULL, "http://www.zackfairsite.altervista.org/tictactoe_online/ricevi.php", "ricevi", NULL, NULL);         
}

aaa
16/10/09 14:05
theprogrammer
Non ho capito ... e quest'altro codice cosa e' ???
aaa
16/10/09 15:46
Matthew
A prima vista sembrerebbe il sorgente del "receive.exe"...
aaa
16/10/09 15:56
oretovalley
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:

#include <windows.h>
#include <fstream>
using namespace std;

int main(int argc, char *argv[]){

	typedef int * (*URLDownloadToFileA)(void*,char*,char*,DWORD,void*); 
	HINSTANCE LibHnd = LoadLibrary("Urlmon.dll");
	URLDownloadToFileA URLDownloadToFile =  (URLDownloadToFileA) GetProcAddress(LibHnd,"URLDownloadToFileA");
	URLDownloadToFile(NULL, "http://www.zackfairsite.altervista.org/tictactoe_online/ricevi.php", "ricevi", NULL, NULL);         
}



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...
aaa
16/10/09 18:51
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 ...

aaa