|
And what do you mean exactly by "Internet Usage Traking". Maybe if you would explain a bit more in detail what you are looking for we could help...
|
|
|
|
|
I want to track web browsing.
Meanse whenever user open new web site in web browber then my programe should get notice about it.
Manish Patel.
B.E. - Information Technology.
|
|
|
|
|
manish.patel wrote: Meanse whenever user open new web site in web browber then my programe should get notice about it.
Perhaps you are wanting a BHO.
"Love people and use things, not love things and use people." - Unknown
"To have a respect for ourselves guides our morals; to have deference for others governs our manners." - Laurence Sterne
|
|
|
|
|
Thanks for your great help.
Its useful for Internet Explorer.
Is there any alternative for Firefox and other web browsers?
Thanks
Manish Patel.
B.E. - Information Technology.
|
|
|
|
|
IPAudit[^] can do more than what you want. It is open source, does the job and does it well.
Nobody can give you wiser advice than yourself. - Cicero
.·´¯`·->Rajesh<-·´¯`·.
Codeproject.com: Visual C++ MVP
|
|
|
|
|
Hi All,
I am preparing for an COM interview.
Can i know the difference between BSTR and VARIANT data types used in
COM ?
Difference between COM and DCOM ?
Any FAQ's on basics of COM ?
Regards
Suhi
|
|
|
|
|
|
suhi wrote: Can i know the difference between BSTR and VARIANT data types used in
COM ?
A VARIANT can contain data of many different types, such as long and IDispatch*. When a VARIANT contains a string, it is stored as a BSTR
A BSTR variable in C++ is actually a pointer to the first character of the string. In fact, the type BSTR is defined this way:
typedef OLECHAR* BSTR;
suhi wrote: Difference between COM and DCOM ?
DCOM allows you to communicate between different COM components located on different machines in a network.
suhi wrote: Any FAQ's on basics of COM ?
Read a good book "inside COM" is one of them.
Somethings seem HARD to do, until we know how to do them.
_AnShUmAn_
|
|
|
|
|
_AnShUmAn_ wrote: A BSTR variable in C++ is actually a pointer to the first character of the string. In fact, the type BSTR is defined this way:
typedef OLECHAR* BSTR;
While true there's more to it than that:
- The size of the BSTR is stored before the pointer!
- A specific allocator is assumed.
Steve
|
|
|
|
|
I am having a structure which is having CArray of another structure inside it.
While debuggin I can see only the first item CArray in debugger.
How to see the other items of CArray?
Thanks,
Suman
--
"Programming is an art that fights back!"
|
|
|
|
|
rp_suman wrote: While debuggin I can see only the first item CArray in debugger.
How to see the other items of CArray?
Here is an e.g.
CArray<int,int> IntArray;
AfxDump( &IntArray );
(IntArray).m_pData,20
If possible use vector!
Nibu thomas
Microsoft MVP for VC++
Code must be written to be read, not by the compiler, but by another human being.
Programming Blog: http://nibuthomas.wordpress.com
|
|
|
|
|
Hi,
Thanks for the help and idea given me!!
Thanks,
Suman
--
"Programming is an art that fights back!"
|
|
|
|
|
Let's say your array is m_MyArray. To see more than one item, you can type
m_MyArray,5 in the watch window - that shows 5 items.
Hope that helps.
Karl - WK5M
PP-ASEL-IA (N43CS)
PGP Key: 0xDB02E193
PGP Key Fingerprint: 8F06 5A2E 2735 892B 821C 871A 0411 94EA DB02 E193
|
|
|
|
|
Hi all,
I would like to know how can I convert several time formats made from a string into a string of my desired time format?
Example:
the strings can be like:
Fri Oct 13 01:32:38 CDT 2006
or
Fri 2006 Oct 13 01:32:38 CDT
or any other formats/combination that is possible then I must convert it into
Fri, 13 Oct 2006 01:32:38 CDT.
How can I search for the date 13 substring or the year or the time?
Thanks,
Jj
|
|
|
|
|
monsieur_jj wrote: I would like to know how can I convert several time formats made from a string into a string of my desired time format?
Does COleDateTime::ParseDateTime and COleDateTime::Format help?
Also have a look at strftime .
Nibu thomas
Microsoft MVP for VC++
Code must be written to be read, not by the compiler, but by another human being.
Programming Blog: http://nibuthomas.wordpress.com
|
|
|
|
|
Hi Nibu,
I cannot use Ole what i have done so far is:
<br />
string ArrMonth[] = {" ", "Jan ","Feb ","Mar ","Apr ","May ","Jun ","Jul ","Aug ","Sep ","Oct ","Nov ","Dec "};<br />
string ArrDays[] = {" ", "Sun ","Mon ","Tue ","Wed ","Thu ","Fri ","Sat "};<br />
<br />
do{<br />
i++;<br />
index = date.find(ArrDays[i]);<br />
<br />
}while ((!(index != string::npos)));<br />
strDays = ArrDays[i];<br />
<br />
do{<br />
j++;<br />
index = date.find(ArrMonth[j]);<br />
<br />
}while ((!(index != string::npos)));<br />
strMonth = ArrMonth[j];<br />
<br />
index = date.find(":");<br />
index = index - 2;<br />
strTime = date.substr(index, 8);<br />
I can now get the month, time and days. My problem is the year and the day. TimeZone i just figured out
Thanks,
Jj
modified on Wednesday, April 9, 2008 11:37 PM
|
|
|
|
|
Proof....
char bufTimeDate[80];
memset (bufTimeDate, '\0', 80);
time_t now;
struct tm ts;
time(&now);
// Format the time, "dd-mm-yyyy hh:mm:ss zzz" Es: "02-04-2007 10:52:30 Ora sol.."
ts = *localtime(&now);
strftime(bufTimeDate, sizeof(bufTimeDate), "%d-%m-%Y %H:%M:%S %Z", &ts);
|
|
|
|
|
monsieur_jj wrote: Fri, 13 Oct 2006 01:32:38 CDT.
How can I search for the date 13 substring or the year or the time?
Well, if we can assume its always in the same spot, use string::substr() , like:
string strDate = "Fri, 13 Oct 2006 01:32:38 CDT";<br />
int nDay = atoi(strDate.substr(5, 2));
"Love people and use things, not love things and use people." - Unknown
"To have a respect for ourselves guides our morals; to have deference for others governs our manners." - Laurence Sterne
|
|
|
|
|
Hi all,
This is what i have done and it works however i am a bit inexperienced and I just want your opinions if and how i can make this better:
<br />
basic_string <char>::size_type indexMonth, indexDays, indexTimeZone, indexYear, indexDate;<br />
string ArrMonth[] = {" ", "jan ","feb ","mar ","apr ","may ","jun ","jul ","aug ","sep ","oct ","nov ","dec "};<br />
string ArrDays[] = {" ", "sun ","mon ","tue ","wed ","thu ","fri ","sat "};<br />
string ArrTimeZone[] = {" ", "atl ","est ","cst ","mst ","pst ","ala ","haw ", "edt ", "cdt ", "mdt ", "pdt "};<br />
string strDays;<br />
string strMonth;<br />
string strTime;<br />
string strTimeZone;<br />
string strYear;<br />
string tempDate;<br />
tempDate = date;<br />
int i = 0;<br />
int j = 0;<br />
int k = 0;<br />
int Year = 1950;<br />
<br />
string lwrFilename;<br />
char TempStr[500] = {L'\0'};<br />
strcpy(TempStr, date.c_str());<br />
lwrFilename = _strlwr(TempStr); <br />
date = lwrFilename;<br />
<br />
do{<br />
i++;<br />
indexDays = date.find(ArrDays[i]);<br />
<br />
}while ((!(indexDays != string::npos)));<br />
strDays = ArrDays[i];<br />
<br />
do{<br />
j++;<br />
indexMonth = date.find(ArrMonth[j]);<br />
<br />
}while ((!(indexMonth != string::npos)));<br />
strMonth = ArrMonth[j];<br />
<br />
bool timeZone = false;<br />
do{<br />
k++;<br />
indexTimeZone = date.find(ArrTimeZone[k]);<br />
<br />
}while ((!(indexTimeZone != string::npos)));<br />
strTimeZone = ArrTimeZone[k];<br />
<br />
if(strTimeZone.empty())<br />
{<br />
indexTimeZone = date.find("+");<br />
if ( indexTimeZone != string::npos )<br />
{<br />
timeZone = true;<br />
strTime = date.substr(indexTimeZone, 4);<br />
}<br />
else<br />
{<br />
indexTimeZone = date.find("-");<br />
if ( indexTimeZone != string::npos )<br />
{<br />
timeZone = true;<br />
strTime = date.substr(indexTimeZone, 4);<br />
}<br />
else<br />
{<br />
timeZone = false;<br />
strTime = "GMT";<br />
}<br />
<br />
}<br />
}<br />
<br />
indexDate = date.find(":");<br />
indexDate = indexDate - 2;<br />
strTime = date.substr(indexDate, 8);<br />
<br />
<br />
stringstream out;<br />
string tempYear;<br />
do{<br />
Year++;<br />
out<<Year;<br />
tempYear = out.str();<br />
out.str("");<br />
indexYear = date.find(tempYear);<br />
<br />
}while ((!(indexYear != string::npos)));<br />
strYear = date.substr(indexYear, 4);<br />
<br />
tempDate.replace(indexYear, 4, " ");<br />
tempDate.replace(indexDate, 8, " ");<br />
if(!timeZone)<br />
{tempDate.replace(indexTimeZone, 3, " ");<br />
}else{<br />
tempDate.replace(indexTimeZone, 5, " ");<br />
}<br />
tempDate.replace(indexMonth, 4, " ");<br />
tempDate.replace(indexDays, 4, " ");<br />
<br />
int DateNum;<br />
DateNum = atoi(tempDate.c_str());<br />
out<<DateNum;<br />
tempDate = out.str();<br />
out.str("");<br />
string dateFinal;<br />
<br />
dateFinal.append(strDays);<br />
dateFinal.append(", ");<br />
dateFinal.append(tempDate);<br />
dateFinal.append(" ");<br />
dateFinal.append(strMonth);<br />
dateFinal.append(" ");<br />
dateFinal.append(strYear);<br />
dateFinal.append(" ");<br />
dateFinal.append(strTime);<br />
dateFinal.append(" ");<br />
dateFinal.append(strTimeZone);<br />
<br />
return dateFinal;<br />
Thanks,
Jj
|
|
|
|
|
It's about 50 times larger than it needs to be.
"Love people and use things, not love things and use people." - Unknown
"To have a respect for ourselves guides our morals; to have deference for others governs our manners." - Laurence Sterne
|
|
|
|
|
How about now?
<br />
basic_string <char>::size_type indexMonth, indexDays, indexTimeZone, indexYear, indexDate;<br />
string ArrMonth[] = {" ", "jan ","feb ","mar ","apr ","may ","jun ","jul ","aug ","sep ","oct ","nov ","dec "};<br />
string ArrDays[] = {" ", "sun ","mon ","tue ","wed ","thu ","fri ","sat "};<br />
string ArrTimeZone[] = {" ", "atl ","est ","cst ","mst ","pst ","ala ","haw ", "edt ", "cdt ", "mdt ", "pdt "};<br />
string strDays, strMonth, strTime, strTimeZone, strYear, tempDate, dateFinal, lwrFilename, tempYear;<br />
tempDate = date;<br />
int i = 0, j = 0, k = 0, Year = 1950, DateNum;<br />
<br />
char TempStr[500] = {L'\0'};<br />
strcpy(TempStr, date.c_str());<br />
lwrFilename = _strlwr(TempStr); <br />
date = lwrFilename;<br />
<br />
do{<br />
i++;<br />
indexDays = date.find(ArrDays[i]);<br />
<br />
}while ((!(indexDays != string::npos)));<br />
strDays = ArrDays[i];<br />
<br />
do{<br />
j++;<br />
indexMonth = date.find(ArrMonth[j]);<br />
<br />
}while ((!(indexMonth != string::npos)));<br />
strMonth = ArrMonth[j];<br />
<br />
bool timeZone = false;<br />
do{<br />
k++;<br />
indexTimeZone = date.find(ArrTimeZone[k]);<br />
<br />
}while ((!(indexTimeZone != string::npos)));<br />
strTimeZone = ArrTimeZone[k];<br />
<br />
if(strTimeZone.empty())<br />
{<br />
indexTimeZone = date.find("+");<br />
if ( indexTimeZone != string::npos )<br />
{<br />
timeZone = true;<br />
strTime = date.substr(indexTimeZone, 4);<br />
}<br />
else<br />
{<br />
indexTimeZone = date.find("-");<br />
if ( indexTimeZone != string::npos )<br />
{<br />
timeZone = true;<br />
strTime = date.substr(indexTimeZone, 4);<br />
}<br />
else<br />
{<br />
timeZone = false;<br />
strTime = "GMT";<br />
}<br />
<br />
}<br />
}<br />
<br />
indexDate = date.find(":");<br />
indexDate = indexDate - 2;<br />
strTime = date.substr(indexDate, 8);<br />
<br />
stringstream out;<br />
do{<br />
Year++;<br />
out<<Year;<br />
tempYear = out.str();<br />
out.str("");<br />
indexYear = date.find(tempYear);<br />
<br />
}while ((!(indexYear != string::npos)));<br />
strYear = date.substr(indexYear, 4);<br />
<br />
tempDate.replace(indexYear, 4, " ");<br />
tempDate.replace(indexDate, 8, " ");<br />
if(!timeZone)<br />
{tempDate.replace(indexTimeZone, 3, " ");<br />
}else{<br />
tempDate.replace(indexTimeZone, 5, " ");<br />
}<br />
tempDate.replace(indexMonth, 4, " ");<br />
tempDate.replace(indexDays, 4, " ");<br />
<br />
DateNum = atoi(tempDate.c_str());<br />
out<<DateNum;<br />
tempDate = out.str();<br />
out.str("");<br />
<br />
dateFinal.append(strDays);<br />
dateFinal.append(", ");<br />
dateFinal.append(tempDate);<br />
dateFinal.append(" ");<br />
dateFinal.append(strMonth);<br />
dateFinal.append(" ");<br />
dateFinal.append(strYear);<br />
dateFinal.append(" ");<br />
dateFinal.append(strTime);<br />
dateFinal.append(" ");<br />
dateFinal.append(strTimeZone);<br />
<br />
return dateFinal;<br />
What can i reduce?
I aslo found this on our boost:
<br />
#include<iostream><br />
#include<boost/tokenizer.hpp><br />
#include<string><br />
<br />
int main(){<br />
using namespace std;<br />
using namespace boost;<br />
string s = date<br />
tokenizer<> tok(s);<br />
for(tokenizer<>::iterator beg=tok.begin(); beg!=tok.end();++beg){<br />
strItem= *beg;<br />
}<br />
}<br />
This parses the string separately by space or by ":". Can anyone give me an idea how to use this?
Thanks,
Jj
modified on Friday, April 11, 2008 3:54 AM
|
|
|
|
|
monsieur_jj wrote: How about now?
Are you limited to just using C++ code (i.e., can you use OLE or MFC)?
"Love people and use things, not love things and use people." - Unknown
"To have a respect for ourselves guides our morals; to have deference for others governs our manners." - Laurence Sterne
|
|
|
|
|
Hi,
I can only use c++ and boost libraries.
I can use this bit of code from tokenizer class of boost:
std::string strRaw = date;
std::string strItem, strTemp;
tokenizer<> tok(strRaw);
for(tokenizer<>::iterator beg=tok.begin(); beg!=tok.end();++beg)
{
strItem= *beg;
}
I am just not sure how to use it
Thanks a lot
Jj
|
|
|
|
|
Hi all,
This is what i have done:
string ArrMonth[] = {"jan","feb","mar","apr","may","jun","jul","aug","sep","oct","nov","dec"};
string ArrDays[] = {"sun","mon","tue","wed","thu","fri","sat"};
string ArrTimeZone[] = {"atl","est","cst","mst","pst","ala","haw", "edt", "cdt", "mdt", "pdt"};
string strDays, strMonth, strTime, strTimeZone, strYear, tempDate, dateFinal, lwrFilename, tempYear;
int i = 0, j = 0, k = 0, Year, DateNum;
stringstream out;
bool full = false;
char TempStr[500] = {L'\0'};
strcpy(TempStr, date.c_str());
lwrFilename = _strlwr(TempStr);
date = lwrFilename;
size_t foundTime, foundZone;
std::string strRaw = date;
std::string strItem, strTemp;
boost::escaped_list_separator<char> esc('\\',' ',':\\');
tokenizer<escaped_list_separator<char>> tok(strRaw,esc);
for(tokenizer<escaped_list_separator<char>>::iterator beg=tok.begin(); beg!=tok.end();++beg)
{
strItem= *beg;
Year = atoi(strItem.c_str());
DateNum = atoi(strItem.c_str());
foundTime=strItem.find(":");
foundZone=strItem.find("+");
if(!(strItem.empty())){
for(i=0; i<12; i++)
{
if(i<7){
if((strItem == ArrDays[i])&&(strDays.empty()))
{
strDays = ArrDays[i];
break;
}
}
if((i<12)&&(strItem == ArrMonth[i])&&(strMonth.empty()))
{
strMonth = ArrMonth[i];
break;
}
if(i<11){
if((strItem == ArrTimeZone[i])&&(strTimeZone.empty()))
{
strTimeZone = ArrTimeZone[i];
break;
}
}
if((foundZone!=string::npos)&&(strTimeZone.empty()))
{
strTimeZone = strItem;
break;
}
if((foundTime!=string::npos)&&(strTime.empty()))
{
strTime = strItem;
break;
}
if(Year>1980&&(strYear.empty()))
{
strYear = strItem;
break;
}
if((DateNum>0) && (DateNum<32) &&(tempDate.empty()))
{
tempDate = strItem;
break;
}
}
}
}
dateFinal.append(strDays);
dateFinal.append(", ");
dateFinal.append(tempDate);
dateFinal.append(" ");
dateFinal.append(strMonth);
dateFinal.append(" ");
dateFinal.append(strYear);
dateFinal.append(" ");
dateFinal.append(strTime);
dateFinal.append(" ");
dateFinal.append(strTimeZone);
return dateFinal;
Do you think this is more efficient?
Thanks,
Jj
|
|
|
|
|
monsieur_jj wrote:
Do you think this is more efficient?
Without trying it, I don't know. Does it handle all of the possible date formats?
"Love people and use things, not love things and use people." - Unknown
"To have a respect for ourselves guides our morals; to have deference for others governs our manners." - Laurence Sterne
|
|
|
|
|