#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include WORD open(const String &hostName,const String &nameFile); WORD open(const String &hostName,const String &nameString,const String &saveAs); WORD makeFileName(String &pathFileName); BOOL getEntryItems(const String &pathFileName,Block &entryItems); void replaceSpace(String &string); class Console { public: Console(); void writeLine(const String &string); void read(); }; Console::Console() { } void Console::writeLine(const String &string) { printf("%s\n",string.str()); } void Console::read() { char buffer[32]; sscanf("%s",buffer); } Console winConsole; // for when i do a post request //POST /cgi-bin/phone_book.cgi HTTP/1.0 // //Referer: http://www.somedomain.com/Direcory/file.html // //User-Agent: Mozilla/1.22 (Windows: I: 32bit) // //Accept */* // //Content-type: application/x-www-form-urlencoded // //Content-length: 29 // // // //name=Selena+Sol&phone=7700404 // // int main(int argc,char **argv) { String pathFileName(argv[1]); Block entryItems; if(pathFileName.isNull()) { winConsole.writeLine("GETPAGE "); winConsole.writeLine("Input file is a text file that contains entries in the following format..."); winConsole.writeLine(" "); winConsole.writeLine("for example..."); winConsole.writeLine("\"www.developer.com\" \"http://www.developer.com/reference/foo.htm\" \"c:\\developer\\docs\\foo.html\""); winConsole.writeLine("a '#' character located in the first position of any line indicates a comment, the line is ignored."); winConsole.writeLine("Press ENTER to exit."); winConsole.read(); return FALSE; } if(!getEntryItems(pathFileName,entryItems)) { winConsole.writeLine("Failed to read input file"); winConsole.writeLine("Press ENTER to exit"); winConsole.read(); return FALSE; } for(int itemIndex=0;itemIndex receiveStrings; httpControl.receivePage(receiveStrings); for(int index=0;index=(char*)tempString)ptr--; pathFileName=(++ptr); return TRUE; } BOOL getEntryItems(const String &pathFileName,Block &entryItems) { File inFile; String strLine; entryItems.remove(); inFile.open(pathFileName,"rb"); if(!inFile.isOkay())return FALSE; strLine.reserve(512); while(inFile.readLine(strLine)) { if('#'==*(char*)strLine)continue; String host=strLine.betweenString('\"','\"'); host=host.trimLeft().trimRight(); String page=strLine.betweenString('\"',0).betweenString('\"',0).betweenString('\"','\"'); replaceSpace(page); page=page.trimLeft().trimRight(); String saveAs=strLine.betweenString('\"',0).betweenString('\"',0).betweenString('\"',0).betweenString('\"',0).betweenString('\"','\"'); saveAs=saveAs.trimLeft().trimRight(); entryItems.insert(&EntryItem(host,page,saveAs)); } return entryItems.size()?TRUE:FALSE; } void replaceSpace(String &string) { int position; String replace="%20"; while(-1!=(position=string.strchr(' '))) { String tmp=string.substr(0,position-1); String tmp2=string.substr(position+1,string.length()); winConsole.writeLine(String("'")+tmp+String("'")); winConsole.writeLine(String("'")+tmp2+String("'")); string=tmp+replace+tmp2; winConsole.writeLine(String("'")+string+String("'")); } }