View Full Version : سوال: مشکل با نمایش فایل text از اینترنت بر روی  text box  (مشکل خط های پی در پی!)
  
R2du-soft
جمعه 14 مهر 1391, 20:45 عصر
سلام به همه
ما که هرچی تاپیک میزنیم کسی جواب نمیده!
ولی خدایی به این مشکل خودم هرکاری کردم رفع نشد ، لطفا اساتید گرامی راهنماییم کنید.
من یه فایل تکست از سرور روی تکست باکس نمایش میدم.
مشکل من اینجاست که توی فایل تکستم چند خط هست مثلا دقیقا این هست:
Internet Download Manager 6.12 Build 21 Final Retail
Version: 6.12 Build 21
Zip Password: www.r2du-soft.ir
و آدرس فایل http://www.r2du-soft.ir/download/!!list_program/Idm_info.txt
خوب حالا وقتی این رو توس تکست باکس نمایش میدم ، خط ها پی در پی هستن و بین هر خط فاصله نیست!
دقیقا به شکل زیر:
Internet Download Manager 6.12 Build 21 Final RetailVersion: 6.12 Build 21Zip Password: www.r2du-soft.ir
چطور میشه عین فایل تکست رو نمایش داد؟
نمیخوام فایل دانلود شه بعد نمایش داده بشه ، میخوام مستقیم از روی سرور خونده بشه و نمایش داده بشه تا سرعت کار بالا بره
مرسی
امین مستانی
جمعه 14 مهر 1391, 21:48 عصر
سلام علیکم
من در تاپیک قبلی پاسختون رو دادم
سلام علیکم
فکر میکنم مشکل از فایل متنی شما باشه
شما فایل رو بصورت ANSI سیو کنید و دوباره امتحان کنید
Text1.Text = GetWebContents("http://kokopark.persiangig.com/idm.txt")
از این کد هم میتونید استفاده کنید که برنامه قفل هم نمیکنه 
در قسمت References گزینه Microsoft WinHTTP Services, version 5.1 رو انتخاب کنید
Private WithEvents HttpSocket As WinHttp.WinHttpRequest
 
Private Sub Command1_Click()
    On Error Resume Next
    Set HttpSocket = New WinHttp.WinHttpRequest
    HttpSocket.Open "GET", Text1.Text, True
    HttpSocket.SetRequestHeader "Accept", "*/*"
    HttpSocket.Send
End Sub
Private Sub HttpSocket_OnResponseFinished()
    Text1.Text = HttpSocket.ResponseText
End Sub
موفق باشید
R2du-soft
جمعه 14 مهر 1391, 23:46 عصر
درسته امین جان با  ANSI مشکل کلمات "حححححح" که داخل تکست باکس میومد  حل شد ممنون بابتش داداشی
فقط این مشکلی که تو این تاپیک گفتم فرق داره ، متن داخل فایل تکست توی تکست باکس نمایش داده میشه ولی پی در پی ، (خط به خط نیست)
ممنون گلم
من فایل رو گفتم توی browser نشون بده که حل شد
با کد زیر:
Option Explicit
Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hWnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
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()
WebBrowser2.Navigate ("http://www.r2du-soft.ir/download/!!list_program/Idm_info.txt")
End Sub
amin32
شنبه 15 مهر 1391, 04:37 صبح
خاصیت MultiLine تکست باکس رو روی True گذاشتید؟
R2du-soft
شنبه 15 مهر 1391, 09:50 صبح
از اون نیست تستش کردم
vbhamed
شنبه 15 مهر 1391, 10:35 صبح
سلام
ميشه يك نمونه از فايل txt رو ضميمه كنيد
amin32
شنبه 15 مهر 1391, 11:01 صبح
فایلتون رو با WinHTTP Services لود کنید و در آخر دستور زیر رو هم اضافه کنید.
 
Text1.Text = Replace(Text1.Text, Chr(10), vbNewLine)
R2du-soft
شنبه 15 مهر 1391, 15:22 عصر
سلام
ميشه يك نمونه از فايل txt رو ضميمه كنيد
 
بفرمایید این آدرسش:  
http://www.r2du-soft.ir/download/!!list_program/Idm_info.txt
اینم از زمینه همون فایل
93653
R2du-soft
شنبه 15 مهر 1391, 15:27 عصر
فایلتون رو با WinHTTP Services لود کنید و در آخر دستور زیر رو هم اضافه کنید.
 
Text1.Text = Replace(Text1.Text, Chr(10), vbNewLine)
امین جان میشه در مورد WinHTTP Services بیشتر توضیح بدی چه چطور فایل رو لود کنم؟!
amin32
یک شنبه 16 مهر 1391, 08:11 صبح
امین جان میشه در مورد WinHTTP Services بیشتر توضیح بدی چه چطور فایل رو لود کنم؟!
 
در مورد نحوه لود کردن دوستان در بالا توضیح دادن. منم کد کامل رو میزارم براتون:
 
Private WithEvents HttpSocket As WinHttp.WinHttpRequest
 
Private Sub Command1_Click()
On Error Resume Next
Set HttpSocket = New WinHttp.WinHttpRequest
HttpSocket.Open "GET", "http://www.r2du-soft.ir/download/!!list_program/Idm_info.txt", True
HttpSocket.SetRequestHeader "Accept", "*/*"
HttpSocket.Send
End Sub
 
Private Sub HttpSocket_OnResponseFinished()
Text1.Text = HttpSocket.ResponseText
Text1.Text = Replace(Text1.Text, Chr(10), vbNewLine)
End Sub
 
البته یادتون باشه Microsoft WinHTTP Services, version 5.1 رو در قسمت References فعال کنید.
R2du-soft
یک شنبه 16 مهر 1391, 09:43 صبح
امین جان دقیقا از همین کد استفاده کردم ولی باز همین مشکل رو دارم
شما کد رو  مستقیم با ویژوال تست کردی؟
93678
amin32
یک شنبه 16 مهر 1391, 11:30 صبح
برنامه رو برات ضمیمه کردم . روی سیستم من که جواب داد.
 93687
 
93686
R2du-soft
یک شنبه 16 مهر 1391, 11:58 صبح
اوه ! مرسی amin32 (http://barnamenevis.org/member.php?162007-amin32) جان بسیار عالی بود ، خاصیت MultiLine رو یادم رفته بود True کنم
1 دنیا ممنون
vbhamed
دوشنبه 17 مهر 1391, 11:01 صبح
از اون نیست تستش کردم
 سلام
شما كه گفتيد تست كرده بوديد اين خاصيت رو
R2du-soft
دوشنبه 17 مهر 1391, 14:42 عصر
درسته این خاصیت رو تست کرده بودم ، ولی با کد جدید که آقا امین لطف کردن و گفتن ، این خاصیت رو یادم رفت true کنم
Nemesis_0131
سه شنبه 23 آبان 1391, 13:25 عصر
عذر می خوام که دوباره این تایپیک رو دوباره باز میکنم ولی اگه بخوای هر خط نوشته شما در یک ایندکس listbox قرار بگیره چیکار باید کرد؟
یعنی اینجا 3 خط داریم 
و در list box هم 3تا خط به خط اضافه بشن
محسن واژدی
سه شنبه 23 آبان 1391, 14:19 عصر
عذر می خوام که دوباره این تایپیک رو دوباره باز میکنم ولی اگه بخوای هر خط نوشته شما در یک ایندکس listbox قرار بگیره چیکار باید کرد؟
یعنی اینجا 3 خط داریم 
و در list box هم 3تا خط به خط اضافه بشن
 
سلام علیکم
ضمیمه پست 12 رو دانلود و کدهای زیر را در Form1 جایگزین کنین:
Private WithEvents HttpSocket As WinHttp.WinHttpRequest
Private Sub Command1_Click()
    On Error Resume Next
    Set HttpSocket = New WinHttp.WinHttpRequest
    HttpSocket.Open "GET", "http://www.r2du-soft.ir/download/!!list_program/Idm_info.txt", True
    List1.Clear
    HttpSocket.Send
End Sub
Private Sub HttpSocket_OnResponseFinished()
    Dim vCI
    For Each vCI In Split(HttpSocket.ResponseText, Chr(10))
        List1.AddItem vCI
    Next
End Sub
موفق باشید
 
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.