Salve a tutti, ho scritto questo programma in c++ (di prova) per scaricare una pagina HTML da un sito, e successivamente per effettuare il download di un immagine.
Problema: da' quel che mi sono studiato, il sorgente è corretto sintatticamente, molto probabilmente è un errore delle librerie non presenti in Dev C++, sapete dirmi dove posso scaricarne di equivalenti, o... come usare equivalenti funzioni di download?
codice:
#include <iostream.h>
#include <Windows.h>
#include <cstdio>
#include <stdio.h>
#pragma comment(lib, "urlmon.lib")
#define l 9999
int main(){
FILE *fp;
char link[l];
char nomefile[l]="temp.zh";
char netURL[l];
system("color A");
system("title Netlog Image Grabber");
cout<<"Inserisci l'url della pagina di netlog nella quale vuoi trovare il link dell'immagine.\n";
cin.getline(netURL,l);
HRESULT result;
cout<<"Inizio Fase 1: Download... Attendi..";
result=URLDownloadToFileA(NULL,netURL,nomefile,NULL,NULL);
cout<<"OK.\nInizio Fase 2: Ricerca URL Immagine..";
cout<<"Apertura file..\n";
fp=fopen(nomefile,"r");
char tofind[l]="id=\"photoNote\"";
int len1;
len1=strlen(tofind);
char source[l];
int len2=0;
int y=0;
int x=0;
int k=5;
int count=0;
cout<<"...WORKING...\n";
while((!feof(fp))&&(x==0)){
fscanf(fp,"%s",&source);
if (x==0){
len2=0;
y=0;
while ((len2<len1)&&(y==0)){
if (tofind[len2]!=source[len2]){
y++;
}
len2++;
}
if (y==0){
fscanf(fp,"%s",source);
x=1;
}
}
}
cout<<"Chiusura file...\n";
fclose(fp);
if (y==0){
len1=strlen(source);
while (k<(len1-1)){
link[count]=source[k];
count++;
k++;
}
cout<<"+-------------+\n";
cout<<link;
cout<<"\n+-------------+\n";
cout<<"Link Trovato!\n";
cout<<"Premi un tasto per scaricare l'immagine nella directory corrente..\n";
system("pause>nul");
char nomejpg[l];
cout<<"Nome immagine? (aggiungici un .jpg alla fine del nome)\n";
cin.getline(nomejpg,l);
cout<<"Downloading\n["<<link<<"]->["<<nomejpg<<"]\n";
result=URLDownloadToFileA(NULL,link,nomejpg,NULL,NULL);
cout<<"Downloaded!\n";
}
if (y!=0){
cout<<"Link NON trovato o file NON corretto.\n";
}
cout<<"Premi un tasto per uscire...\n";
system("pause>nul");
return 0;
}
..Avete soluzioni?
Sto' sbagliando qualcosa?