פתיחת דף HTML

VoodooKid

New member
פתיחת דף HTML

שלום. אני רוצה לבנות תוכנה קטנה בשפת C++ או C או C#. אשר פותחת דף HTML ומנתחת אותו (מוצאת טבלה שנמצאת בדף ומדפיסה אותה) לא משהו מסובך יותר מידי... חשוב להדגיש שהדף HTML לא אני כותב אותו אני לוקח אותו מסתם אתר. הבנתי שהפונ' UrlOpenBlockingStream אמורה לעשות את העבודה אבל איך אני אמור להשתמש בה??? אם למישהו יש דרך אחרת be my guest כי אני כבר משתגע... תודה מראש...
 

gilad_no

New member
הסבר:

כדי להוריד את הדף, אתה משתמש עם URLOPENBLOCKINGSTREAM. הפונקציה מקבלת URL ומחזירה ISTREAM. את אותו ISTREAM אתה יכול לקרוא לאחר מכן.
CComPtr<IStream> pStream; URLOpenBlockingStream(NULL,_T("http://www.google.com"),&pStream,0,NULL); CHAR szBuffer[4096]; std::string szHTML; for (ULONG nRead;pStream->Read(szBuffer,sizeof(szBuffer)-1,&nRead)==S_OK;) { szBuffer[nRead]='\0'; szHTML+=szBuffer; }​
לאחר מכן, יש לך את כל המחרוזת בתוך szHTML.
 

VoodooKid

New member
הוא לא פותח את ההידר

תודה על התגובה אבל... הוא נותן לי ERROR כאשר אני מנסה להוסיף את קובת ההידר של CComPtr הוא לא מוצא את הקובץ... יש איזה סיבה שזה יקרה??
 

gilad_no

New member
תבדוק את ההתקנה שלך.

אולי לא התקנת את VS כמו שצריך. CCOMPTR מוגדר בATLBASE.H שהוא חלק מאוד בסיסי בהתקנת VS.
 

VoodooKid

New member
run time error

OK הצלחתי להריץ אץ התוכנית שמתי קובץ הידר אחר בהתחלה בטעות. (היה רשום לי משהו אחר ב MSDN כנראה זה היה ל C#). אבל עכשיו כאשר הוא מגיע לשורה ULONG nRead;pStream->Read(szBuffer,sizeof(szBuffer)-1,&nRead)==S_OK; הוא נותן לי ERROR Debug Assertion Failed בקובץ ההידר. בשורה :p!=0 יש לך מושג למה זה קורה??
 

gilad_no

New member
ISTREAM

כנראה שהוא ריק. תבדוק את ערך השגיאה שקיבלת מהפונקציה. אם היא לא הצליחה, אזי ISTREAM יישאר NULL ותקבל ASSERT. כמו כן, אל תשכח לאתחל את סיפריית הCOM לפני השימוש בפונקציה (COINITIALIZE).
 

VoodooKid

New member
סבבה זה עובד

וואי תודה!!! זה קורא לי ל BUFFER הוא רק לא מעביר לי את זה לדזHTML אבל זה כבר שטויות. יום טוב!!!
 
למעלה