السلام عليكم ورحمة الله وبركاته
اريد كود لتغيير قيمة سطر معين في ملف txt
وشكراً
السلام عليكم ورحمة الله وبركاته
اريد كود لتغيير قيمة سطر معين في ملف txt
وشكراً
السلام عليكم
String strFile = File.ReadAllText("c:\\File1.txt");
strFile = strFile.Replace("oldvalue", "newvalue");
File.WriteAllText("c:\\File1.txt", strFile);لاتـُهيئ كفني ما متّ بعد = لم يزل في أضلعي برقٌ و رعدُ
أنــا اسـلامــي ..أنا عزّته = أنا خيل الله نحو النصــر تعــدو
أنــا تــاريـخـي …ألا تعــرفـه = خـالد ينبض في روحــي و سعدُ
لاتـــغرنـك منــي هدأتـــــي = لا يمــوت الثــأر و لــكن يســتعـدُ
لا يغرنـــك نصــلٌ موغـــلٌ = في عروقي …فـأنا منه أحـّـــدُ
إن ما ضُيع في ساح الوغى = في سوى ساحــاتـها لا يــستردُ
اخي الكريم بارك الله فيك
الكود السابق يغير قيمة نص معين
ولكني أريد قيمة سطر معين يعني احدد رقم السطر ومن ثم اغير قيمته
السلام عليكم
يمكنك استخدام الكود التالي للحصول على نص السطر الذي تريد استبداله
using( Stream stream = File.Open(fileName, FileMode.Open) )
{
using( StreamReader reader = new StreamReader(fileStream) )
{
string line = null;
for( int i = 0; i < myLineNumber; ++i )
{
line = reader.ReadLine();
}
}
}ثم تستخدم الكود السابق لاستبداله
طريقة أخرى، أن تقرأ الملف سطر سطر و تكتبه في ملف آخر و عند وصوله إلى رقم السطر الذي تريد تكتب في الملف الآخر القيمة الجديدة
تم تعديل هذه المشاركة بواسطة byte101 في 12 سبتمبر 2011 في 08:22
لاتـُهيئ كفني ما متّ بعد = لم يزل في أضلعي برقٌ و رعدُ
أنــا اسـلامــي ..أنا عزّته = أنا خيل الله نحو النصــر تعــدو
أنــا تــاريـخـي …ألا تعــرفـه = خـالد ينبض في روحــي و سعدُ
لاتـــغرنـك منــي هدأتـــــي = لا يمــوت الثــأر و لــكن يســتعـدُ
لا يغرنـــك نصــلٌ موغـــلٌ = في عروقي …فـأنا منه أحـّـــدُ
إن ما ضُيع في ساح الوغى = في سوى ساحــاتـها لا يــستردُ
اشكرك أخي الكريم
ولكن واجهتني مشكلة لنفرض ان الملف فيه الاسطر التالية
mohammed
ali
ayman
ibrahim
واريد تغيير السطر 3 مثلاً من (ayman) إلى (samir)
كيف سيكون نقل الأسماء القدامى كما هم للملف الجديد ؟؟
قمت بتجرية الكود التالي
string fileName = @"C:\AppServ\ss.txt";
string fileStream = @"C:\AppServ\tt.txt";
int myLineNumber = 3;
private void Form1_Load(object sender, EventArgs e)
{
using (Stream stream = File.Open(fileName, FileMode.Open))
{
using (StreamReader reader = new StreamReader(fileStream))
{
string line = string.Empty;
for (int i = 0; i < myLineNumber; ++i)
{
line = reader.ReadLine();
}
line = line.Replace("ayman", "samir");
}
stream.Close();
}
}ولم ينجح
تم تعديل هذه المشاركة بواسطة dot.net2008 في 12 سبتمبر 2011 في 08:46
السلام عليكم
int counter = 0;
string line;
int lineNo = 3; //the number of line to be replaced
string newLine = "Samir";
System.IO.StreamReader inFile =
new System.IO.StreamReader("c:\\test.txt");
System.IO.StreamReader outFile =
new System.IO.StreamReader("c:\\testOut.txt");
while((line = inFile.ReadLine()) != null)
{
counter++;
if(counter == lineNo)
{
outfile.WriteLine(newLine);
}
else
{
outfile.WriteLine(line);
}
}
inFile.Close();
outFile.close();لاتـُهيئ كفني ما متّ بعد = لم يزل في أضلعي برقٌ و رعدُ
أنــا اسـلامــي ..أنا عزّته = أنا خيل الله نحو النصــر تعــدو
أنــا تــاريـخـي …ألا تعــرفـه = خـالد ينبض في روحــي و سعدُ
لاتـــغرنـك منــي هدأتـــــي = لا يمــوت الثــأر و لــكن يســتعـدُ
لا يغرنـــك نصــلٌ موغـــلٌ = في عروقي …فـأنا منه أحـّـــدُ
إن ما ضُيع في ساح الوغى = في سوى ساحــاتـها لا يــستردُ
يوجد خطأ في التالي
{
outFile.WriteLine(newLine);
}
else
{
outFile.WriteLine(line);
}لايعمل البرنامج من اجلها
اقتباسError 1 'System.IO.StreamReader' does not contain a definition for 'WriteLine' and no extension method 'WriteLine' accepting a first argument of type 'System.IO.StreamReader' could be found (are you missing a using directive or an assembly reference?)
تم تعديل هذه المشاركة بواسطة dot.net2008 في 12 سبتمبر 2011 في 08:56
ما هي رسالة الخطأ؟
لاتـُهيئ كفني ما متّ بعد = لم يزل في أضلعي برقٌ و رعدُ
أنــا اسـلامــي ..أنا عزّته = أنا خيل الله نحو النصــر تعــدو
أنــا تــاريـخـي …ألا تعــرفـه = خـالد ينبض في روحــي و سعدُ
لاتـــغرنـك منــي هدأتـــــي = لا يمــوت الثــأر و لــكن يســتعـدُ
لا يغرنـــك نصــلٌ موغـــلٌ = في عروقي …فـأنا منه أحـّـــدُ
إن ما ضُيع في ساح الوغى = في سوى ساحــاتـها لا يــستردُ
أنا آسف...
int counter = 0;
string line;
int lineNo = 3; //the number of line to be replaced
string newLine = "Samir";
System.IO.StreamReader inFile =
new System.IO.StreamReader("c:\\test.txt");
System.IO.StreamWriter outFile =
new System.IO.StreamWriter("c:\\testOut.txt");
while ((line = inFile.ReadLine()) != null)
{
counter++;
if (counter == lineNo)
{
outFile.WriteLine(newLine);
}
else
{
outFile.WriteLine(line);
}
}
inFile.Close();
outFile.Close();بالنسبة للملف الناتج كان يجب كتابة StreamWriter
تم تعديل هذه المشاركة بواسطة byte101 في 12 سبتمبر 2011 في 09:02
لاتـُهيئ كفني ما متّ بعد = لم يزل في أضلعي برقٌ و رعدُ
أنــا اسـلامــي ..أنا عزّته = أنا خيل الله نحو النصــر تعــدو
أنــا تــاريـخـي …ألا تعــرفـه = خـالد ينبض في روحــي و سعدُ
لاتـــغرنـك منــي هدأتـــــي = لا يمــوت الثــأر و لــكن يســتعـدُ
لا يغرنـــك نصــلٌ موغـــلٌ = في عروقي …فـأنا منه أحـّـــدُ
إن ما ضُيع في ساح الوغى = في سوى ساحــاتـها لا يــستردُ
بارك الله فيك أخي الكريم
وجزاك الله كل خير
عذراً أخي الكريم لدي سؤال آخر لأكمل مشروعي لو تفضلت
لنفرض لدي الملف وبه النص التالي
اقتباسayman
ahmad
ali
mohammed
samir
talal
rami
wail
mona
xxxxxxxxxxxxxxxx
3
22 33.3
33 33.3
44 33.3
المطلوب أن يعطيني الرقم المكتوب أسفل ال(xxxxxxxxxxx) هذا الرقم يعطيني عدد الأسطر المكتوبة أسفله وهي ثلاثة أسطر كما ترا (22 33.3)(33 33.3)(44 33.3)
هذه سهلة وعرفتها من خلال الكود السابق الذي قمت بكتابته .
المطلوب أيضاً :
كيف يمكنيي إضافة عنصر إضافي ولنفرض كان (55) أسفل العناصر المضافة سابقاً -(22 33.3)(33 33.3)(44 33.3)- وإضافة قيمة لها ,, ( والقيمة لكل عنصر = (100/عدد العناصر))
أي بعد إضافة العنصر المسمى بـ (55) يجب أن تكون الهيئة العامة للملف بالشكل التالي :
اقتباسaymanahmad
ali
mohammed
samir
talal
rami
wail
mona
xxxxxxxxxxxxxxxx
4
22 25
33 25
44 25
55 25
وهكذا ارجوا أن تكون قد وضحت الفكرة ,, وارجوا المساعدة
السلام عليكم
private void AddValue(int newValue)
{
string PreviousLine = "";
string line = "";
int currentValuesCount = 0;
double newPercentage = 0;
System.IO.StreamReader inFile = new System.IO.StreamReader("c:\\test.txt");
System.IO.StreamWriter outFile = new System.IO.StreamWriter("c:\\testOut.txt");
while ((line = inFile.ReadLine()) != null)
{
if (PreviousLine == "xxxxxxxxxxxxxxxx")
{
currentValuesCount = int.Parse(line);
newPercentage = 100 / (currentValuesCount + 1);
outFile.WriteLine((currentValuesCount + 1).ToString());
for (int i = 0; i < currentValuesCount; i++)
{
line = inFile.ReadLine();
outFile.WriteLine(line.Substring(0, line.IndexOf(' ') + 1) + newPercentage.ToString());
}
outFile.WriteLine(newValue.ToString() + " " + newPercentage.ToString());
break;
}
else
{
outFile.WriteLine(line);
}
PreviousLine = line;
}
inFile.Close();
outFile.Close();
}لاتـُهيئ كفني ما متّ بعد = لم يزل في أضلعي برقٌ و رعدُ
أنــا اسـلامــي ..أنا عزّته = أنا خيل الله نحو النصــر تعــدو
أنــا تــاريـخـي …ألا تعــرفـه = خـالد ينبض في روحــي و سعدُ
لاتـــغرنـك منــي هدأتـــــي = لا يمــوت الثــأر و لــكن يســتعـدُ
لا يغرنـــك نصــلٌ موغـــلٌ = في عروقي …فـأنا منه أحـّـــدُ
إن ما ضُيع في ساح الوغى = في سوى ساحــاتـها لا يــستردُ
أخي الكريم Byte عاجز عن شكرك بصراحة بارك الله فيك وجزاك ألف خير واعتذر عن التأخر , الكود شغال 100 % ولكن لنفرض كان أسفل التركيبة
اقتباسxxxxxxxxxxxxxx4
11 25
22 25
33 25
44 25
بعض الأسطر الموجودة سابقاً في الملف يقوم بحذفها عند العمل وعدم إعتبارها
المطلوب أن الأسطر الأخيرة بدون أي تعديل
تم تعديل هذه المشاركة بواسطة dot.net2008 في 13 سبتمبر 2011 في 12:51
dot.net2008 كتب:أخي الكريم Byte عاجز عن شكرك بصراحة بارك الله فيك وجزاك ألف خير واعتذر عن التأخر , الكود شغال 100 % ولكن لنفرض كان أسفل التركيبة
بعض الأسطر الموجودة سابقاً في الملف يقوم بحذفها عند العمل وعدم إعتبارها
المطلوب أن الأسطر الأخيرة بدون أي تعديل
السلام عليكم
أنا بالخدمة إن شاء الله
صحيح كلامك سوف يتم حذف الأسطر التي تليها، لم أعالج هذه الحالة لأن مثالك لم يذكرها...
فقط قم بحذف سطر:
break;
لاتـُهيئ كفني ما متّ بعد = لم يزل في أضلعي برقٌ و رعدُ
أنــا اسـلامــي ..أنا عزّته = أنا خيل الله نحو النصــر تعــدو
أنــا تــاريـخـي …ألا تعــرفـه = خـالد ينبض في روحــي و سعدُ
لاتـــغرنـك منــي هدأتـــــي = لا يمــوت الثــأر و لــكن يســتعـدُ
لا يغرنـــك نصــلٌ موغـــلٌ = في عروقي …فـأنا منه أحـّـــدُ
إن ما ضُيع في ساح الوغى = في سوى ساحــاتـها لا يــستردُ
والله معلم شكراً لك :)
المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية
جارٍ التحقق من المتواجدين…