(11-08-24, 12:38 PM)Amir_Alzubidy كتب : المعذرة اخي الحبيب ربما هناك مشكلة بعدم فهم السؤال ،
اليك التعديل مجدداً و اتمنى ان يكون حلاً موفقاً .
ان لم يكن كذلك فلا بأس ، يمكنك ارفاق الملف النصي في ردك القادم للتجربة
تحياتي لك
PHP كود :
Imports System.IO
Imports System.Text.RegularExpressions
Public Class Form1
' افترض أن لديك 3 TextBox: txtSearch, txtResults, txtCount
' و Button واحد لتنفيذ البحث
Private Sub btnSearch_Click(sender As Object, e As EventArgs) Handles btnSearch.Click
Dim searchTerm As String = txtSearch.Text.Trim()
Dim filePath As String = "C:\path\to\CORAN.txt" ' قم بتحديث المسار إلى المسار الصحيح للملف
If String.IsNullOrEmpty(searchTerm) Then
MessageBox.Show("يرجى إدخال كلمة البحث.")
Return
End If
If Not File.Exists(filePath) Then
MessageBox.Show("الملف النصي غير موجود.")
Return
End If
Dim content As String = File.ReadAllText(filePath)
Dim regexPattern As String = String.Format("(\b\w+\b)?\s+\b{0}\b", Regex.Escape(searchTerm))
Dim regex As New Regex(regexPattern, RegexOptions.IgnoreCase Or RegexOptions.Multiline)
Dim matches As MatchCollection = regex.Matches(content)
Dim results As New Text.StringBuilder()
Dim count As Integer = matches.Count
For Each match As Match In matches
If match.Success Then
Dim previousWord As String = If(String.IsNullOrEmpty(match.Groups(1).Value), "", match.Groups(1).Value)
results.AppendLine($"{previousWord} {searchTerm}")
End If
Next
txtResults.Text = results.ToString()
txtCount.Text = count.ToString()
End Sub
End Class
المعذرة أخي الكريم
نفس النتيجة
الكود بعد تحويله إلى C#
private void btnSearch_Click(object sender, EventArgs e)
{
string searchTerm = txtSearch.Text.Trim();
string filePath = @"CORAN.txt"; // Update the path to the correct file path
if (string.IsNullOrEmpty(searchTerm))
{
MessageBox.Show("Please enter a search term.");
return;
}
if (!File.Exists(filePath))
{
MessageBox.Show("The text file does not exist.");
return;
}
string content = File.ReadAllText(filePath);
string regexPattern = $@"(\b\w+\b)?\s+\b{Regex.Escape(searchTerm)}\b";
Regex regex = new Regex(regexPattern, RegexOptions.IgnoreCase | RegexOptions.Multiline);
MatchCollection matches = regex.Matches(content);
StringBuilder results = new StringBuilder();
int count = matches.Count;
foreach (Match match in matches)
{
if (match.Success)
{
string previousWord = string.IsNullOrEmpty(match.Groups[1].Value) ? "" : match.Groups[1].Value;
results.AppendLine($"{previousWord} {searchTerm}");
}
}
txtResults.Text = results.ToString();
txtCount.Text = count.ToString();
}
فقط يعطيك مثلا سورة المؤمنون... و لا يعطيك بقية الآيات التي توجد فيها كلمة المؤمنون
الطلب مرة أخرى للتوضيح:
لدي ملف نصي يسمى QURAN.txt، والذي يحتوي على القرآن الكريم كاملاً، مكتوباً بعلامات التشكيل. اريد دالة بلغة سي شارب تبحث في هذا الملف النصي ولدي 3 مربعات نصية الأول هو لكتابة الكلمة التي أبحث عنها في هذا الملف النصي (كلمة الجمعة مثلاً).
والثاني هو لعرض هذه الكلمة + الكلمة التي قبلها مباشرة، مثلاً (سورة الجمعة أو يوم الجمعة). أريد أن تكون كل جملة في سطر منفصل
والثالث هو لمعرفة عدد الكلمة التي تبحث عنها في الملف النصي (عدد كلمة الجمعة مثلا.