TechiWarehouse.Com


Top 3 Products & Services

1.
2.
3.

Dated: Nov. 08, 2004

Related Categories

C Programming / C++ / C#

You may copy/paste this follow C++ Code and save it as "WebReader.cpp".

//Read a web page
//By: Ricky Shadrach

#include
//This lets us output to the console
#include
//This is needed for the inclusion of wininet.h
#include
//This is where all of our awsome functions that we call are

#pragma comment (lib, "wininet.lib")
//If you have never seen this line above before, it is a great line of code to know.
//We have all our function proto-types provided in the header file wininet.h, but if you
//look in wininet.h, there is no actual code which makes these functions work. All of
//this code is actually in wininet.lib. Without this line of code, you would either need to
//add extra syntax to include this library or you would need to change your compiler
//settings. Either way, this line makes it much easier as it includes the file for you.

int main()
{
HINTERNET hOpen, hURL;
//these are two handles which we will use to access the internet

hOpen = InternetOpen("WebReader", INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, 0 );
//This first call is fairly simple. It just returns a handle to the url. The first
//parameter is just the name of our program which calls this function. The second is
//how we are accessing the internet. The last three are not important to us, if you would
//like to learn about these, go to the link at the bottom of this file.

hURL = InternetOpenUrl( hOpen, "http://www.google.com", NULL, 0, 0, 0 );
//Once again, we get a handle from this function. However, this time, now we have access to
//read from the file, which is what this function allows you to do. The first paramenter
//is the handle that we recieved from InternetOpen(). It contains the name of our program
//as well as the access type which will be needed for this function to open a URL for reading
//The next parameter should be obvious,it is the URL we wish to open. The last 4 are not
//important to us, if you wish to learn more, go to the link at the bottom of this file.

char file[101];
//this is where our file will be stored temporarily. You can make this as big as you
//want. The larger it is, the faster you will read and display the file. If you can get
//it all in one function call, that is the fastest it can go. However, the difference is
//not great. In the file we are about to read in, it takes an average of 13.51 milliseconds
//longer to read the file one character at a time than it does to read it all in one shot.

unsigned long read;
//this will let us know how many characters actually got read. When it doesn't return
//the total requested, we know we have reached the end of the file.

do
{
InternetReadFile(hURL, file, 100, &read);
//Here is the function which reads our URL. The first paramenter is the handle returned
//from InternetOpenUrl(). The second is the where the characters from the file will go.
//The third is how many character we request to read. This should normally be the size
//of the array you pass in (file in this case). The fourth is how many characters
//actually got returned. We use this to tell if we are at the end of the file.

file[read] = '\0';
//Set the last character that was read in to '\0' to terminate the string. This prevents
//from unwanted output such as random weird characters because the characters are not
//initalized.

cout << file;
//Display the file.

} while (read == 100);
//Here we check if we are at the end of the file. If the number of characters read equals
//the number of characters requested, we know that there is still more in the file (unless
//we hit the end of the file perfectly at 100, in which case the next call to
//InternetReadFile() will return 0 anyways). If we keep on calling InternetReadFile() after
//the end of the file has passed, it will start over from the top.

cout << endl;
//just to make the output look nice.

return 0;
}

//wininet is actually quite a powerful api, it can do many more things than just read a file.
//Check it out:
//http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wininet/wininet/wininet_functions.asp

//Possibilites with this code for future projects:

//Check all the links on a page to see if they are valid
//Webcrawler which crawls across the entire internet
//Save web pages to html files on your computer
//Craw across a domain using the links from the main page, saving the files as you go.

//Send any questions or comments to rshadarack@rshadarack.com

 

WebReader_cpp C++

Now that you've gotten free know-how on this topic, try to grow your skills even faster with online video training. Then finally, put these skills to the test and make a name for yourself by offering these skills to others by becoming a freelancer. There are literally 2000+ new projects that are posted every single freakin' day, no lie!


Previous Article

Next Article


Ganhar Na Quina Todo Dia's Comment
Tratar diariamente. Nunca passou para as minhas mãos. https://loteriapro.wordpress.com/2017/10/13/como-ganhar-na-quina/
20 Fri Apr 2018
Admin's Reply:



Betty's Comment
I'm ipmressed. You've really raised the bar with that.
05 Thu Jan 2012
Admin's Reply:

 Thank you Betty :)




yufanyi's Comment
just to learn about computers
06 Tue Jul 2010
Admin's Reply:

ok






Facebook