ممكن .. الموضوع معقد او يحتاج الى تحديد بالضبط كيف سنحدد الكلمات ولكن هذا مثال سريع ...
ما رأيك؟
ممكن .. الموضوع معقد او يحتاج الى تحديد بالضبط كيف سنحدد الكلمات ولكن هذا مثال سريع ...
ما رأيك؟
فعلاً
بيقولو لا تحتار مع مختار
و أنا أقول لا تحتار مع hamohd70;)
بالفعل اخوي hamohd70 الكود شغال مية بالمية وهو ما احتاج بالضبط .. ما شاء الله عليك ورعاك .. الف الف الف شكر بصراحة
لكن الشيء الجيد ما بيكتمل للاسف :( .. ان كان حجم صفحة ال HTML ما يقرب من 28 كيلو فان البرنامج يتوقف عن الاستجابة .. توصلت الى هذا بعد ان قمت باستبدال ملف mdb.dat (حجمه 79 كيلوبايت) الذي يقوم الكود بمقارنة ما يحويه بمحتويات الصفحة لكن لم يكن منه فقمت باستبدال الصفحة التي استخدمتها (حجمها 28 كيلو) بتلك الصغيرة مع الكود ( تقريبا 2 كيلو) فسارت الامور على خير ما يرام ..
السؤال الان يكمن .. كيف يمكن التخلص من هذه المشكلة ..؟
هناك عدة حلول باعتقادي .. ما يخطر ببالي الان وهو ان اقوم بتقليل حجم صفحة ال HTML وذلك بالتخلص من اسطر معينة فيها والابقاء على ما اريد .. هذا يتطلب معرفة ارقام الاسطر المطلوب التخلص منها صح؟
طريقة اخرى قمت بتجربتها منذ قليل اعتقد تحل المشكلة .. وهي تحميل محتويات الصفحة في RichTextBox وعند النقر على الزر يقوم بالحصول على كلمات معينة من محتويات ال RichTextBox ووضعها في الليست
قمت بكتابة هذا الكود للحصول على تلك الكلمات حيث يقوم بالحصول على ما يتوسط حروف معينة ..:
Public Function GetName(Inp As String) As String '<img src=http://www.msn.com/header.jpg border=0> Dim chrOpen As String Dim chrClose As String Dim phrIMG As String Dim phrSRC As String Dim phrURL As String Dim phrBORDER As String Dim strFirst As String Dim strLast As String chrOpen = InStr(1, Inp$, "<") chrClose = InStr(1, Inp$, ">") phrIMG = InStr(1, Inp$, "<img" & Chr$(32)) phrSRC = InStr(1, Inp$, "src=") phrURL = InStr(1, Inp$, "http://www.msn.com/") phrBORDER = InStr(1, Inp$, ".jpg border=0") strFirst = InStr(1, Inp$, "<img src=http://www.msn.com/") strLast = InStr(1, Inp$, ".jpg border=0>") If chrOpen Then If chrClose Then If phrIMG Then If phrSRC Then If phrURL Then If strFirst Then If strLast Then Inp$ = Mid$(Inp$, phrURL + 19) GetName$ = Mid(Inp$, 1, InStr(1, Inp$, ".") - 1) End If End If End If End If End If End If End If End Function
لكن هنا توقفت فليس لدي خبرة مع اللوائح والتكرار فيها ..
لاحظ صفحة page.htm يوجد فيها كودين للصور يتم وضع الاسم الاول في الليست لكن كيف يمكنني ان اعدل او اضيف على الكود السابق لجعله يقوم بوضع الاسم الثاني في الليست ايضا ..؟
ارجو ان اجد الحل لهذه المشكلة فمستقبل البرنامج يتوقف عليه :(
و شكرا مرة اخرى اخي الغالي hamohd70
(f)(f)(f)
Do as I say, not as I do
We are Anonymous. We are Legion. We don't forgive. We don't forget
بالفعل اخوي hamohd70 الكود شغال مية بالمية وهو ما احتاج بالضبط .. ما شاء الله عليك ورعاك .. الف الف الف شكر بصراحة
لكن الشيء الجيد ما بيكتمل للاسف :( .. ان كان حجم صفحة ال HTML ما يقرب من 28 كيلو فان البرنامج يتوقف عن الاستجابة .. توصلت الى هذا بعد ان قمت باستبدال ملف mdb.dat (حجمه 79 كيلوبايت) الذي يقوم الكود بمقارنة ما يحويه بمحتويات الصفحة لكن لم يكن منه فقمت باستبدال الصفحة التي استخدمتها (حجمها 28 كيلو) بتلك الصغيرة مع الكود ( تقريبا 2 كيلو) فسارت الامور على خير ما يرام ..
السؤال الان يكمن .. كيف يمكن التخلص من هذه المشكلة ..؟
هناك عدة حلول باعتقادي .. ما يخطر ببالي الان وهو ان اقوم بتقليل حجم صفحة ال HTML وذلك بالتخلص من اسطر معينة فيها والابقاء على ما اريد .. هذا يتطلب معرفة ارقام الاسطر المطلوب التخلص منها صح؟
طريقة اخرى قمت بتجربتها منذ قليل اعتقد تحل المشكلة .. وهي تحميل محتويات الصفحة في RichTextBox وعند النقر على الزر يقوم بالحصول على كلمات معينة من محتويات ال RichTextBox ووضعها في الليست
قمت بكتابة هذا الكود للحصول على تلك الكلمات حيث يقوم بالحصول على ما يتوسط حروف معينة ..:
Public Function GetName(Inp As String) As String '<img src=http://www.msn.com/header.jpg border=0> Dim chrOpen As String Dim chrClose As String Dim phrIMG As String Dim phrSRC As String Dim phrURL As String Dim phrBORDER As String Dim strFirst As String Dim strLast As String chrOpen = InStr(1, Inp$, "<") chrClose = InStr(1, Inp$, ">") phrIMG = InStr(1, Inp$, "<img" & Chr$(32)) phrSRC = InStr(1, Inp$, "src=") phrURL = InStr(1, Inp$, "http://www.msn.com/") phrBORDER = InStr(1, Inp$, ".jpg border=0") strFirst = InStr(1, Inp$, "<img src=http://www.msn.com/") strLast = InStr(1, Inp$, ".jpg border=0>") If chrOpen Then If chrClose Then If phrIMG Then If phrSRC Then If phrURL Then If strFirst Then If strLast Then Inp$ = Mid$(Inp$, phrURL + 19) GetName$ = Mid(Inp$, 1, InStr(1, Inp$, ".") - 1) End If End If End If End If End If End If End If End Function
لكن هنا توقفت فليس لدي خبرة مع اللوائح والتكرار فيها ..
لاحظ صفحة page.htm يوجد فيها كودين للصور يتم وضع الاسم الاول في الليست لكن كيف يمكنني ان اعدل او اضيف على الكود السابق لجعله يقوم بوضع الاسم الثاني في الليست ايضا ..؟
ارجو ان اجد الحل لهذه المشكلة فمستقبل البرنامج يتوقف عليه :(
و شكرا مرة اخرى اخي الغالي hamohd70
Do as I say, not as I do
We are Anonymous. We are Legion. We don't forgive. We don't forget
فعلا سيتوقف البرنامج عن الاستجابه لانشغاله في ال loops ولا علاقه لحجم الملف بذلك ...
الحل هي ان ضيف DoEvents بداخل الloop .
جرب هذا...
اعتقد ان المشكلة قد حلت وارجو الا يكون حلها تم بشكل جزئي ..في البداية لم يحدث شئ ولم يظهر في الليست اي كلمة .. انتظرت لفترة دون جدوى .. لكن بعدها قمت باستبدال ملف mdb.dat الذي اقوم بالعمل عليه بالملف dat.dat المرفق مع الكود وصفحة ال HTML هي ذات ال 28 كيلو فنجح الامر ..
في هذه الحال يجب الانتظار فقط كي تظهر النتائج ان كان حجم الملف mdb.dat كبيرا قليلا ..
سؤال اخي hamohd70 هل يمكن جعل اظهار النتائج في الليست فوري كبرامج كشف الفيروسات مثلا .. فان تطابقت كلمة تم وضعها ثم يتابع الكود عمله ليبحث عما يليها ؟
ان كان الامر معقدا او يحتاج الى وقت لكتابة الكود فلا تزعج نفسك ما قصرت ابدا اخي .. والشكر الحار لك
Do as I say, not as I do
We are Anonymous. We are Legion. We don't forgive. We don't forget
يبدو انه يقوم بالفعل باظهار السطر عند التطابق ويتابع لما يليه ككواشف الفيروسات ..
.. استفساراتي يبدو انها لن تنتهي ..
استفسارين : 1- هل يمكن جعل المطابقة بين الملفين casesensitive ? (لاحظ في الملف المرفق لمعرفة السبب حيث يتم وضع اي كلمة طالما تطابقت الحروف الاولية ! وهذا مرفوض بتاتا فكيف يمكن جعله يطابق الكلمة كاملة فان وجدت يرصفها) + ان تكرر احد السطور الناتجة فان البرنامج يتجاهله.
2- ايضا في الملف المرفق .. بعد انتهاء عملية البحث اود ان اقوم بانشاء صفحة html مثلا تحوي قائمة مرتبة تعتمد على الليست .. بمعنى
السطر الاول الذي تشكل من الليست يتم وضعه في كود رابط (كما سترى في تطبيق الفيجوال المرفق)
السطر الثاني في رابط 2 وهكذا
ارجو الا تكون طلباتي كثيرة ومزعجة وشكرا لك .. دوما :)
اخوك NOP
Do as I say, not as I do
We are Anonymous. We are Legion. We don't forgive. We don't forget
لا مشكله على الاطلاق ...
الكود الذي اعطيتك اياه كان من المتوقع ان يكون بطيئأ بسبب الكود المستخدم و لكن سأحاول ان اجعلة سريعا....
اقتباسالموضوع معقد او يحتاج الى تحديد بالضبط كيف سنحدد الكلمات
هذا متوقع جدا ما تسأل عنه الآن..سأحاول ان اجيب طلباتك ولكن احتاج الى الراحه اولا ثم نستأنف العمل.
وانا شاكر جدا جدا لك مجهودك الجبار ومساعداتك القيمة جدا (f)(gift)
Do as I say, not as I do
We are Anonymous. We are Legion. We don't forgive. We don't forget
بصراحة اقل ما يمكن ان اقول هو الشكر الجزيل لك اخي hamohd70 بالفعل البحث صار سريع بشكل واضح جدا ولا يؤدي الى انقاص مصادر النظام ابدا ..
كل شئ تمام ويعمل بكفاءة والحمد لله
بالنسبة للصفحة التي يتم انتاجها .. فان ما يتطابق من كلام يتم وضعه لكن التطابق لا يكون بنسبة 100% فكلمة align مثلا يتم وضع ali في الصفحة فهل يمكن جعلها حساسة لحالة الاحرف ؟
(راجع الملف المرفق)
تحياتي الحارة لك (f)(f)(f)
Do as I say, not as I do
We are Anonymous. We are Legion. We don't forgive. We don't forget
لم تصادفني هذه المشكله ::
Align ليست align و ليست ali او Ali لأن المقارنه في الvb اصلا case sensitive الا اذا تم طلب عكس ذلك...
:eek: غريبة .. ساتاكد اكثر من مرة ,, شكرا على الرد اخي hamohd70 والف شكر على مساعداتك الجد قيمة(f)
Do as I say, not as I do
We are Anonymous. We are Legion. We don't forgive. We don't forget
شاهد بنفسك .. (ملحوظة: لم اقم بقلب اسماء الملفات كما اخبرتني المرة السابقة لان كود البرنامج الذي اعمل عليه طويل والتغيير كان سيتطلب وقت طويل فتركته كما هو واشتغل بدون مشاكل .. فهل هذا هو سبب المشكلة هذه ؟)
Do as I say, not as I do
We are Anonymous. We are Legion. We don't forgive. We don't forget
لاحظ اني غيرت الكود لصنع ملف htm من append الى output و السبب ان هو الرغبه في صنع ملف جديد ... والخيار لك و لما تراه طبعا حسب حاجتك..
كما ان كود البحث و المقارنه سيعمل مع ما يمكن ان نسميه standard words اي تلك التي تحتوي على احرف فقط اما اذا تم استخدام ارقام او علامات مثل $ او # فلن يعمل كما يجب... لهذا اخبرتك ان الكود معقد نوعا ما و يحتاج الى مناقشه لكتابه ما تريد بالضبط..
ما شاء الله اخوي والله يزيدك من علمه اكثر واكثر ووفقك في خطاك .. الشكر قليل جدا جدا جدا ..
يمكنك القول بان لك 90% من شغل البرنامج :o لكن كما يقال ومنكم نستفيد .. (والله صرت استحي يكون مسماي عضو محترف وانت نفسه على العكس بالفعل تستحق مسمى اخر اعلى او ان يخفضوا مسماي ولن اغفل عن تبليغ المشرفين بهذه المساعدة القيمة المتتابعة)
تحياتي واحترامي (f)
Do as I say, not as I do
We are Anonymous. We are Legion. We don't forgive. We don't forget
:)
هذا الموضوع مغلق.