البرمجة

استخراج معلومات المهام باستخدام VBScript و Regex في ملفات النص

عندما يتعلق الأمر بفصل معلومات محددة من ملف نصي، يمكن استخدام الأدوات المناسبة لتحقيق هذا الهدف. في سياق طلبك، يمكن استخدام VBScript مع الأمر Split أو تعبيرات الرجوع إلى التعبيرات العادية (Regex) لاستخراج معلومات محددة.

لنبدأ بالفحص باستخدام VBScript وأمر Split للحصول على اسم المهمة (Task Name) وآخر نتيجة (Last Result) من النص المقدم. يمكن تحقيق ذلك عبر تحليل النص باستخدام الفراغ كفاصل:

vbscript
' قراءة النص من الملف Set objFSO = CreateObject("Scripting.FileSystemObject") Set objFile = objFSO.OpenTextFile("مسار_الملف.txt", 1) strText = objFile.ReadAll objFile.Close ' فصل النص باستخدام الفراغ كفاصل arrText = Split(strText, " ") ' البحث عن اسم المهمة وآخر نتيجة For i = LBound(arrText) To UBound(arrText) If InStr(arrText(i), "TaskName=") = 1 Then taskName = Mid(arrText(i), 10) ElseIf InStr(arrText(i), "LastResult=") = 1 Then lastResult = Mid(arrText(i), 11) End If Next ' عرض النتائج WScript.Echo "اسم المهمة: " & taskName WScript.Echo "آخر نتيجة: " & lastResult

باستخدام هذا الكود، يتم قراءة النص من الملف، ثم يتم فصله إلى مصفوفة باستخدام الفراغ كفاصل. يتم بعد ذلك البحث في المصفوفة للعثور على سلسلتي “TaskName=” و “LastResult=” واستخراج القيم المقابلة.

بالنسبة للتعبيرات العادية (Regex)، يمكن استخدامها أيضًا لنفس الهدف. في هذا السياق، يمكن استخدام الأنماط النمطية لاستخراج البيانات بشكل دقيق. ومن الممكن أن يكون الكود كما يلي:

vbscript
Set objFSO = CreateObject("Scripting.FileSystemObject") Set objFile = objFSO.OpenTextFile("مسار_الملف.txt", 1) strText = objFile.ReadAll objFile.Close ' تحديد الأنماط النمطية patternTaskName = "TaskName=(\S+)" patternLastResult = "LastResult=(\S+)" ' إجراء التطابق باستخدام Regex Set regex = New RegExp regex.Global = True regex.IgnoreCase = True regex.Pattern = patternTaskName Set matches = regex.Execute(strText) If matches.Count > 0 Then taskName = matches(0).SubMatches(0) End If regex.Pattern = patternLastResult Set matches = regex.Execute(strText) If matches.Count > 0 Then lastResult = matches(0).SubMatches(0) End If ' عرض النتائج WScript.Echo "اسم المهمة: " & taskName WScript.Echo "آخر نتيجة: " & lastResult

يُظهر هذا الكود استخدام تعبيرات الرجوع إلى التعبيرات العادية للبحث عن أنماط معينة في النص واستخراج البيانات المطلوبة.

المزيد من المعلومات

عند التعامل مع ملفات النص واستخراج المعلومات منها باستخدام VBScript، يمكن توسيع الكود لاستخراج المزيد من المعلومات أو تحسينه لتحقيق الأداء المثلى. يمكننا أيضًا إضافة مزيد من التحكم في استخراج البيانات وضبط الأنماط النمطية.

قد يكون من المفيد إلقاء نظرة على مثال يقوم بفصل واستخراج معلومات متقدمة من النص، مثل تاريخ آخر تشغيل وحالة المهمة. اليك الكود المحسن:

vbscript
Set objFSO = CreateObject("Scripting.FileSystemObject") Set objFile = objFSO.OpenTextFile("مسار_الملف.txt", 1) strText = objFile.ReadAll objFile.Close ' تحديد الأنماط النمطية patternTaskName = "TaskName=(\S+)" patternLastResult = "LastResult=(\S+)" patternLastRunTime = "LastRunTime=""([^""]+)""" patternTaskState = "TaskState=(\S+)" ' إجراء التطابق باستخدام Regex Set regex = New RegExp regex.Global = True regex.IgnoreCase = True ' استخراج اسم المهمة regex.Pattern = patternTaskName Set matches = regex.Execute(strText) If matches.Count > 0 Then taskName = matches(0).SubMatches(0) End If ' استخراج آخر نتيجة regex.Pattern = patternLastResult Set matches = regex.Execute(strText) If matches.Count > 0 Then lastResult = matches(0).SubMatches(0) End If ' استخراج تاريخ آخر تشغيل regex.Pattern = patternLastRunTime Set matches = regex.Execute(strText) If matches.Count > 0 Then lastRunTime = matches(0).SubMatches(0) End If ' استخراج حالة المهمة regex.Pattern = patternTaskState Set matches = regex.Execute(strText) If matches.Count > 0 Then taskState = matches(0).SubMatches(0) End If ' عرض النتائج WScript.Echo "اسم المهمة: " & taskName WScript.Echo "آخر نتيجة: " & lastResult WScript.Echo "تاريخ آخر تشغيل: " & lastRunTime WScript.Echo "حالة المهمة: " & taskState

يُضاف هنا استخراج تاريخ آخر تشغيل وحالة المهمة باستخدام أنماط نمطية جديدة. يمكن توسيع الكود بمزيد من الأنماط لاستخراج المعلومات الإضافية حسب حاجتك.

زر الذهاب إلى الأعلى