منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب
[سؤال] كيفية عرض نص موجود على الانترنت داخل اداة مربع نص (الحصول على بيانات من صفحة ويب) - نسخة قابلة للطباعة

+- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb)
+-- قسم : قسم لغات البرمجة الاخرى (http://vb4arb.com/vb/forumdisplay.php?fid=4)
+--- قسم : قسم لغة vb6.0 (http://vb4arb.com/vb/forumdisplay.php?fid=18)
+---- قسم : قسم أسئلة vb6.0 (http://vb4arb.com/vb/forumdisplay.php?fid=28)
+---- الموضوع : [سؤال] كيفية عرض نص موجود على الانترنت داخل اداة مربع نص (الحصول على بيانات من صفحة ويب) (/showthread.php?tid=21618)

الصفحات: 1 2


كيفية عرض نص موجود على الانترنت داخل اداة مربع نص (الحصول على بيانات من صفحة ويب) - Mohamad Anan - 08-09-17

السلام عليكم و رحمة الله و بركاته

اخواني اعرف طريقة الحصول على بيانات من جدول في صفحة ويب و بقية الادوات و الوسوم و العقد
لكن واجهتني صفحة أقرب إلى ملف نصي منها إلى صفحة الويب و محتويات الصفحة كالتالي:

{"Name1": "Value1", "Name2": "Value2", "Name3": "Value3"}

كيف يمكن الحصول على القيم من هذه الصفحة و هي لا تحتوي على اي وسوم و جسم او عنوان او اي كود مصدري
فقط تحتوي على السطر السابق


RE: كيفية عرض نص موجود على الانترنت داخل اداة مربع نص (الحصول على بيانات من صفحة ويب) - Ahmed_Mansoor - 10-09-17

وعليكم السلام ورحمة الله وبركاته

أهلا بك أخي الكريم , يمكنك الحصول على محتوى الصفحة من خلال الأمر :

PHP كود :
WebBrowser1.document.body.outerText 



RE: كيفية عرض نص موجود على الانترنت داخل اداة مربع نص (الحصول على بيانات من صفحة ويب) - Mohamad Anan - 10-09-17

الف شكر اخي احمد على التفاعل و الرد
المشكلة ان الاداة WebBrowser لا تعرض الصفحة بل تقوم بعرض مربع حوار التحميل لتنزيل الملف
الرابط لجلب اسعار الذهب قد تستفيد منه
"http://www.goldsilverapps.com/gs/lp/v1/lp/1"
انا اتعامل مع الصفحة بالكود
MSHTML.HTMLDocument


RE: كيفية عرض نص موجود على الانترنت داخل اداة مربع نص (الحصول على بيانات من صفحة ويب) - Mohamad Anan - 10-09-17

اخي سعود
الفكرة هي تحويل برنامج اندرويد ليعمل على ويندوز
اي حل لعرض اول رقم في الصفحة و هو سعر الاونصة داخل مربع نص اكون شاكر لتعاونكم
الصفحة التي في الزابط مجهزة ليتعامل معها برنامج اندرويد و هي تحتوي فقط على مصفوفة


RE: كيفية عرض نص موجود على الانترنت داخل اداة مربع نص (الحصول على بيانات من صفحة ويب) - Mohamad Anan - 10-09-17

السلام عليكم و رحمة الله و بركاته
أخي الكريم:
في المثال المرفق تم الحصول على المطلوب بعد تحميل الصفحة على القرص
كان الهدف جلب القيمة مباشرة دون الحاجة لحفظ الملف على القرص
لأن البرنامج يحدث القيمة بشكل مستمر خلال فترة قصيرة


RE: كيفية عرض نص موجود على الانترنت داخل اداة مربع نص (الحصول على بيانات من صفحة ويب) - Ahmed_Mansoor - 10-09-17

وعليكم السلام ورحمة الله وبركاته

أهلا بك أخي الكريم , تم تعديل المثال .


RE: كيفية عرض نص موجود على الانترنت داخل اداة مربع نص (الحصول على بيانات من صفحة ويب) - Mohamad Anan - 10-09-17

(10-09-17, 01:28 PM)Ahmed_Mansoor كتب : وعليكم السلام ورحمة الله وبركاته

أهلا بك أخي الكريم , تم تعديل المثال .
جزاك الله خيرا أخي الكريم أحمد
كفيت و وفيت
ألف شكر


RE: كيفية عرض نص موجود على الانترنت داخل اداة مربع نص (الحصول على بيانات من صفحة ويب) - سعود - 10-09-17

اخواني الكرام الفضول شدد علي بالمشاركة بالموضوعSmile
اول شي انظرو لصورة التطبيق:

واجهة vb6.0 ترسل رابط الصفحة وترسل كلمة المفتاح كما هو واضح بالصورة.

كود :
Private Sub Command1_Click()
Dim ob As Object
Set ob = CreateObject("GetStringsFromHtmlSource.GetStrings")
Text1.Text = ob.gstr("http://www.goldsilverapps.com/gs/lp/v1/lp/1", k.Text)
End Sub


وملف dll يحمل الصفحة ويرجع قيمة المفتاح.

من جهة الدوت نت عملت كلاس ليبراري
GetStringsFromHtmlSource.dll

و هذا هو محتواه:
كود :
Imports System.Text.RegularExpressions
Public Class GetStrings
   Public Function gstr(ByVal url As String, ByVal k As String) As String
       Dim lstkeys As New List(Of String)
       Dim lstvalues As New List(Of String)
       Dim html As String = ""
       Dim wc As New Net.WebClient
       html = wc.DownloadString(url)
       For Each h As String In html.Split(",")
           Dim str As String = """(.*?)"":.*?""(.*?)"""
           Dim reg As New Regex(str, RegexOptions.IgnoreCase)
           For Each ma As Match In reg.Matches(h)
               lstkeys.Add(ma.Groups(1).Value)
               lstvalues.Add(ma.Groups(2).Value)
           Next
       Next
       Return lstvalues(lstkeys.IndexOf(k))
   End Function
End Class
هذا من باب الفضول ليس الا Smile
و هذا لا يعني اني لا اريد تقديم المعلومة لكن اذا جاء الفضول متاخراSad
الله يكتب اجر الجميع.


RE: كيفية عرض نص موجود على الانترنت داخل اداة مربع نص (الحصول على بيانات من صفحة ويب) - Mohamad Anan - 10-09-17

السلام عليكم
ألف شكر اخواني على التفاعل
و لتعم الفائدة أرفقت مثال جديد لتبسيط المسالة


RE: كيفية عرض نص موجود على الانترنت داخل اداة مربع نص (الحصول على بيانات من صفحة ويب) - أبو نوره - 10-09-17

مرحبا اخى

اذا استخدمت (Mid(StrSource, 9, 7 ستواجه مشكله لو نقص طول الرقم عن سبعه

الافضل تستخدم RegEx وهذه طريقتها

اضف المرجع التالى Microsoft VBScript Regular Expressions 5.5
وهذا تعديل الكود
PHP كود :
Private Sub cmdGetPrice_Click()

 
   cmdGetPrice.Enabled False
    
    Dim StrSource 
As String
    StrSource 
GetHTMLSource("http://www.goldsilverapps.com/gs/lp/v1/lp/1")
 
   
    
'Reference: Microsoft VBScript Regular Expressions 5.5'
 
   
    Dim myRegExp 
As RegExp
    Set myRegExp 
= New RegExp
    myRegExp
.Pattern "(\d+\.?\d+)"
 
   Dim myMatches As MatchCollection
    Set myMatches 
myRegExp.Execute(StrSource)
 
   If myMatches.Count 0 Then
        lblPrice
.Caption myMatches(0).Value
    End 
If
 
   
    cmdGetPrice
.Enabled True
End Sub