جزاك الله خير اخى لاكن انا مبتداء والله ومش فاهم حاجه خالص
ياريت حد من الاخوه يجبلى الاكواد بالترتيب المطلوب ويوضحلى ولو توضيح بسيط لكيفية استخدام كل كود
ali.alfoly كتب :جزاك الله خير اخى لاكن انا مبتداء والله ومش فاهم حاجه خالص
ياريت حد من الاخوه يجبلى الاكواد بالترتيب المطلوب ويوضحلى ولو توضيح بسيط لكيفية استخدام كل كود
GetPrivateProfileString("EditMenu", "Copy", "قيمة افتراضية نسخ", value, Len(value), filename)
MessageBox.Show(value)
End Sub
#Region "API"
Private 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
حسب بحثي لهذا الملف تم العثور على كود الكتابه والقرآءه
استخدم أداة Textbox1 لكتابة النص المراد إذافته في الملف
استخدم أداة Label1 لعرض النص من الملف
أستخدم Button1 أمر الإضافة البيانات
استخدم Button2 أمر عرض البيانات
[COLOR=#008000]' تعريف متغير من نوع كتابة
[/COLOR]
[color=#0000ff]Dim [/color]stream_writer [color=#0000ff]As New[/color] IO.[color=#add8e6]StreamWriter[/color](file_name, [color=#0000ff]False[/color])
[COLOR=#008000]' اخذ القيمة الموجودة في التيكس لنقلها إلى الملف
[/COLOR]
stream_writer.Write(TextBox1.Text)
stream_writer.Close()
MsgBox([color=#a52a2a]"تمت عملية الكتابة بنجاح "[/color], [color=#a52a2a]"نجاح"[/color])
[/b][/SIZE][/align]
* ملاحظة : في نهاية الكود التالي :-
كود :
[align=left][SIZE=4][b][COLOR=#0000ff]
Dim [/COLOR]stream_writer [color=#0000ff]As New[/color] IO.[color=#add8e6]StreamWriter[/color](file_name, [color=#0000ff]False[/color])[/b][/SIZE][/align]
في نهاية الكود تم تعيين الخاصية False تعني أن سيتم كتابة فوق النص السابقة وفي حالة تريد الاضافة إلى الملف دون التأثير بالنص الموجود سابقا يجب تحويل الخاصية من False إلى True
في زر Button2 في حدث Click أكتب الكود التالي
كود :
[align=left][SIZE=4][b][COLOR=#0000ff]
Dim [/COLOR]file_name [color=#0000ff]As String [/color]= [color=#add8e6]Application[/color].StartupPath() & "/info.ini"[/b][/SIZE]
[SIZE=4][b]
[COLOR=#008000]' تعريف متغير من نوع قراءة
[/COLOR]
[color=#0000ff]Dim [/color]stream_reader [color=#0000ff]As New[/color] IO.[color=#add8e6]StreamReader[/color](file_name)
[COLOR=#008000]' عرض ما تم كتابته في الملف داخل Label1
[/COLOR]
Label1.Text = stream_reader.ReadToEnd()
stream_reader.Close()[/b][/SIZE][/align]
الأكواد منقوله من موقع آخر وتم تعديل الطفيف لتناسب الموضوع
اخى الكريم DreamsDotNet جزاك الله خير وجعله فى موازين حسناتك
فعلا هذا ما اريد لاكن هذا للقراءه والكتابه فقط اريد باقى الاكواد واريد توضيح للجزء
إقتباس :#Region "API"
Private 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
#End Region
هذا الكود عند ازالته اكواد القرائمه والكتابه لايتم تعريقها فى الكود بمعنى يتم وضع خط اسفل كود القراءه او الكتابه
اريد توضيح وافى لهذا الكود لان كودان القراءه والكتابه اعرفهم لاكن ما كنت اعرف هذه الجزئيه
اخى الكريم Easy 4ever بارك الله فيك وجعله فى موازين حسناتك يوم تلقاه
هذا خاص بالكتابه والقراءه من الملفات النصيه وهذا ليس المطلوب المطلوب مثلما وضح الاخ DreamsDotNet جزاه الله خير
لاكنى اريد باقى الاكواد
لانى استخدم هذه الخاصيه كقاعدة بينات
GetPrivateProfileString("EditMenu", "Copy", "قيمة افتراضية نسخ", value, Len(value), filename)
MessageBox.Show(value)
End Sub
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
' Save تعديل قيمة المفتاح
WritePrivateProfileString("FileMenu", "Save", "القيمة الجديدة لـ: حفظ", filename)
End Sub
Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
' Save حذف المفتاح
WritePrivateProfileString("FileMenu", "Save", Nothing, filename)
End Sub
Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click
' FileMenu حذف قائمة
WritePrivateProfileString("FileMenu", Nothing, Nothing, filename)
End Sub
#Region "API"
Private 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
#End Region
End Class
[/align]
أما الكود الذي سألت عنه فهو دالة خاصة بالنظام تسمى API، ابحث عن هذه الكلمة تجد شروحات كثيرة إن شاء الله، فلا يسعني قول أكثر من ذلك....
جزاك الله خير كده انا فهمت اخى الكريم DreamsDotNet
الون الاخضر فهمته يبقى الى بالون الاحمر
1- كود حذف قائمه مثل وكل ما تحتويه
2- كود حذف مفتاح مثل
3- كود جلب جميع القوائم من ملف نصى
4- كود جلب المفاتيح الموجوده فى قائمة
5- كود جلب القيمه من مفتاح
6-كود الانشاء لانشاء مفتاح جديد
كود جلب القوائم
مثلا عندى ملف لا اعلم القوائم التى به
يعود لى الكود بمتغير به قائمه بجميع القوائم واستخدم التكرار فور مثلا لوضع اسماء هذه القوائم فى ليست بوكس مثلا
كود جلب المفاتيح
انا الان عرفت القوائم الموجوده فى الملف
اريد العثور على المفاتيح التى بداخل قائمه معينه
ومعذرة اريد شرح ولو بسيط جدا عن هذا الكود
#Region "API"
اريد فقط ان اعرف ماهو وما عمله ولماذا نكتبه
السلام عليكم ورحمة الله وبركاته
أخي الكريم هذه طريقة لجلب المفاتيح والقيم ولكن عن طريق الكود تستطيع الاستفادة منها إلى جانب دوال API
لكي يعمل الكود ضع أداة زر Button1
وثلاث أدوات ListBox
ثم ضع الكود التالي
كود :
Dim filename As String = Application.StartupPath & "\Settings.ini"
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
ListBox1.Items.Clear()
Dim Lines() As String = System.IO.File.ReadAllLines(filename, System.Text.Encoding.Default)
Dim Keys = From Line In Lines Where Line.StartsWith("[") = True Select Line.Substring(1, Line.IndexOf("]") - 1)
For Each Key In Keys
ListBox1.Items.Add(Key)
Next
End Sub
Private Sub ListBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ListBox1.SelectedIndexChanged
ListBox2.Items.Clear()
ListBox3.Items.Clear()
Try
Dim Lines() As String = System.IO.File.ReadAllLines(filename, System.Text.Encoding.Default)
Dim KeyIndex As Integer = Array.IndexOf(Lines, "[" & ListBox1.SelectedItem & "]") + 1
Dim KeyNext As Integer = Lines.Count - 1
If ListBox1.SelectedIndex < ListBox1.Items.Count - 1 Then
KeyNext = Array.IndexOf(Lines, "[" & ListBox1.Items.Item(ListBox1.SelectedIndex + 1) & "]") - 1
End If
For I = KeyIndex To KeyNext
ListBox2.Items.Add(Lines(I).Split("=")(0))
Next
Catch ex As Exception
End Try
End Sub
Private Sub ListBox2_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ListBox2.SelectedIndexChanged
ListBox3.Items.Clear()
Try
Dim Lines() As String = System.IO.File.ReadAllLines(filename, System.Text.Encoding.Default)
Dim KeyIndex As Integer = Array.IndexOf(Lines, "[" & ListBox1.SelectedItem & "]") + 1
Dim KeyNext As Integer = Lines.Count - 1
If ListBox1.SelectedIndex < ListBox1.Items.Count - 1 Then
KeyNext = Array.IndexOf(Lines, "[" & ListBox1.Items.Item(ListBox1.SelectedIndex + 1) & "]") - 1
End If
For I = KeyIndex To KeyNext
If Lines(I).StartsWith(ListBox2.SelectedItem) = True Then
ListBox3.Items.Add(Lines(I).Split("=")(1))
End If
Next
Catch ex As Exception