الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

برنامج يقوم بانشاء ملف Text فيه جميع محتويات المجلد المحدد

بدأه مجلـد جديـد في 7 يوليو 2008 · 17 رد · 1,531 مشاهدة · في Microsoft Visual C#.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

كما يقولون ، الحاجة ام الاختراع

فتخيل ان تجتمع هذه الاشياء:

حاجة

C#

Visual Studio

arabteam2000

google.com

:D

البرنامج فكرته بسيطه جداً ، المستخدم يحدد مجلد معين ، ثم يكتب اسم ملف text ، بعدها يضغط Generate

والبرنامج ينشىء له ملف text بمحتويات المجلد المحدد ، سواءاً كانت ملفات او مجلدات

واجهة البرنامج Directory Printer :

post-73304-1215433204_thumb.gif

الشيء الوحيد الذي ينقصه هو ان يقوم المستخدم نفسه بتحديد مكان حفظ الملف ، هل بالامكان المساعدة في ذلك؟

البرنامج كامل على الرابط:

CreateTextFile_Downloads.zip

حاجتي للبرنامج هي ان ارسل محتويات مجلد لشخص عن طريق الايميل

ومحتويات المجلد دائما في ازدياد وتحديث

فلا استطيع عمل نسخ/لصق لكل ملف ومجلد

باذن الله سوف اقوم بتطوير البرنامج واضافة خيار "اضافة ارقام الاسطر"

لكن اريد المساعدة في:

اقتباس
الشيء الوحيد الذي ينقصه هو ان يقوم المستخدم نفسه بتحديد مكان حفظ الملف ، هل بالامكان المساعدة في ذلك؟

تم تعديل هذه المشاركة بواسطة مجلـد جديـد في 7 يوليو 2008 في 15:27

#2

نسيت ان اشكر الاخ عبدالله فتيحي على موضوعه المتعلق بالتعامل مع المجلدات ، فقد افادني كثيراً.

#3

طب ما تستخدم SaveDialogBox

ولدي إليك وصيتي عهد الأسودْ

العز غايتنا نعيش لكي نسود

و عريننا في الأرض معروف الحدود

فاحم العرين و صنه عن عبث القرود

أظفارنا للمجد قد خُلقت فدى

و نيوبنا سُنَّت بأجساد العدى

و زئيرنا في الأرض مرهوب الصدى

نعلي على جثث الأعادي السؤددا

#4

للاسف ما عرفت كيف استخدمه :( ممكن تكتب لي الطريقة ؟ هل استغني عن FileStream ؟

#5

{
FileDialog S;
S = new SaveFileDialog();
S.ShowDialog();
string str = S.FileName.ToString();
richTextBox1.SaveFile("str.txt && str.rtf", RichTextBoxStreamType.RichText);
}
  private void saveAToolStripMenuItem_Click(object sender, EventArgs e)

الله معك

#6

شكرا لك على الرد اخي shado

جميع اسماء المجلدات والملفات تكون مخزنة داخل متغير من نوع string[]

وليست داخل مربع نصي richTextBox1

فاين اقوم بكتابة محتويات المتغير string[] ؟

او لابد من تحديد موقع الملف مسبقاً ؟

هذه هي واجهةالبرنامج بعد اضافة خيار ارقام الاسطر و اضافة المسار كاملاً:

post-73304-1215498240_thumb.png

#7

شكرا للجميع

الان بالامكان اختيار مكان حفظ الملف بواسطة save dialog

واضفت خيار ثالث وهو الوقت والتاريخ

وافكر الان في تطوير البرنامج ليكون كتالي:

عند اختيار المجلد ، يظهر في مربع كبير معاينة للملف الذي سوف ينتجه البرنامج ، بحيث عندما يقوم باختيار اضافة ارقام الاسطر مثلاً ، يتم تعديل المعاينة واضافة ارقام الاسطر.

فما رايكم ؟

#8

هذا هو البرنامج بعد اضافة التعديلات:

post-73304-1215501362_thumb.png

التعديلات كانت اضافة خيار ارقام الاسطر ، اضافة التاريخ والوقت ، اضافة المسار كامل.

وايضا dialog الحفظ .

بالاضافة الى زر About

CreateTextFile_Downloads.zip

#9

السلام عليكم,

عمل جيداً اخي "مجلد جديد" سأضيف لمشروعك هذا خاصية جديدة ولكن بعد ان يصبح متقدم ان شاء الله.

هذا تعديل بسيط علي حدث button2_Click

private void button2_Click(object sender, EventArgs e)
{
	if (!string.IsNullOrEmpty(textBox1.Text))
	{
		string file;
		saveFileDialog1.ShowDialog();
		file = saveFileDialog1.FileName.ToString();

		using(StreamWriter w = new StreamWriter(file)) {
			string[] directories = System.IO.Directory.GetFileSystemEntries(textBox1.Text, "*");
			if(checkBox3.Checked) {
				w.WriteLine(
					DateTime.Now.ToString("dddd dd/MM/yyyy hh:mm:sstt")
				);
			}
			for(int i = 0; i < directories.Length; ++i) {
				directories = checkBox2.Checked ? directories : System.IO.Path.GetFileName(directories);
				w.Write(
					(!checkBox1.Checked ? directories : string.Format("{0} {1}", i, directories)) + "\r\n"
				);
			}
		}

		textBox2.Text = file;
		MessageBox.Show("The file has been created in " + file, "Done", MessageBoxButtons.OK, MessageBoxIcon.Information);
	}
	else
		MessageBox.Show("Select a folder first.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);

}

في امان الله

تم تعديل هذه المشاركة بواسطة Moudey في 8 يوليو 2008 في 15:26

مواضيع متنوعة

#10
اقتباس
جميع اسماء المجلدات والملفات تكون مخزنة داخل متغير من نوع string[]

وليست داخل مربع نصي richTextBox1

لم اطلع على برنامجك ..فقط طرحت الفكرا لا اكثر ولا اقل

التوفيق .

الله معك.

#11

Moudey

شكرا لك خبيرنا على هذه المداخلة :)

اود ان تشرح لي مالفائدة من استخدام using ؟ ولماذا وضعت كود الكتابة داخل using block ؟

واطمع ان تتحفنا بالمزيد من المعلومات عن هذا السطر:

!checkBox1.Checked ? directories : string.Format("{0} {1}", i, directories)) + "\r\n"

لاني وقفت حائراً امامه :D

#12

السلام عليكم,

جملة using تستخدم في بعض الاحيان للقيام بمهمة مؤقتة اي تنتهي بنهاهة جملة using

اي المتغير المحجوز في جملة using يكون مقتصر علي جملة using فقط داخل الدالة او الاجراء.

في مثالنا السابق استخدمنا جملة using مع فئة StreamWriter حينما تنتهي من وظيفتها وتصل الي نهاية جملة using ينتهي التعامل مع فئة StreamWriter اي لاتحتاج الي غلقها w.Close().

==================================

معامل ?:

وهو كتابة جملة اتخاز القرار في سطر واحد .

// If Statement 
if(i > 1)
	msg = "ok";
else
	msg = "error";
// or ?: Operator 
msg = (i > 1) ? "ok" : "error";

للمزيد عن ?: Operator (C# Reference)

Single Line If Statement in C#

مواضيع متنوعة

#13

شكرا لك اخي Moudey

لماذا لا يعمل الرمز

\n

في لغة #C ؟

اليوم فقط عرفت انه عندما تريد اضافة سطر جديد فانه يجب استخدام الرمز التالي:

\r\n

!

شكرا لك على توضيح : operator ، هل من الممكن ان نحصل على توضيح آخر ل Format :

string.Format("{0} {1}", i, directories)
#14
اقتباس
\r\n

ما هو مقابل هذا الكود في السي شارب

===================================

string.Format()

هي عملية تهيئة للنص مثل دالة printf في ++C/C

string var = string.Format("{0}\r\n{1}\r\n{2}\r\n{3}\r\n{4}", 1, 1.5, 'M', "Moudey",  10*5);
Console.Write(var);

========= OUT ===========
1
1.5
M
Moudey
50

للمزيد

String Formatting in C#

تم تعديل هذه المشاركة بواسطة Moudey في 15 يوليو 2008 في 18:16

مواضيع متنوعة

#15

شكرا لك اخي العزيز Moudey الشرح واضح جدا

الرمز

{x} يعني هو موقع العنصر رقم x

#16

أضافه اتمنى ان تحوز اعجابكم ... الفهارس والفهارس الفرعية

CreateTextFile_Downloads.rar

#17
Moudey كتب:
===================================

string.Format()

هي عملية تهيئة للنص مثل دالة printf في ++C/C

string var = string.Format("{0}\r\n{1}\r\n{2}\r\n{3}\r\n{4}", 1, 1.5, 'M', "Moudey",  10*5);
Console.Write(var);

========= OUT ===========

يمكن استخدام Write مباشرتاً بسهولة
Console.Write("{0}\r\n{1}\r\n{2}\r\n{3}\r\n{4}", 1, 1.5, 'M', "Moudey",  10*5)
#18

نورا مجدي

اشكرك على الاضافة ، اضافة احترافية بمعنى الكلمة ;)

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…