PDA

View Full Version : سوال: خواندن یک فایل متنی از سرور و نمایش آن در تکست باکس



R2du-soft
پنج شنبه 13 مهر 1391, 02:11 صبح
سلام
من از کد زیر برای نمایش فایل text روی سرور ، درون تکست باکس استفاده میکنم


Option Explicit
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 hOpen As Long, _
ByVal sUrl As String, _
ByVal sHeaders As String, _
ByVal lLength 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 INTERNET_OPEN_TYPE_PRECONFIG = 0
Private Const INTERNET_OPEN_TYPE_DIRECT = 1
Private Const INTERNET_OPEN_TYPE_PROXY = 3
Private Const INTERNET_FLAG_RELOAD = &H80000000
Public Function GetWebContents(ByVal sUrl As String) As String
Dim hOpen As Long

Dim hOpenUrl As Long

Dim bDoLoop As Boolean

Dim bRet As Boolean

Dim sReadBuffer As String * 2048

Dim lNumberOfBytesRead As Long

Dim sBuffer As String

hOpen = InternetOpen("vb", INTERNET_OPEN_TYPE_PRECONFIG, vbNullString, vbNullString, 0)

hOpenUrl = InternetOpenUrl(hOpen, sUrl, vbNullString, 0, INTERNET_FLAG_RELOAD, 0)

bDoLoop = True

While bDoLoop

sReadBuffer = vbNullString
bRet = InternetReadFile(hOpenUrl, sReadBuffer, Len(sReadBuffer), lNumberOfBytesRead)
sBuffer = sBuffer & Left$(sReadBuffer, lNumberOfBytesRead)

If Not CBool(lNumberOfBytesRead) Then bDoLoop = False
DoEvents
Wend

If hOpenUrl <> 0 Then InternetCloseHandle (hOpenUrl)
If hOpen <> 0 Then InternetCloseHandle (hOpen)
GetWebContents = sBuffer

End Function






Private Sub Form_Load()
On Error Resume Next
Text1 = GetWebContents("http://www.r2du-soft.ir/download/texts/Idm.txt")
End Sub


اما این کد یه مشکلی داره
وقتی که فایل تکستم چند خطی باشه ، یعنی با دکمه enter یک خط ایجاد شده باشه داخل فایل تکست ، توی تکست باکس تمام خط ها دنباله هم هستن!
میشه اینو کاریش کرد که هر خط سر جای خودش نمایش داده بشه؟

R2du-soft
پنج شنبه 13 مهر 1391, 02:46 صبح
دوستان اون مشکل رو رفع کردم

روش رفع:
تکست باکس رو انتخاب کنید و
از قسمت properties
وارد سربرگ alphabetic بشید
سپس multiline
رو بر روی true قرار بدید



و اما مشکل بعدی اینه که انتهای هر خط کمه حححححححححح میاد !
دوستان لطفا کمک کنید

R2du-soft
پنج شنبه 13 مهر 1391, 10:53 صبح
اساتید گرامی ، لطفا کمک کنید

امین مستانی
پنج شنبه 13 مهر 1391, 12:02 عصر
سلام علیکم

فکر میکنم مشکل از فایل متنی شما باشه

شما فایل رو بصورت ANSI سیو کنید و دوباره امتحان کنید

Text1.Text = GetWebContents("http://kokopark.persiangig.com/idm.txt")