السلام عليكم
ارجوا من الاخوة الاعزاء افادتي بالكود الخاص بالكتابه والقراء من خلال ملفات الـ INI
ارجوا ارفاق مثال ان وجد
وشكرا
اخوكم
عبدالله
السلام عليكم
ارجوا من الاخوة الاعزاء افادتي بالكود الخاص بالكتابه والقراء من خلال ملفات الـ INI
ارجوا ارفاق مثال ان وجد
وشكرا
اخوكم
عبدالله
العملية كالتالي :
بالنسبة لـلقراءة والكتابة في ملف خارجي بشكل عام ( Read Write )
سيأتي بشكل التالي .....
المطلوب
[1] - TextBox1 "لكتابة المراد تخزينها في الملف "
[2] - Button1 " زر لتنفيذ عملية التخزين في الملف الخارجي "
[3] - Button2 " زر لتنفيذ عملية الاستدعاء من الملف الخارجي "
[4] - Label1 "لعرض ما تم كتابته في الملف"
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
'HnHn : شفرة الكتابة إلى لملف
'---------------------------
Dim file_name As String = Application.StartupPath() & "/info.ini" 'HnHn : تعريف متغير لحفظ مسار الملف
Dim stream_writer As New IO.StreamWriter(file_name, False) 'HnHn : تعريف متغير من نوع كتابة
stream_writer.Write(TextBox1.Text) 'HnHn : اخذ القيمة الموجودة في التيكس لنقلها إلى الملف
stream_writer.Close()
MsgBox("تمت عملية الكتابة بنجاح ", "Write")
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click 'HnHn : شفرة القراءة من لملف '--------------------------- Dim file_name As String = Application.StartupPath() & "/info.ini" Dim stream_reader As New IO.StreamReader(file_name) 'HnHn : تعريف متغير من نوع قراءة Label1.Text = stream_reader.ReadToEnd() 'HnHn : استعراض ما تم كتابته في الملف دداخل الليبل stream_reader.Close() End Sub
ملاحظة : لاحظ في هذا السطر من الشفرة
Dim stream_writer As New IO.StreamWriter(file_name, False)
في نهاية الشفرة تم تعيين الخاصية False وذلك لكي يتم الكتابة فوق الكتابة السابقة الموجوده في الملف أما في حالة الاضافة إلى الملف سيتم تحويل الخاصية من False إلى True
هذا بشكل مبسط وهناك امور كثيرة في كيفية التعامل مع الملفات من حيث قراءة الاسطر وتحديد نوع فإن امكنني ذلك سأضعها ان شالله
شكرا لك اخي الكريم
لقد قمت بجربة الكود بنجاح الا انني اريد تحديد القراء من العنوان مثلا:
[database]
data=data.mdb
username=abdullah
القراء حسب العنوان التعديل عليه
ارجو ان اكون قد اوصلت الصوره المطلوبه
وشكرا
اعتقد اني فهمت عليك
فيه امر اسمه readline ضمن اوامر القراء من ملف
ووبعدها تقارن الكلام المكتوب بالسطر مع الكلمة التي تريدها وهكذا .
<span style='color:green'>سؤل ابن عباس عن علمه كيف جمعه فقال :( أوتيت لسانا سؤولا وقلبا عقولا)</span>
إن شاء الله سأقوم اليوم بارسال مكتبة من برمجتى تقوم بالتعامل مع ملفات ال INI سنقوم باستعمالها لدينا بالعمل للتوافق مع النسخ القديمة
اعذرنى لانى سأقوم بارسال ملف DLL فقط و ليس الاكواد
Technical Lead Developer
اللهم قنى شر الجهل و الجهلاء
( اقْتَرَبَ لِلنَّاسِ حِسَابُهُمْ وَهُمْ فِي غَفْلَةٍ مَّعْرِضُونَ ) {الأنبياء:1}
اخي الكريم Romantic_touch
يرجى شرح الكود وشكرا لك
اخي الكريم Night Coder بانتظار الملف ويفضل مع مثال وشكرا لك
يمكنك استخدام أوامر Windows API التالية للتعامل مع ملفات الـ ini بسهولة
Public Declare Auto Function GetPrivateProfileInt Lib "kernel32" _ (ByVal lpApplicationName As String, ByVal lpKeyName As String, _ ByVal nDefault As Integer, ByVal lpFileName As String) As Integer Public Declare Auto Function GetPrivateProfileSection Lib "kernel32" _ (ByVal lpAppName As String, ByVal lpReturnedString As String, _ ByVal nSize As Integer, ByVal lpFileName As String) As Integer Public Declare Auto Function GetPrivateProfileString Lib "kernel32" _ (ByVal lpApplicationName As String, ByVal lpKeyName As String, _ ByVal lpDefault As String, ByVal lpReturnedString As String, _ ByVal nSize As Integer, ByVal lpFileName As String) As Integer Public Declare Auto Function WritePrivateProfileSection Lib "kernel32" _ (ByVal lpAppName As String, ByVal lpString As String, _ ByVal lpFileName As String) As Integer Public Declare Auto Function WritePrivateProfileString Lib "kernel32" _ (ByVal lpApplicationName As String, ByVal lpKeyName As String, _ ByVal lpString As String, ByVal lpFileName As String) As Integer
وفيما يلي مثال على عجالة يجب أن يعمل على 2003 و 2005 بشكل ممتاز
' تعريف الإجراءات اللازمة
Public Declare Auto Function GetPrivateProfileString Lib "kernel32" _
(ByVal lpApplicationName As String, ByVal _
lpKeyName As String, ByVal lpDefault As String, ByVal lpReturnedString As String, _
ByVal nSize As Integer, ByVal lpFileName As String) As Integer
Private Declare Auto Function WritePrivateProfileString Lib "kernel32" _
(ByVal lpApplicationName As String, _
ByVal lpKeyName As String, ByVal lpString As String, _
ByVal lpFileName As String) As Long
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
' تعريف المتغيرات المناسبة
Dim Ret As Long
Dim Rcv As String = Space(255)
' تجربة كتابة على الملف
Ret = WritePrivateProfileString("Test Section", "Setting String", "Some Value", "d:\Test.ini")
Ret = WritePrivateProfileString("Test Section", "Additional Setting String", "Additional Some Value", "d:\Test.ini")
Ret = WritePrivateProfileString("Other Section", "Other Setting String", "Some Other Value", "d:\Test.ini")
' تجربة القراءة من ملف
Ret = GetPrivateProfileString("Test Section", "Setting String", "Default Value", Rcv, Rcv.Length, "d:\Test.ini")
MsgBox(Trim(Rcv))
Rcv = Space(255)
Ret = GetPrivateProfileString("Test Section", "Additional Setting String", "Default Value", Rcv, Rcv.Length, "d:\Test.ini")
MsgBox(Trim(Rcv))
Rcv = Space(255)
Ret = GetPrivateProfileString("Other Section", "Other Setting String", "Other Default Value", Rcv, Rcv.Length, "d:\Test.ini")
MsgBox(Trim(Rcv))
End Subولكن هذا بغرض التوافقية مع البرامج القديمة فقط
وإن كنت تريد عمل برنامجا جديدا أقترح قراءة الموضوعين إعدادات التطبيق وإعدادات المستخدم و الإعدادات في VB 2005 حيث سيشكلان لك مدخلا مهما لموضوع الإعدادات في بيئة الدوت نيت
تم تعديل هذه المشاركة بواسطة samerselo في 5 أغسطس 2006 في 12:29
عن عائشة رضي الله عنها أن النبي صلى الله عليه وسلم قال: إن الله يحب إذا عمل أحدكم عملا أن يتقنه
نعيب زماننا والعيب فينا ... وما لزماننا عيب سوانا
ونهجو ذا الزمان بغير ذنب ... ولو نطق الزمان لنا هجانا
محمد سامر أبو سلو
اخي الكريم samerselo
شكرا لك لقد قمت بتجربة الكود وقد عمل بنجاح
اخوك
عبدالله
هذا الموضوع مغلق.
المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية
جارٍ التحقق من المتواجدين…