السلام عليكــم ورحمـة الله وبركاتــه ،،
اخواني انا عندي مشكله في الكود ياليت تساعدوني على حلها
الكود المطلوب منه يحسب عدد المسافات و يعرضها
و لكن طريقة الحساب لها شروط
1- ان تكون المسافات محصورة بين اثنين تاب او مبتدئه بتاب و منتهيه بنهاية السطر
'\t'--'\t'
يعني هنا المفروض النتيجه تكون
20
2- ان تكون بنهاية السطر
يعني لو حسب المسافات و خزنها وبدى يعد مسافا ثانيه و لقي بطريقه حرف على نفس السطر راح يصفر العداد
يعني مثلا
'\t'---'\t'- a
المفروض يكون عندي
temp=31
بس بما انه وجد حرف
راح يفضي السترينج اللي بنستخدمه لتخزين عدد المسافات
في برنامجي واجهتني مشكله وحد
2- لم استطع تطبيق شرط انه لو وجد اي حرف بعد المسافات او التاب يجب ان يفرغ عداد المسافات
temp
وضعت هذ1 الشرط
if (str.Substring(i, 1) == " ")
{
count++;
}
if (str.Substring(i, 1) == "\t")
{temp += count.ToString();
count = 0;
}
if (i == str.Length - 1)
{
temp += count.ToString();
}
else
{
count = 0;
tabs = 0;
temp = "";
}بمجرد وضعه لا يحسب اي شيء ابدا
ولكن بعد حذف يعمل الكود
و لكن لايحذف القيم اذا وجد حرف
ارجوا مساعدتكم :(
هذا هو برنامجي بين يديكم
int count = 0;
int tabs = 0,index=0;
string spaces = "",temp="";
StreamReader sr = new StreamReader("w.txt");
string str = sr.ReadLine();// يقراء سطر من الملف
MessageBox.Show(Convert.ToString(str.Length)); //يعرض طول الملف
while (str != null)/// لوب بما انه بيقراء راح يشتغل
{
//if (str.Length <= 80)
//{
// بداية اللوب
for (int i = 0; i < str.Length; i++)// لوب بيبدى من صفر حتى يصل الى طول السطر الذي قرائه
{
if (tabs == 0)
{
if (str.Substring(i, 1) == "\t")
{
tabs = 1;
index = i;
}
}
if (tabs == 1 && index<i)
{
if (str.Substring(i, 1) == " ")
{
count++;
}
if (str.Substring(i, 1) == "\t")
{temp += count.ToString();
count = 0;
}
if (i == str.Length - 1)
{
temp += count.ToString();
}
else
{
count = 0;
tabs = 0;
temp = "";
}
}
}
// نهاية اللوب
// }
spaces += temp;
count = 0;
tabs = 0;
temp = "";
str = sr.ReadLine();
}
sr.Close();
MessageBox.Show(spaces);
}