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

حفظ ملف تكست فيه مشكلة بسيطة .. ممكن ؟

بدأه شبه جسم في 12 أكتوبر 2009 · 8 رد · 1,191 مشاهدة · في Microsoft Visual Basic.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكــم ورحمـة الله وبركاتــه ،،

أخواني الكرام

عندي مشكلة صغيرة في طريقة حفظ ملف تكست

أنا أستخدم هالكود للحفظ :

Dim svFile As New SaveFileDialog

svFile.Filter = "TEXT FILES (*.TXT)|*.TXT"

svFile.ShowDialog()

If svFile.FileName <> "" Then

FileOpen(1, svFile.FileName, OpenMode.Output)

PrintLine(1, TextBox1.Text)

FileClose(1)

لكن لما ينحفظ التكست ، يظهر إنه يحفظ الكلام ومعاه إنتر

يعني بهالطريقة : TextBox1.Text & VBCrlf

أنا إللي أريده إن الكلام ينحفظ مثل ما هو بالضبط ، من غير الإنتر

أتمنى يكون كلامي مفهوم ، وتساعدوني في هالمسألة

تم تعديل هذه المشاركة بواسطة شبه جسم في 12 أكتوبر 2009 في 16:54

يا نفسُ إن لم تصلحي

فتشبهي بالصالحينا

[ أبو العتاهية ]

#2

لماذا تحفظ الملف بهذه الطريقة القديمة؟؟

توفر لك بيئة الدوت مجال أسماء كامل للتعامل مع الملفات System.IO

جرب الكود بهذه الطريقة

  1.  
  2. Dim svFile As New SaveFileDialog
  3.  
  4. svFile.Filter = "TEXT FILES (*.TXT)|*.TXT"
  5.  
  6. If svFile.ShowDialog() = DialogResult.Ok Then
  7. Dim stw As New IO.StreamWriter(svFile.FileName, False, System.Text.Encoding.Default)
  8. stw.Write(TextBox1.Text)
  9. stw.Close()
  10. End If
  11.  
  12.  

تم تعديل هذه المشاركة بواسطة GHOST2010 في 12 أكتوبر 2009 في 17:33

إن قلت قال الله قال رسولـه همزوك همز المنكر المتعالي
أو قلت قد قال الصحابة والألـى تبعاً لهم بالقول والأعمال
أو قلت قـال الشافعي وأحمد و أبو حنيفة والإمام الغالي
صدوا عن وحي الإله ودينـه واحتالوا على حرام الله بالإحلال
يا أمةً لعبت بدين نبيها كتلاعب الصبيان في الأوحال
حاشا رسول الله يحكم بالهوى تلك إذاً حكومة الضلال

feed.1.gif

#3

السلام عليكم أخى أنا جربت الكود ولاقيته بيطبع الكلام زى ماهو بالظبط

مش بيغير فيه حاجة لما أكون دايس إنتر بيبقى مسجله بإنتر

وطريقة الأخ جوست 2010 جميلة ولكن أسفرت أيضا عن نفس النتيجة

عندما تضيق بك الدنيا فلا تقل يارب عندى هم كبير ولكن قل يا هم عندى رب كبيييير

اللهم إنى أتيت بابك مستغفراً فإن غفرت لى وأدخلتنى فأنت أهلٌ لذلك

وإن لم تغفر لى وطردتنى فأنا أهلٌ لذلك

#4

أشكرك أخي جوست

طريقتك مية المية

لكن لو تكمل خيرك أخوي وتعطيني الطريقة الحديثة للفتح أيضا

أنا أستخدم هالطريقة :

		Dim opnFile As New OpenFileDialog
		opnFile.Filter = "TEXT FILES (*.TXT)|*.TXT"
		opnFile.ShowDialog()
		If opnFile.FileName <> "" Then
			TextBox1.Text = My.Computer.FileSystem.ReadAllText(opnFile.FileName, System.Text.Encoding.Default)
		End If

أقول يمكن في طريقة أحدث وأنا ما أدري ^_^

أشكر مداخلتك أخوي حسام

لكن فعلا الطريقة القديمة فيها تغيير بسيط ممكن ما لاحظته

والطريقة الجديدة فعالة وممتازة

يا نفسُ إن لم تصلحي

فتشبهي بالصالحينا

[ أبو العتاهية ]

#5

الطريقة التى تستخدمها جميلة ومختصرة لكنى شخصيا لا أحبها (أذواق :D)

لقراءة الملف يمكنك استخدام الفئة StreamReader

  1.  
  2. Dim opnFile As New OpenFileDialog
  3. opnFile.Filter = "TEXT FILES (*.TXT)|*.TXT"
  4. If opnFile.ShowDialog() = Windows.Forms.DialogResult.OK
  5. Dim str As New IO.StreamReader(opnFile.FileName)
  6. TextBox1.Text = str.ReadToEnd
  7. str.Close()
  8. End If 
  9.  
  10.  

تم تعديل هذه المشاركة بواسطة GHOST2010 في 12 أكتوبر 2009 في 20:20

إن قلت قال الله قال رسولـه همزوك همز المنكر المتعالي
أو قلت قد قال الصحابة والألـى تبعاً لهم بالقول والأعمال
أو قلت قـال الشافعي وأحمد و أبو حنيفة والإمام الغالي
صدوا عن وحي الإله ودينـه واحتالوا على حرام الله بالإحلال
يا أمةً لعبت بدين نبيها كتلاعب الصبيان في الأوحال
حاشا رسول الله يحكم بالهوى تلك إذاً حكومة الضلال

feed.1.gif

#6

بســم الله الـرحمــن الرحيــم

كود الحفظ

	 Dim svFile As New SaveFileDialog
		svFile.Filter = "Text FILES (*.txt)|*.txt"
		svFile.ShowDialog()
		If svFile.FileName <> "" Then
			FileOpen(1, svFile.FileName, OpenMode.Output)
			PrintLine(1, TextBox1.Text)
			FileClose(1)
		End If

كود الفتح

	   Dim opnFile As New OpenFileDialog
		opnFile.Filter = "Text FILES (*.txt)|*.txt"
		opnFile.ShowDialog()
		If opnFile.FileName <> "" Then
			Me.TextBox1.Text = My.Computer.FileSystem.ReadAllText(opnFile.FileName, System.Text.Encoding.Default)
		End If
#7

أشكرك جدا جدا جدا أخوي جوست

فعلا الكود فعال ، وراح أعتمد طريقتك في كود الفتح

أخوي فهد

الحمد انحلت المشكلة

والكود إللي عطيتنا إياه هو نفس الكود إللي كنت أستخدمه ، ومشكلته كانت إنه يحفظ الكلام ويضيف من تحتها سطر فاضي

والحمد لله مع كود الأخ جوست انحلت المشكلة

شكرا للجميع

واستحملوا كثرة أسئلتي ، لأنني ما زلت أزحف في الفيجوال بييسك دوت نت ^_^

يا نفسُ إن لم تصلحي

فتشبهي بالصالحينا

[ أبو العتاهية ]

#8

يوجد فرق كبير بين الدله ReadAllText و الفئه StreamReader و يظهر هذا الفرق عند القراءة من ملفات نصيه كبيرة الحجم، حيث ان الداله ReadAllText تقوم بتهنيج الـ Thread الحالى حتى تتم عملية القراءة كامله من الملف داخل الذاكره على شكل مصفوفه من السطور، ايضا يعيب هذه الطريقه استهلاكها الكبير للذاكره حيث يتم تحميل الملف بأكمله داخل الذاكره و هو شئ غير عملى.

اما الفئه StreamReader فتقوم بقراءة اجزاء من الملف و ليس الملف بأكمله و بهذا فهى لا تسبب فى إيقاف عمل الـ Thread حتى الإنتهاء، أيضا لا تقوم بقراءة الملف فقى تقوم بالقراءه حتى تصل لمنطقه معينه مثل عدد حروف معين او لإنتهاء السطر و تقوم بالعود به (بمعنى انها مثل الـ Pipe) و بالإضافه لهذا فهى لا تحجز الكثير من الذاكره و ذلك لإنها لا تعود بنسخه من القيمه التى تم قرائتها و لكن بالقيمه بشكل مباشر.

بالنسبه للداله ReadAllText او الداله ReadAllLines او الدوال التى تبدأ بـ ReadAll فيضل استخدامهم مع الملف الصغيره، و بالنسبه لفئات التعامل مع الملفات فهى الطريقه المثلى فى التعامل مع الملفات.

و الله ولى التوفيق

تم تعديل هذه المشاركة بواسطة Muhammad alaa في 13 أكتوبر 2009 في 14:41

مدونتي: C++ Tips and Tricks

#9

بارك الله فيك أخوي محمد

دائما تتحفنا بمعلوماتك القيمة

يا نفسُ إن لم تصلحي

فتشبهي بالصالحينا

[ أبو العتاهية ]

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

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

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

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

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