المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : ســــــــؤال (هام جدااا ) خاص بالبحث في ملف نصي (Text )


ياسرهتهت
15-08-2017, 05:13 PM
بسم الله الرحمن الرحيم

الاساتذ الكرام
عندي هذا الملف النصي LIST.txt
مكتوب بهذا الشكل :

https://f.top4top.net/p_592j3dkb1.png

الاسم مفصول بالعلامة ( | ) ثم (Yas) او (no)
الاسم نفسه مكرر اكثر من مرة

السؤال : ما هو الكود المناسب لاقوم بالبحث عن اسم في الملف النصي
ويعطيني عدد مرات وجود الاسم مع (Yas) وعدد مرات وجود مع (no)

بهذا الشكل :

https://a.top4top.net/p_592azysk1.png

الملف المفتوح لتوضيح الفكره والتجربة

https://up.top4top.net/downloadf-5920j2071-rar.html



موفق بإذن الله ... لك مني أجمل تحية .

ياسرهتهت
16-08-2017, 06:32 AM
:abc_102::abc_102::abc_102::abc_102::abc_102:

المـهاجر
16-08-2017, 12:48 PM
عندما تبنى مبنى
لا تضع الأساس بشكل مائل
ثم تسأل عن كيفية إستعدال البناء

قم بتقويم الأساس
لا تصلح الملفات النصية لما انت بصدده الآن

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

عبد الهادي بهاب
16-08-2017, 12:51 PM
http://www.abc4web.net/vb/showthread.php?t=24581

ممكن

ثامر أبو بلقيس
16-08-2017, 02:25 PM
السلام عليكم ورحمة الله وبركاته
في زر البحث أكتب ياصديقي الكود :

Input.SetText("Input_Yas", "");Input.SetText("Input_no", "");
tblNames = TextFile.ReadToTable("AutoPlay\\Docs\\LIST.txt");
sResult=''
sResult2=''
local sNames = table.concat(tblNames,"%|%")
for i = 1, #tblNames do
local _,n = string.gsub(sNames,tblNames[i],"")
local sline = string.format("%s =%d",tblNames[i],n)
local _,d = string.gsub(sResult,sline,"")
if (d == 0) and tblNames[i] == Input.GetText("sersh").. '|Yas'then
Input.SetText("Input_Yas", String.Replace(sline, Input.GetText("sersh").. '|Yas =', "", false));
end
local sline2 = string.format("%s =%d",tblNames[i],n)
local _,d = string.gsub(sResult2,sline2,"")
if (d == 0) and tblNames[i] == Input.GetText("sersh").. '|No'then
Input.SetText("Input_no", String.Replace(sline2, Input.GetText("sersh").. '|No =', "", false));
end
end


لاحظ أني أتعامل مباشرة مع الملف لا ليستبوكس ولا غيره
موفق :abc_138:

عبد الهادي بهاب
16-08-2017, 03:24 PM
:abc_102::abc_102::abc_102::abc_102::abc_102:

https://up.top4top.net/downloadf-593fc8dz1-rar.html

ثامر أبو بلقيس
16-08-2017, 03:43 PM
http://www.abc4web.net/vb/showthread.php?t=24581

ممكن


ممكــــــــن

ياسرهتهت
16-08-2017, 03:44 PM
عندما تبنى مبنى
لا تضع الأساس بشكل مائل
ثم تسأل عن كيفية إستعدال البناء

قم بتقويم الأساس
لا تصلح الملفات النصية لما انت بصدده الآن

و حتى لو سلمنا بحتمية استخدام الملفات النصية
فتكرار الأسماء خطأ بجميع الأحوال
راجع السيناريو
تحياتى
------------
بسم الله الرحمن الرحيم
شكرا لك استاذ المهاجر على الرد والملاحظات
انا دائما احب توجيهاتك وملاحظاتك
اتمنا ان تعطيني فكرة احفظ بها قائمة اسماء
سيتكرر الاسم فيها مع yas او no
واستطيع بسهوله الحصول على عدد الـ yas no لاسم

موفق بإذن الله ... لك مني أجمل تحية .
:abc_152::abc_152:

ياسرهتهت
16-08-2017, 03:48 PM
http://www.abc4web.net/vb/showthread.php?t=24581

ممكن

بسم الله الرحمن الرحيم
شكرا لك استاذ عبد الهادي
:abc_152::abc_152:

ياسرهتهت
16-08-2017, 03:50 PM
https://up.top4top.net/downloadf-593fc8dz1-rar.html


بسم الله الرحمن الرحيم

افكارك رائعه استاذ عبد الهادي
واكوادك هي التي افهمها بسرعه
شكرا لك وبارك الله فيك
موفق بإذن الله ... لك مني أجمل تحية .
:abc_152::abc_152:

ياسرهتهت
16-08-2017, 03:54 PM
السلام عليكم ورحمة الله وبركاته
في زر البحث أكتب ياصديقي الكود :

Input.SetText("Input_Yas", "");Input.SetText("Input_no", "");
tblNames = TextFile.ReadToTable("AutoPlay\\Docs\\LIST.txt");
sResult=''
sResult2=''
local sNames = table.concat(tblNames,"%|%")
for i = 1, #tblNames do
local _,n = string.gsub(sNames,tblNames[i],"")
local sline = string.format("%s =%d",tblNames[i],n)
local _,d = string.gsub(sResult,sline,"")
if (d == 0) and tblNames[i] == Input.GetText("sersh").. '|Yas'then
Input.SetText("Input_Yas", String.Replace(sline, Input.GetText("sersh").. '|Yas =', "", false));
end
local sline2 = string.format("%s =%d",tblNames[i],n)
local _,d = string.gsub(sResult2,sline2,"")
if (d == 0) and tblNames[i] == Input.GetText("sersh").. '|No'then
Input.SetText("Input_no", String.Replace(sline2, Input.GetText("sersh").. '|No =', "", false));
end
end


لاحظ أني أتعامل مباشرة مع الملف لا ليستبوكس ولا غيره
موفق :abc_138:
------------------
بسم الله الرحمن الرحيم

كالعاده الاكواد الاحترافية والمميزه والابدعات
نجدها عند ابو بلقيس http://www.abc4web.net/vb/images/icons/icon_z.gif
شكرا جزيلا استاذي الفاضل
بارك الله فيك

:abc_138::abc_138:

ياسرهتهت
16-08-2017, 04:02 PM
ممكــــــــن

-------------------
بسم الله الرحمن الرحيم
انا بالامس وبالتعامل مع كود لاستاذ هيثم
لايجاد عدد مرات وجود كلمة في انبت

وصلة الي نيجة معقولة

هذا الكود

----------------------------------------------------------------------------------all

b = Input.GetText("Input1");
name = String.Replace(b, "|No", "", false);


get_string = name

all_txt = TextFile.ReadToString("AutoPlay\\Docs\\LIST.txt");
found = 0
result = 0
if get_string == "" then
Dialog.Message("Haitham.2012", "ÍÏÏ ÃæáÇ ÇáäÕ ÇáãÑÇÏ ÇáÈÍË Úäå")
else
repeat
result = result + 1
result = String.Find(all_txt, get_string, result, false);
if result ~= -1 then
found = found + 1
end
until result == -1
--Dialog.Message("Haitham.2012", "ÇáäÕ ( " ..name.. " ) æÌÏ ( " .. found .. " ) ãÑå / ãÑÇÊ", MB_OK, MB_ICONINFORMATION, MB_DEFBUTTON1)
Input.SetText("Inpall", found);

end
-----------------------------------------------------------------------------------------------yas
b = Input.GetText("Input1");
namess = String.Replace(b, "|No", "|Yas", false);


get_string = namess

all_txt = TextFile.ReadToString("AutoPlay\\Docs\\LIST.txt");
found = 0
result = 0
if get_string == "" then
Dialog.Message("Haitham.2012", "ÍÏÏ ÃæáÇ ÇáäÕ ÇáãÑÇÏ ÇáÈÍË Úäå")
else
repeat
result = result + 1
result = String.Find(all_txt, get_string, result, false);
if result ~= -1 then
found = found + 1
end
until result == -1
--Dialog.Message("Haitham.2012", "ÇáäÕ ( " ..name.. " ) æÌÏ ( " .. found .. " ) ãÑå / ãÑÇÊ", MB_OK, MB_ICONINFORMATION, MB_DEFBUTTON1)
Input.SetText("Inpyas", found);

end

---------------------------------------------------------------------no
get_string = Input.GetText("Input1");
name = String.Replace(get_string, "|No", "", false);
all_txt = TextFile.ReadToString("AutoPlay\\Docs\\LIST.txt");
found = 0
result = 0
if get_string == "" then
Dialog.Message("Haitham.2012", "ÍÏÏ ÃæáÇ ÇáäÕ ÇáãÑÇÏ ÇáÈÍË Úäå")
else
repeat
result = result + 1
result = String.Find(all_txt, get_string, result, false);
if result ~= -1 then
found = found + 1
end
until result == -1
--Dialog.Message("Haitham.2012", "ÇáäÕ ( " ..name.. " ) æÌÏ ( " .. found .. " ) ãÑå / ãÑÇÊ", MB_OK, MB_ICONINFORMATION, MB_DEFBUTTON1)
Input.SetText("Inpno", found);

end





























موفق بإذن الله ... لك مني أجمل تحية .

المـهاجر
16-08-2017, 04:43 PM
------------
بسم الله الرحمن الرحيم
شكرا لك استاذ المهاجر على الرد والملاحظات
انا دائما احب توجيهاتك وملاحظاتك
اتمنا ان تعطيني فكرة احفظ بها قائمة اسماء
سيتكرر الاسم فيها مع yas او no
واستطيع بسهوله الحصول على عدد الـ yas no لاسم

موفق بإذن الله ... لك مني أجمل تحية .
:abc_152::abc_152:



عن ماذا تعبر yes و no فى البرنامج ؟؟
حضور غياب ؟
رسوب نجاح ؟
و ماذا يعنى تكرارها ؟؟؟
معلومات مطلوبة لاضع لك تصور صحيح يبتعد تماما عن تكرار الاسماء

و دعك من محاولات وضع الفرس خلف العربة
امامها أو خلفها ستسير العربة
لكن اى الحالتين أسلس و ايسر ؟؟
:abc_152::abc_152:

فرح صالحي
16-08-2017, 05:20 PM
إستعدال




هذه المفردة جلبت انتباهي
تحياتي اخي عثمان

ياسرهتهت
16-08-2017, 05:21 PM
عن ماذا تعبر yes و no فى البرنامج ؟؟
حضور غياب ؟
رسوب نجاح ؟
و ماذا يعنى تكرارها ؟؟؟
معلومات مطلوبة لاضع لك تصور صحيح يبتعد تماما عن تكرار الاسماء

و دعك من محاولات وضع الفرس خلف العربة
امامها أو خلفها ستسير العربة
لكن اى الحالتين أسلس و ايسر ؟؟
:abc_152::abc_152:
--------
بسم الله الرحمن الرحيم
اقصد الحضور والغياب وما تهمني no هي لا نها تعني عدد ايام الغياب

عبود عبود
16-08-2017, 05:52 PM
--------
بسم الله الرحمن الرحيم
اقصد الحضور والغياب وما تهمني no هي لا نها تعني عدد ايام الغياب


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

المـهاجر
16-08-2017, 06:08 PM
هذه المفردة جلبت انتباهي
تحياتي اخي عثمان
مرحبا استاذ فرح
استعدال هى طلب التعديل و هى فصحى و ليست عامية
و أوأكد لحضرتك اننى لست عثمان مع كامل احترامى لشخصه المجهول تماما لى

المـهاجر
16-08-2017, 06:12 PM
--------
بسم الله الرحمن الرحيم
اقصد الحضور والغياب وما تهمني no هي لا نها تعني عدد ايام الغياب


امهلنى بعض الوقت
و تاكد ان السيناريو لن يخرج عن مجرد عداد بسيط بجوار الاسم
الاسماء لن تتكرر مطلقا
دون الحاجة للبحث عن متعدد
او اى تعقيدات اخرى

الا لو كنت تحتاج لرصد تاريخ الغياب (عليك الرد على تلك العبارة)

ياسرهتهت
16-08-2017, 06:32 PM
امهلنى بعض الوقت
و تاكد ان السيناريو لن يخرج عن مجرد عداد بسيط بجوار الاسم
الاسماء لن تتكرر مطلقا
دون الحاجة للبحث عن متعدد
او اى تعقيدات اخرى

الا لو كنت تحتاج لرصد تاريخ الغياب (عليك الرد على تلك العبارة)
----------------
بسم الله الرحمن الرحيم
يكفيتي فقط رصد عدد ايام الغياب بدون تسجيل التاريخ
:abc_152:

ياسرهتهت
16-08-2017, 06:35 PM
تقريبا كنت أعطيتك ملفا مشابها لهذه الحالة مستخدما عنصر جريد اى اكس "لست متذكر"

-----------------
بسم الله الرحمن الرحيم
نعم استاذ عبود اعطيتني ملف لتسجيل الغياب مستخدم عنصر الجريد
لكن لا يوضح عدد ايام ايام الغيب ؟

موفق بإذن الله ... لك مني أجمل تحية .
:abc_152:

المـهاجر
16-08-2017, 06:43 PM
----------------
بسم الله الرحمن الرحيم
يكفيتي فقط رصد عدد ايام الغياب بدون تسجيل التاريخ
:abc_152:

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

سنتعامل مع كائن الجريد العادى مع كودين اساسيين
Grid.LoadFromFile
لفتح قاعدة البيانات csv
و الكود
Grid.SaveToFile
للحفظ للملف csv

ذلك يفترض انك قد قمت بعمل ملف اكسل بالحقول
الاسم ... حالة الغياب .. التاريخ (اختيارى)
و انك قمت بحفظه بصيغة csv

لو لم يفتح معك csv فى الجريد بالأمر load فقم بفتحه بالنوت باد و اضغط ctrl + h و بدل العلامة , الى ; او العكس

المـهاجر
16-08-2017, 06:54 PM
-----------------
بسم الله الرحمن الرحيم
نعم استاذ عبود اعطيتني ملف لتسجيل الغياب مستخدم عنصر الجريد
لكن لا يوضح عدد ايام ايام الغيب ؟

موفق بإذن الله ... لك مني أجمل تحية .
:abc_152:

عذرا فلم انتبه لهذه المشاركة
-----------------
لكن لا يوضح عدد ايام ايام الغيب ؟


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

ياسرهتهت
17-08-2017, 12:10 AM
لا مشاكل
لن نتعامل مع سيكوال لأجنبك تعقيداتها
لن نتعامل مع ملفات اينى ini فهى الأخرى قد تربكك
و قطعا ليست ملفات تيكست فهى سهلة فى التسجيل و كارثة فى الاسترجاع

سنتعامل مع كائن الجريد العادى مع كودين اساسيين
Grid.LoadFromFile
لفتح قاعدة البيانات csv
و الكود
Grid.SaveToFile
للحفظ للملف csv

ذلك يفترض انك قد قمت بعمل ملف اكسل بالحقول
الاسم ... حالة الغياب .. التاريخ (اختيارى)
و انك قمت بحفظه بصيغة csv

لو لم يفتح معك csv فى الجريد بالأمر load فقم بفتحه بالنوت باد و اضغط ctrl + h و بدل العلامة , الى ; او العكس

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

:abc_022:كل الشكر والتفدبر:abc_022:

موفق بإذن الله ... لك مني أجمل تحية .
:abc_152::abc_152:

عبود عبود
17-08-2017, 01:12 AM
-----------------
بسم الله الرحمن الرحيم
نعم استاذ عبود اعطيتني ملف لتسجيل الغياب مستخدم عنصر الجريد
لكن لا يوضح عدد ايام ايام الغيب ؟

موفق بإذن الله ... لك مني أجمل تحية .
:abc_152:

كان من الممكن إستخدام هذا الكود فى زر جديد :

--
result = Dialog.Input("Enter Data", "Name :", "", MB_ICONQUESTION);
if result~="CANCEL" and result~="" then
good=0;
bad=0;
unknown=0;
t = XML.Count("document", "informations");
for i=1, t do
M = XML.Count("document/informations", "*");
for x=1, M do
name = XML.GetValue("document/informations:"..i.."/Student:"..x.."/name");
if name==result then
_case = XML.GetValue("document/informations:"..i.."/Student:"..x.."/case");
if _case=="ÍÖæÑ" then
good=good+1;
elseif _case=="ÛíÇÈ" then
bad=bad+1;
elseif _case=="áã íÊã ÊÍÏíÏ ÇáÍÇáÉ" then
unknown=unknown+1;
end
break
end
end
end
Dialog.Message("","ÍÖæÑ ÇáØÇáÈ ÚÏÏ = "..good.." íæã");
Dialog.Message("","ÛíÇÈ ÇáØÇáÈ ÚÏÏ = "..bad.." íæã");
Dialog.Message("","áã íÊã ÊÍÏíÏ ÇáÍÇáÉ ÚÏÏ = "..unknown.." íæã");
end

:abc_138:

المـهاجر
17-08-2017, 01:20 AM
----------------------
بسم الله الرحمن الرحيم
شكرا لك استاذ المهاجر
وصلت الفكرة وجاري العمل عليها
ساعود اليك اذا توقفت عند نقطة

:abc_022:كل الشكر والتفدبر:abc_022:

موفق بإذن الله ... لك مني أجمل تحية .
:abc_152::abc_152:


أحسنت
فالمنطق السديد هو ان تتبع أسهل أقوى الطرق المتاحة لك
لا منافس هنا ل csv و الجريد
ان كنت تريد السهولة الفائقة المقرونة بالقوة
بالتوفيق
:abc_152: :abc_152: :abc_152:
:abc_152::abc_152:
:abc_152:

ياسرهتهت
17-08-2017, 03:18 AM
كان من الممكن إستخدام هذا الكود فى زر جديد :

--
result = Dialog.Input("Enter Data", "Name :", "", MB_ICONQUESTION);
if result~="CANCEL" and result~="" then
good=0;
bad=0;
unknown=0;
t = XML.Count("document", "informations");
for i=1, t do
M = XML.Count("document/informations", "*");
for x=1, M do
name = XML.GetValue("document/informations:"..i.."/Student:"..x.."/name");
if name==result then
_case = XML.GetValue("document/informations:"..i.."/Student:"..x.."/case");
if _case=="ÍÖæÑ" then
good=good+1;
elseif _case=="ÛíÇÈ" then
bad=bad+1;
elseif _case=="áã íÊã ÊÍÏíÏ ÇáÍÇáÉ" then
unknown=unknown+1;
end
break
end
end
end
Dialog.Message("","ÍÖæÑ ÇáØÇáÈ ÚÏÏ = "..good.." íæã");
Dialog.Message("","ÛíÇÈ ÇáØÇáÈ ÚÏÏ = "..bad.." íæã");
Dialog.Message("","áã íÊã ÊÍÏíÏ ÇáÍÇáÉ ÚÏÏ = "..unknown.." íæã");
end

:abc_138:

---------
بسم الله الرحمن الرحيم
شكرا استاذ عبود
:abc_025: جاري محاولة فهم وتطويع الكود المرسل :abc_025:

موفق بإذن الله ... لك مني أجمل تحية .
:abc_152::abc_152::abc_152:
:abc_152::abc_152:
:abc_152: