PDA

View Full Version : سوال: استخراج متن از webbrowser



shahabbasic
پنج شنبه 22 دی 1390, 21:19 عصر
راهی هست که بشه سورس یک سایت رو در یک textbox بدست بیارم؟

IamOverlord
پنج شنبه 22 دی 1390, 21:49 عصر
با استفاده از این Module می تونی اون کارو بکنی :

Private Declare Function InternetOpen Lib "wininet.dll" Alias "InternetOpenA" (ByVal sAgent As String, ByVal lAccessType As Long, ByVal sProxyName As String, ByVal sProxyBypass As String, ByVal lFlags As Long) As Long
Private Declare Function InternetOpenUrl Lib "wininet.dll" Alias "InternetOpenUrlA" (ByVal hInternetSession As Long, ByVal sURL As String, ByVal sHeaders As String, ByVal lHeadersLength As Long, ByVal lFlags As Long, ByVal lContext As Long) As Long
Private Declare Function InternetReadFile Lib "wininet.dll" (ByVal hFile As Long, ByVal sBuffer As String, ByVal lNumBytesToRead As Long, lNumberOfBytesRead As Long) As Integer
Private Declare Function InternetCloseHandle Lib "wininet.dll" (ByVal hInet As Long) As Integer
Private Const IF_FROM_CACHE = &H1000000
Private Const IF_MAKE_PERSISTENT = &H2000000
Private Const IF_NO_CACHE_WRITE = &H4000000
Private Const BUFFER_LEN = 256

Public Function GetUrlSource(sURL As String) As String
Dim sBuffer As String * BUFFER_LEN, iResult As Integer, sData As String
Dim hInternet As Long, hSession As Long, lReturn As Long
hSession = InternetOpen("vb wininet", 1, vbNullString, vbNullString, 0)
If hSession Then hInternet = InternetOpenUrl(hSession, sURL, vbNullString, 0, IF_NO_CACHE_WRITE, 0)
If hInternet Then
iResult = InternetReadFile(hInternet, sBuffer, BUFFER_LEN, lReturn)
sData = sBuffer
Do While lReturn <> 0
iResult = InternetReadFile(hInternet, sBuffer, BUFFER_LEN, lReturn)
sData = sData + Mid(sBuffer, 1, lReturn)
DoEvents
Loop
End If
iResult = InternetCloseHandle(hInternet)
GetUrlSource = sData
End Function

oYaMaa
پنج شنبه 22 دی 1390, 21:52 عصر
از طریق web browser:
Text1.text = WebBrowser1.Document.documentElement.OuterHTMl

از طریق Inet:
Text1.text = Inet1.OpenURL("Address")

shahabbasic
پنج شنبه 22 دی 1390, 22:37 عصر
مثلا من اگر بخوام کلمه ایران رو از توی یک صفحه html استخراج کنم و بذارمش توی یک متغیر با این روش میشه؟
اول سورس سایت رو بدست بیارم و بعد توی رشته جستجو کنم؟

oYaMaa
پنج شنبه 22 دی 1390, 23:20 عصر
در مورد کلمات انگلیسی تو هر دو روش میشه.
اما اگه کلمات فارسی باشن از روش web browser باز هم مشکلی نیست اما از روش Inet باید از unicode استفاده کرد.
که بهنام عزیز زحمت unicode رو کشیده! کد زیر رو داخل ماژول قرار بدید:
Public Function UTF8_Encode(ByVal sStr As String)
Dim L As Long, lChar As Long, sUTF8 As String
For L& = 1 To Len(sStr)
lChar& = AscW(Mid(sStr, L&, 1))
If lChar& < 128 Then
sUTF8$ = sUTF8$ + Mid(sStr, L&, 1)
ElseIf ((lChar& > 127) And (lChar& < 2048)) Then
sUTF8$ = sUTF8$ + Chr(((lChar& \ 64) Or 192))
sUTF8$ = sUTF8$ + Chr(((lChar& And 63) Or 128))
Else
sUTF8$ = sUTF8$ + Chr(((lChar& \ 144) Or 234))
sUTF8$ = sUTF8$ + Chr((((lChar& \ 64) And 63) Or 128))
sUTF8$ = sUTF8$ + Chr(((lChar& And 63) Or 128))
End If
Next L&
UTF8_Encode = sUTF8$
End Function

'Farsi nevisi
Public Function UTF8_Decode(ByVal sStr As String)
Dim L As Long, sUTF8 As String, iChar As Integer, iChar2 As Integer
sStr = Replace(sStr, "U^Œ", UTF8_Encode("i'"))
sStr = Replace(sStr, "U`‰", UTF8_Encode("i'"))
For L = 1 To Len(sStr)
iChar = Asc(Mid(sStr, L, 1))
If iChar > 127 Then
If Not iChar And 32 Then
iChar2 = Asc(Mid(sStr, L + 1, 1))
sUTF8 = sUTF8 & ChrW$(((31 And iChar) * 64 + (63 And iChar2)))
L = L + 1
Else
Dim iChar3 As Integer
iChar2 = Asc(Mid(sStr, L + 1, 1))
iChar3 = Asc(Mid(sStr, L + 2, 1))
'sUTF8 = sUTF8 & ChrW$(((iChar And 15) * 16 * 256) + ((iChar2 And 63) * 64) + (iChar3 And 63))
L = L + 2
End If
Else
sUTF8 = sUTF8 & Chr$(iChar)
End If
Next L
UTF8_Decode = sUTF8
End Function

Public Function EncodeString(StrText As String) As String
On Error Resume Next
Dim I As Integer, bEnc As String
For I = 1 To Len(StrText)
bEnc = bEnc & "%" & Hex(Asc(Mid(StrText, I, 1)))
Next
EncodeString = bEnc
End Function

shahabbasic
پنج شنبه 22 دی 1390, 23:43 عصر
خب حالا سئوال من اینه که اگر روی سیستمی IE نصب نباشه چی؟

IamOverlord
پنج شنبه 22 دی 1390, 23:53 عصر
به خاطر همین کد پست 2 رو دادم.

oYaMaa
جمعه 23 دی 1390, 00:00 صبح
خب حالا سئوال من اینه که اگر روی سیستمی IE نصب نباشه چی؟

حقیقت من اطلاعات کافی ندارم اما تا اونجایی که میدونم IE جزء نرم افزار های خود شرکت ماکروسافته و تو همه ویندوز ها هست.از طرفی شاید اگه کنترلش همراه برنامه باشه دیگه نیازی به خود نرم افزار اصلی IE نباشه.(تست نکردم!)
اما بازم اگه شرایط طوریه که شما میگید کنترل Inet هم هست، همچنین سورس صفحه رو از طریق API هم میشه بدست آورد.
باز اساتید بهتر پاسخ میدن ان شاالله...:لبخندساده:

shahabbasic
شنبه 24 دی 1390, 22:50 عصر
خب همون ماژول رو به پروژه اضافه کنم و بعد بنویسم

p=inet1.Openurl("http://google.com")

جواب میده فارسی رو؟
من تست کردم جواب نداد

oYaMaa
شنبه 24 دی 1390, 23:35 عصر
خب همون ماژول رو به پروژه اضافه کنم و بعد بنویسم

p=inet1.Openurl("http://google.com")

جواب میده فارسی رو؟
من تست کردم جواب نداد


بعد از اینکه ماژول رو به پروژه اضافه کردید، باید اینطوری از unicode استفاده کنید:
Text1.Text = UTF8_Decode(Inet1.OpenURL("Address"))

shahabbasic
یک شنبه 25 دی 1390, 00:12 صبح
خیلی ممنون درست شد
پس من اگر از inet استفاده کنم و بعد IE رو از روی سیستمم پاک کنم بازم جواب میده دیگه؟

IamOverlord
یک شنبه 25 دی 1390, 00:18 صبح
بـــلـــه.

shahabbasic
یک شنبه 25 دی 1390, 13:10 عصر
من با این دستور
dim p as string
p = UTF8_Decode(Inet1.OpenURL("http://www.***.com"))
clipboard.clear
Clipboard.SetText p
سورس سایت رو کپی کردم و در نوت پد paste کردم ولی بازم حروف فارسی ناخواناست

oYaMaa
یک شنبه 25 دی 1390, 16:28 عصر
باید زبان هر دو مکانی یعنی برنامه شما و نوت پد یکی باشه (فارسی)
برای اینکار کد زیر رو داخل ماژول قرار بدید:
Option Explicit
Public Const VK_CONTROL As Long = &H11
Public Const VK_TAB = 9
Public Const KEYEVENTF_EXTENDEDKEY = &H1
Public Const KEYEVENTF_KEYUP = &H2
Public Declare Sub keybd_event Lib "user32.dll" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
Public Declare Function ActivateKeyboardLayout Lib "user32" (ByVal HKL As Long, ByVal flags As Long) As Long


به این ترتیب کد شما به این شکل میشه:
ActivateKeyboardLayout &H429, KLF_REORDER
Dim P As String
P = UTF8_Decode(Inet1.OpenURL("http://www.***.com"))
Clipboard.Clear
Clipboard.SetText ""
Clipboard.SetText P
ActivateKeyboardLayout &H409, KLF_REORDER

shahabbasic
یک شنبه 25 دی 1390, 17:58 عصر
مرسی
تقریبا همه مشکلات حل شد فقط حرف "ی" رو بازم مشکل داره
به این صورت که وقتی دنبال حرف "ی" میگردم با تابع instr در سورس سایت این تابع مقدار 0 رو برگشت میده یعنی هیچی پیدا نکرده پس معلومه حرف "ی" مشکل داره
من قبلا هم مثلا اگر یک جمله رو از توی سایتی به caption لیبل paste میکردم میدیدم قسمت هایی که حرف "ی" داره به شکل ؟ افتاده

oYaMaa
یک شنبه 25 دی 1390, 18:41 عصر
مرسی
تقریبا همه مشکلات حل شد فقط حرف "ی" رو بازم مشکل داره
به این صورت که وقتی دنبال حرف "ی" میگردم با تابع instr در سورس سایت این تابع مقدار 0 رو برگشت میده یعنی هیچی پیدا نکرده پس معلومه حرف "ی" مشکل داره
من قبلا هم مثلا اگر یک جمله رو از توی سایتی به caption لیبل paste میکردم میدیدم قسمت هایی که حرف "ی" داره به شکل ؟ افتاده

واسه من که همچین مشکلی پیش نیومده.اما فکر میکنم دیگه این به تکست باکس بستگی داره! منظورم فونتشه که Tahoma مناسبه و باید قسمت Script رو روی Arabic تنظیم کنید.

shahabbasic
یک شنبه 25 دی 1390, 19:12 عصر
کنترل inet همراه با خود ویندوز هست یا با نصب وی بی کپی میشه؟

IamOverlord
یک شنبه 25 دی 1390, 23:34 عصر
بهتره از DLL اش استفاده کنی، چون فکر کنم شبیه Winsock کنترل DLL اش باشه OCX اش نباشه.

shahabbasic
یک شنبه 25 دی 1390, 23:46 عصر
بهتره از DLL اش استفاده کنی، چون فکر کنم شبیه Winsock کنترل DLL اش باشه OCX اش نباشه.
اتفاقا ocx اش هست رفتم فایلشو پیدا کردم در پوشه sysWOW64 به اسم MSINET.ocx

IamOverlord
یک شنبه 25 دی 1390, 23:52 عصر
نمی گم نیست، می گم شاید برای همه نباشه ...

shahabbasic
جمعه 07 بهمن 1390, 18:31 عصر
این کد هم سورس سایت رو بدست میده

Dim objHttp As Object, strURL As String, strText As String

Set objHttp = CreateObject("MSXML2.ServerXMLHTTP")

strURL = "http://www.google.com/"

objHttp.Open "GET", strURL, False
objHttp.setRequestHeader "User-Agent", _
"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)"
objHttp.Send ("")

strText = objHttp.responseText

Set objHttp = Nothing
Clipboard.Clear
Clipboard.SetText strText
میخوام بدونم آیا به IE وابسته هست یا نه؟
موقعی که داره سورس رو میگیره برنامه قفل میکنه تا پایان کارش میشه کاری کرد که قفل نکنه؟

arash020
شنبه 08 بهمن 1390, 06:39 صبح
دوست عزیز درمورد backgroandworker
که یکی از کنترل های بسیار عالی .net هست و کار باهاش هم خیلی آسونه تحقیق کن
باید کدی رو که برنامه ت تا پایانش قفل میکنه (معمولا همه قسمت های عملیاتی و اصلی همه برنامه)
رو داخل رویداد do work این کنترل بنویسی .
من باهاش کار کردم ولی متاسفانه اینقدر وقت ندارم نمونه بزارم براشما

بقیش با خودتون
موفق باشین
سوالی داشتین بپرسین.

shahabbasic
شنبه 08 بهمن 1390, 16:19 عصر
نه مشکل من سر اینه که نمیخوام کنترل دیگه ای رو به برنامم اضافه کنم اگر بخوام این کارو بکنم خب Inet هست با همون سورس رو بدست میارم و هیچ قفلی هم در کار نیست

IamOverlord
شنبه 08 بهمن 1390, 16:55 عصر
اجرای برنامه هاتون بدون نیاز به MSVBVM60.DLL یا چیزای دیگه ... ! (http://barnamenevis.org/showthread.php?325314-%D8%A7%D8%AC%D8%B1%D8%A7%DB%8C-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%87%D8%A7%D8%AA%D9%88%D9%86-%D8%A8%D8%AF%D9%88%D9%86-%D9%86%DB%8C%D8%A7%D8%B2-%D8%A8%D9%87-MSVBVM60.DLL-%DB%8C%D8%A7-%DA%86%DB%8C%D8%B2%D8%A7%DB%8C-%D8%AF%DB%8C%DA%AF%D9%87-...-!)

ببینید در نهایت شما باید از یه DLL ای چیزی استفاده کنید، ولی می تونید کاری کنید که برنامتون از چیزی که در همه ی Windows ها هست استفاده کنه...

shahabbasic
شنبه 08 بهمن 1390, 17:53 عصر
خب من این برنامه ای که شما گفتید رو گرفتم فایل Exe برناممو بهش بدم کافیه یا فایل پروژه رو باید بهش بدم؟
من الان فایل exe رو دادم چون فایل پروژه رو قبول نمیکنه بعد رفتم به تب دوم میگه فقط به msvbm60.dll نیاز داره
من تو برنامم کنترل inet رو استفاده کردم عکسشو ببین
81608
خب بعد start کنم اون فایل exe ای که میسازه یعنی دیگه به inet احتیاج نداره؟

IamOverlord
شنبه 08 بهمن 1390, 18:03 عصر
بله. ولی به این نکته توجه داشته باشید که برنامه هایی که با زبان های C، Assembly، Delphi و ... برای Windows نوشته می شن رو اگه نیگا کنید، همشون به توابع API (موجود در Kernel32.DLL، User32.DLL و ...) نیاز دارن، اونو که نمی شه کاریش کرد و اصلا طبیعیه. می مونه کامپوننت های خاص که ممکنه روی همه ی کامپیوتر های نباشه، که این برنامه، فایل Exe ی شما رو جوری تغییر می ده که برای اجرا نیاز به هیچ کامپوننت خاصی نداشته باشه و اون کامپوننت ها رو به برنامتون الحاق می کنه. ضمنا نکته ی جالب این جاست که من با PE Explorer نتونستم فایل exe ی خروجی رو Disassemble کنم.

shahabbasic
شنبه 08 بهمن 1390, 18:08 عصر
ولی من الان در برنامم از inet استفاده کردم میگه به msvbm60.dll نیاز داره ! و در پروگرسش msvbm60.dll همین رو به فایل اجرائی الحاق میکنه !
پس اگر دیگه فایل کامپوننت inet کنارش نباشه یا رجیستر نشده باشه بازم برنامه باید اجرا بشه درسته؟
من چون با خودم میگم حتما شما با fusion کار کردید سئوال میکنم
بعد چیز دیگه ای که اتفاق افتاده اینه که دفعه اول فایل exe ساخته شده با fusion بدون هیچ مشکلی اجرا شد ولی دفعه های بعدی آنتی ویروس جلوشو گرفت

IamOverlord
شنبه 08 بهمن 1390, 18:19 عصر
ولی من الان در برنامم از inet استفاده کردم میگه به msvbm60.dll نیاز داره ! و در پروگرسش msvbm60.dll همین رو به فایل اجرائی الحاق میکنه !

می تونید دستی بهش بگید inet رو هم اضافه کنه.

IamOverlord
شنبه 08 بهمن 1390, 18:27 عصر
ولی دفعه های بعدی آنتی ویروس جلوشو گرفت

بعد از این که با Fusion فایلتون رو تبدیل کردید آنتی ویروس ها نمی تونن بفهمن فایلتون چیه و چی کار می کنه (گفتم که با PE Explorer نتونستم Disassemble بکنم). احتمالا به خاطر این جلوشو می گیرن ... :متفکر:

shahabbasic
شنبه 08 بهمن 1390, 18:28 عصر
بفرمایید
http://s1.picofile.com/file/7269898274/inet_Use.zip.html

shahabbasic
شنبه 08 بهمن 1390, 18:29 عصر
بعد از این که با Fusion فایلتون رو تبدیل کردید آنتی ویروس ها نمی تونن بفهمن فایلتون چیه و چی کار می کنه (گفتم که با PE Explorer نتونستم Disassemble بکنم). احتمالا به خاطر این جلوشو می گیرن ... :متفکر:
یعنی کار پکر رو هم انجام میده؟

IamOverlord
شنبه 08 بهمن 1390, 18:36 عصر
بله. اگه دقت کنید مراحل آخر بهتون تفاوت حجم رو هم نشون می ده.

shahabbasic
شنبه 08 بهمن 1390, 18:40 عصر
با این تفاسیر معلوم میشه برنامه خوبیه اما مشکل آنتی ویروس بد مشکلیه چون روی اکثر سیستم ها آنتی ویروس نصبه !

IamOverlord
شنبه 08 بهمن 1390, 18:46 عصر
بله البته این نسخه ای که گذاشتم (نسخه ی 1!) واسه بیش از 10 سال پیشه!!! نسخه ی 3 اش هم اومده که قطعا بهتر باید باشه. اگه دوستان نسخه ی جدید رو پیدا کردن، آپلود کنن ما هم استفاده کنیم.
من الان آنتی ویروس رو سیستمم نصب نیست، امتحان کنید ببینید اگه فایل Pack شده رو دوباره بدید به UPX (http://upx.sourceforge.net/) که Pack کنه، آنتی ویروس باز هم گیر می ده یا نه ... :متفکر:

shahabbasic
شنبه 08 بهمن 1390, 18:54 عصر
UPX تحت داس اجرا میشه من فعلا سیستمم مشکل داس پیدا کرده پکر دیگه ای باشه مشکلیه؟

IamOverlord
شنبه 08 بهمن 1390, 18:56 عصر
UPX تحت داس اجرا میشه من فعلا سیستمم مشکل داس پیدا کرده پکر دیگه ای باشه مشکلیه؟

نه ولی من فایل exe رو می کشم می اندازم تو UPX.

IamOverlord
شنبه 08 بهمن 1390, 18:58 عصر
:اشتباه: آه... یه مشکلی هست! این که اگه کامپوننت روی سیستم موجود نباشه، و فایل exe ات بخواد اجرا بشه باید دسترسی Admin داشته باشه (البته بیش تر از 10 سال پیش این اذیت های دسترسی Admin نبود!)

IamOverlord
شنبه 08 بهمن 1390, 19:06 عصر
در مورد گرفتن دسترسی Admin هم این جا (http://www.codeproject.com/Articles/17968/Making-Your-Application-UAC-Aware) رو ببینید.

shahabbasic
شنبه 08 بهمن 1390, 19:06 عصر
:اشتباه: آه... یه مشکلی هست! این که اگه کامپوننت روی سیستم موجود نباشه، و فایل exe ات بخواد اجرا بشه باید دسترسی Admin داشته باشه (البته بیش تر از 10 سال پیش این اذیت های دسترسی Admin نبود!)
پس منتفیه :ناراحت:

shahabbasic
شنبه 08 بهمن 1390, 19:09 عصر
در مورد گرفتن دسترسی Admin هم این جا (http://www.codeproject.com/Articles/17968/Making-Your-Application-UAC-Aware) رو ببینید.
از اینجا که چیزی سر در نیاوردم

IamOverlord
شنبه 08 بهمن 1390, 19:10 عصر
اگه نمی خواید ویروس بنویسید، پست 38 به کارتون می یاد. این مشکل Admin حتی برای Register کردن کامپوننت ها با regsvr32.dll هم بود...:افسرده:

IamOverlord
شنبه 08 بهمن 1390, 19:13 عصر
از اینجا که چیزی سر در نیاوردم

توی پست های قبلی سورس کد هایی بودن که از فایل manifest یا resource استفاده می کردن. حالا شما مثلا باید به جای محتویات قبلی فایل manifest محتویات جدیدی که داده رو بذارید.


<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
<security>
<requestedPrivileges>
<requestedExecutionLevel level="asInvoker" uiAccess="false"/>
</requestedPrivileges>
</security>
</trustInfo>
</assembly>

shahabbasic
شنبه 08 بهمن 1390, 19:14 عصر
اگه نمی خواید ویروس بنویسید، پست 38 به کارتون می یاد. این مشکل Admin حتی برای Register کردن کامپوننت ها با regsvr32.dll هم بود...:افسرده:
آره من الان دقیقا تو همین گیرم به هر دری میزنم بستست
چون میخوام برنامم پرتابل باشه و یک دونه فایل داشته باشه البته بلدم با winrar تبدیلش کنم به 1 فایل ولی کامپوننت هاش رجیستر نمیشه با Regsvr32 و برنامه اجرا نمیشه چون دسترسی ادمین لازمه
بعد خواستم کلا کامپوننتشو حذف کنم گفتم از کد استفاده کنم که با اون کد هم برنامه قفل میکنه
این fusion هم که دسترسی ادمین میخواد
والا موندم چکار کنم تا پرتابل بشه

shahabbasic
شنبه 08 بهمن 1390, 19:16 عصر
توی پست های قبلی سورس کد هایی بودن که از فایل manifest یا resource استفاده می کردن. حالا شما مثلا باید به جای محتویات قبلی فایل manifest محتویات جدیدی که داده رو بذارید.


<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
<security>
<requestedPrivileges>
<requestedExecutionLevel level="asInvoker" uiAccess="false"/>
</requestedPrivileges>
</security>
</trustInfo>
</assembly>
یعنی من توی فایل manifest این کد رو بذارم و بعد بذارم کنار فایل اصلی برنامم دیگه اجازه ادمین نمیخواد؟ :گیج:

IamOverlord
شنبه 08 بهمن 1390, 19:26 عصر
اجازه ی Admin می خواد! (چه قدر رویایی می شد اگه ...) ولی از کاربر درخواست می کنه که بهش اجازه ی Admin بده. چون ممکنه برنامه ی شما اجرا بشه اما کامپوننت ها رو Register نکنه چون اجازه ی Admin نداره. اما با اون روش برنامتون از کاربر اجازه Admin رو می خواد تحت هر شرایطی ...

shahabbasic
شنبه 08 بهمن 1390, 19:34 عصر
اجازه ی Admin می خواد! (چه قدر رویایی می شد اگه ...) ولی از کاربر درخواست می کنه که بهش اجازه ی Admin بده. چون ممکنه برنامه ی شما اجرا بشه اما کامپوننت ها رو Register نکنه چون اجازه ی Admin نداره. اما با اون روش برنامتون از کاربر اجازه Admin رو می خواد تحت هر شرایطی ...
اگه بنده خدا Limit پسورد ادمین نداشته باشه چی؟
ستاپ ساز چجوری بدون اجازه مدیر کامپوننت هارو رجیستر میکنه؟

abolfazl-z
جمعه 28 بهمن 1390, 15:48 عصر
واقعا عالی بود ولی یه چیز جالب بگم که آقا من داشتم برنامه می نوشتم و اصلا با اینت هم کار نکرده بودم ولی اینت را با Icstring مقداردهی کردم جواب داد یعنی فارسی هم میشد اینت کنی ولی دوباره انجام دادم نشد.ولی اون پروزه را هر وقت باز کنم میشه؟؟؟؟؟؟
:متعجب::متعجب::متعجب::متعجب:: تعجب::متعجب::متعجب::متعجب::م عجب::متعجب::متعجب::متعجب::مت جب:
کی میتونه جواب بده به خدا سرکاری نیستاااااااا:لبخندساده:

DoctorJay
جمعه 05 اسفند 1390, 09:25 صبح
عرض سلام و ادب به دوستان .

من با یه مشکلی برخوردم, میخواستم ببینم پیشنهاد دوستان برای رفع این مشکل چی هست .

برای گرفتن Source سایت, از این کد استفاده کردم - از طریق Webbrowser


Text1.text = WebBrowser1.Document.documentElement.OuterHTMl

ولی نتیجه به این شکل هست و کاملا به هم ریخته هست نتیجه :


<HTML><HEAD><TITLE>TuningTalk.com - Upload Center</TITLE></HEAD>
<BODY>?
<META name=description content="TuningTalk.com - Upload Center">
<META name=keywords content="TuningTalk.com - Upload Center">
<STYLE type=text/css>
<!--
body {
font-family: Tahoma, verdana; font-size: 12px;
}
p.header {
font-size: 18px;
}
a:link, a:visited {
color: #009999; text-decoration:none;
}
a:active {
color: #FF6600; text-decoration:none;
}
td {
font-size:12px;
}
td.note {
font-size:10px;
}
-->
</STYLE>

<P class=header align=center>TuningTalk.com - Upload Center</P>
<TABLE style="BORDER-COLLAPSE: collapse" border=0 width="20%" align=center>
<TBODY>
<TR>
<TD width="100%" align=middle>
<FORM encType=multipart/form-data onsubmit="return preValidate();" method=post name=SFUform action=/index.php><INPUT value=5242880 type=hidden name=MAX_FILE_SIZE> <INPUT type=file name=SFUfile[]><BR><INPUT type=file name=SFUfile[]><BR><INPUT type=file name=SFUfile[]><BR><INPUT type=file name=SFUfile[]><BR><INPUT type=file name=SFUfile[]><BR></TD></TR>
<TR>
<TD width="100%" align=left><SPAN style="FONT-FAMILY: tahoma, verdana; FONT-SIZE: 7pt"><B>Size limit</B>: 5 MB<BR><B>ÓæäÏåÇí ÞÇÈá áæÏ</B>: gif, jpg, png, zip, mp3, pdf.<BR></SPAN></TD></TR>
<TR>
<TD align=middle></SPAN><BR><INPUT value=" Upload " type=submit name=SFUsubmit></TD></TR></FORM></TBODY></TABLE></BODY></HTML>

در صورتی که حاصل باید به این شکلِ شکیل باشه :


<html dir="ltr">
<head>
<title>TuningTalk.com - Upload Center</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="description" content="TuningTalk.com - Upload Center" />
<meta name="keywords" content="TuningTalk.com - Upload Center" />
<style type="text/css">
<!--
body {
font-family: Tahoma, verdana; font-size: 12px;
}
p.header {
font-size: 18px;
}
a:link, a:visited {
color: #009999; text-decoration:none;
}
a:active {
color: #FF6600; text-decoration:none;
}
td {
font-size:12px;
}
td.note {
font-size:10px;
}
-->
</style>
</head>
<body>
<p align="center" class="header">TuningTalk.com - Upload Center</p><table width="20%" border="0" align="center" style="border-collapse: collapse;">
<tr>
<td width="100%" align="center">
<form method="post" enctype="multipart/form-data" action="/index.php" name="SFUform" onsubmit="return preValidate();">
<input type="hidden" name="MAX_FILE_SIZE" value="5242880" />
<input type="file" name="SFUfile[]" size="20" /><br />
<input type="file" name="SFUfile[]" size="20" /><br />
<input type="file" name="SFUfile[]" size="20" /><br />
<input type="file" name="SFUfile[]" size="20" /><br />
<input type="file" name="SFUfile[]" size="20" /><br /></td>
</tr>
<tr>
<td width="100%" align="left">
<span style="font-size: 7pt; font-family: tahoma, verdana;"><b>Size limit</b>: 5 MB<br />
<b>پسوندهای قابل آپلود</b>: gif, jpg, png, zip, mp3, pdf.<br /></span></td>
</tr>
<tr>
<td align="center">
</span><br />
<input type="submit" value=" Upload " name="SFUsubmit" /></td>
</tr>
</form>
</table>

</body>
</html>

نظر دوستان چیه ؟ از چه طریقی میتونم حاصل رو به شکل دوم به دست بیارم ؟؟

آیا شکل دستوری وجود داره که بشه از List استفاده کرد و هر خط رو بشه مجزا به دست آورد ؟ مثل زمانی که از یه فایل متنی خط ها رو میاریم توی List :


Open "C:\test.txt" For Input As #1
Do While Not (EOF(1))
Line Input #1, readdata
List1.AddItem (readdata)
Loop
Close #1

سپاس از توجهتون

DoctorJay
یک شنبه 07 اسفند 1390, 11:03 صبح
دوستانِ مطلع اگر این استخراج بهتر از این امکان پذیر نیست لطفا اعلام کنن که دنبال راه حل دیگه ای باشم .
بازم ممنون

ilaghi
دوشنبه 11 اسفند 1393, 13:49 عصر
با سلام به دوست عزيز! ممكنه در مورد webBrowser اين يك خط توضيح بيشتري بديد، وقتي اجرا مي‌شه، خطا مي دهد