السلام عليكم
ترددت أين أضع هذا السؤال
لكن قررت أن أضعه هنا وأرجو أن أكون قد أصبت
أريد تحويل الكود التالي من السي بلس بلس لاستخدامه في الدلفي
مع العلم أم هذه الدالة تقوم بتقسيم جملة اعتمادا على الفراغات الموجودة فيها والمعروفة في السي بلس بلس بـ (Split)
//دالة التقسيم
public string[] split(string str)
{
//جدول مؤقت طوله بعدد الاحرف في الجملة الامدخلة
string[]resTemp=new string[str.Length];
//جدول نضع في النتيجة النهائية
string[] res;
//متغير حقيقي نحفظ فيه الخانة الموالية
int index = 0;
//متغير حقيقي لحساب طول الجدول النتيجة
int length = 0;
// متغير من نوع ستينغ في كل مرة يحوي كلمة من الجملة
string temp = "";
//عملية التقسيم
for (int i = 0; i < str.Length; i++)//من 0 الى عدد احرف الجملة ننظر
{
//اذا كان الحرف عبارة عن مسافة يعني ان الكلمة انتهت فنقوم بالاحتفاظ بها
if (str.Equals(' '))
{
//نحفظ الكلمة في الخانة الموالية
resTemp[index] = temp;
//نضيف 1 الى الاندكس لتعليم الخانة التالية
index++;
//نفرغ المتغير تحضيرا للكلمة الموالية
temp = "";
//نضيف 1 لطول النتيجة لاننا اضفنا كلمة جديدة
length++;
}
//اذا كان الحرف ليس مسافة يعني انه حرف عادي نضيفه للكلمة التي نعمل على تجميعها في المتغير
else
{
temp += str;
}
}
//هذه حالة خاصة
//الكلمة الاخيرة لا يوجد ما نجرب به بعدها اذا سوف تبقى في المتغير ولن يتم اضافتها
//لذا نقوم باختبارها اخر الامر
if (temp!="")
{
resTemp[index] = temp;
length++;
}
//ننشي جدول النتيجة بالطول الذي قمنا بعده من قبل
res = new string[length];
//نقوم بملي الجدول النتيجة من الجدول المؤقت على حسب الطول الذي عددناه سابقا
//والذي هو طول الجدول النتيجة
for (int i = 0; i < length; i++)
{
res=resTemp;
}
//الان انتهى الامر ونعيد النتيجة
return res;
}
