تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
طلب اكواد التحكم فى ملف ini لحفظ اعدادات المشروع
#1
السلام عليكم ورحمة الله وبركاته
بحثت فى المنتدى ولم اجد طلبى وجدت افكار متشابها
اريد اكواد التحكم فى ملفات INI التى تستعمل كقواعد بينات بهذا الشكل

[ATTACH=CONFIG]1726[/ATTACH]

الاكواد التى اريدها هى

1- كود حذف قائمه مثل [ATTACH=CONFIG]1722[/ATTACH] وكل ما تحتويه

2- كود حذف مفتاح مثل [ATTACH=CONFIG]1723[/ATTACH]

3- كود جلب جميع القوائم [ATTACH=CONFIG]1722[/ATTACH] من ملف نصى

4- كود جلب المفاتيح [ATTACH=CONFIG]1725[/ATTACH] الموجوده فى قائمة [ATTACH=CONFIG]1722[/ATTACH]

5- كود جلب القيمه من مفتاح [ATTACH=CONFIG]1724[/ATTACH]

6-كود الانشاء لانشاء مفتاح جديد

وان كان هناك اى اوامر اخرى لهذه العمليه ارجو عدم البخل علينا بيها :o او
شرح بسيط واسف للكلمات ( قائمه - مفتاح - قيمه ) هذا ما اعرف




الملفات المرفقة صورة/صور
                   
الرد }}}
تم الشكر بواسطة:
#2
وعليكم السلام ورحمة الله وبركاته
أخي تفضل هذا الرابط فيه شرح مع مثال جاهز لكيفية التعامل مع هذا النوع من الملفات
IniFile-Class-using-VB-NET



بالتوفيق
الرد }}}
تم الشكر بواسطة:
#3
جزاك الله خير اخى لاكن انا مبتداء والله ومش فاهم حاجه خالص
ياريت حد من الاخوه يجبلى الاكواد بالترتيب المطلوب ويوضحلى ولو توضيح بسيط لكيفية استخدام كل كود
الرد }}}
تم الشكر بواسطة:
#4
ali.alfoly كتب :جزاك الله خير اخى لاكن انا مبتداء والله ومش فاهم حاجه خالص
ياريت حد من الاخوه يجبلى الاكواد بالترتيب المطلوب ويوضحلى ولو توضيح بسيط لكيفية استخدام كل كود

up
مهم والله ياجماعه
الرد }}}
تم الشكر بواسطة:
#5
نحمده ونصلي على رسوله الكريم

هذا مثال بسيط:
كود :
[align=left] Public Class Form1

    Dim filename As String = Application.StartupPath & "\Settings.ini"

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        WritePrivateProfileString("FileMenu", "New", "جديد", filename)
        WritePrivateProfileString("FileMenu", "Open", "فتح", filename)
        WritePrivateProfileString("FileMenu", "Save", "حفظ", filename)
        '
        WritePrivateProfileString("EditMenu", "Cut", "قص", filename)
        WritePrivateProfileString("EditMenu", "Copy", "نسخ", filename)
        WritePrivateProfileString("EditMenu", "Past", "لصق", filename)
    End Sub

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        Dim value As String = Space(255)

        GetPrivateProfileString("FileMenu", "New", "قيمة افتراضية جديد", value, Len(value), filename)
        MessageBox.Show(value)

        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

#End Region

End Class
[/align]

قد يفيد Smile
الرد }}}
تم الشكر بواسطة:
#6
حسب بحثي لهذا الملف تم العثور على كود الكتابه والقرآءه

استخدم أداة Textbox1 لكتابة النص المراد إذافته في الملف
استخدم أداة
Label1 لعرض النص من الملف
أستخدم
Button1 أمر الإضافة البيانات
استخدم
Button2 أمر عرض البيانات

الأن نذهب للكود

في زر Button1 في حدث Click أكتب الكود التالي

كود :
[align=left]
[SIZE=4][b][COLOR=#008000]' تعريف متغير لحفظ مسار الملف
[/COLOR]
[color=#0000ff]Dim [/color]file_name [color=#0000ff]As String[/color] = [color=#add8e6]Application[/color].StartupPath() & [color=#a52a2a]"/info.ini"[/color]

[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]



الأكواد منقوله من موقع آخر وتم تعديل الطفيف لتناسب الموضوع
Big Grin
<---------------------------------------------------------------->

الرد }}}
تم الشكر بواسطة:
#7
اخى الكريم 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 جزاه الله خير
لاكنى اريد باقى الاكواد
لانى استخدم هذه الخاصيه كقاعدة بينات
الرد }}}
تم الشكر بواسطة:
#8
نحمده ونصلي على رسوله الكريم

الموضوع بسيط جدا، لن تحتاج لكودات غير التي كتبتها سابقاً، للتعديل والحذف والكتابة على حد سواء.
انظر:
كود :
[align=left]Public Class Form1

    Dim filename As String = Application.StartupPath & "\Settings.ini"

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        WritePrivateProfileString("FileMenu", "New", "جديد", filename)
        WritePrivateProfileString("FileMenu", "Open", "فتح", filename)
        WritePrivateProfileString("FileMenu", "Save", "حفظ", filename)
        '
        WritePrivateProfileString("EditMenu", "Cut", "قص", filename)
        WritePrivateProfileString("EditMenu", "Copy", "نسخ", filename)
        WritePrivateProfileString("EditMenu", "Past", "لصق", filename)
    End Sub

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        Dim value As String = Space(255)

        GetPrivateProfileString("FileMenu", "New", "قيمة افتراضية جديد", value, Len(value), filename)
        MessageBox.Show(value)

        GetPrivateProfileString("FileMenu", "Save", "قيمة افتراضية حفظ", value, Len(value), filename)
        MessageBox.Show(value)

        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، ابحث عن هذه الكلمة تجد شروحات كثيرة إن شاء الله، فلا يسعني قول أكثر من ذلك....


الملفات المرفقة
.zip   INILanguage.zip (الحجم : 16.83 ك ب / التحميلات : 77)
الرد }}}
تم الشكر بواسطة:
#9
جزاك الله خير كده انا فهمت اخى الكريم DreamsDotNet

الون الاخضر فهمته يبقى الى بالون الاحمر

1- كود حذف قائمه مثل وكل ما تحتويه

2- كود حذف مفتاح مثل

3- كود جلب جميع القوائم من ملف نصى

4- كود جلب المفاتيح الموجوده فى قائمة

5- كود جلب القيمه من مفتاح

6-كود الانشاء لانشاء مفتاح جديد



كود جلب القوائم
مثلا عندى ملف لا اعلم القوائم التى به
يعود لى الكود بمتغير به قائمه بجميع القوائم واستخدم التكرار فور مثلا لوضع اسماء هذه القوائم فى ليست بوكس مثلا


كود جلب المفاتيح
انا الان عرفت القوائم الموجوده فى الملف
اريد العثور على المفاتيح التى بداخل قائمه معينه



ومعذرة اريد شرح ولو بسيط جدا عن هذا الكود
#Region "API"
اريد فقط ان اعرف ماهو وما عمله ولماذا نكتبه
الرد }}}
تم الشكر بواسطة:
#10
السلام عليكم ورحمة الله وبركاته
أخي الكريم هذه طريقة لجلب المفاتيح والقيم ولكن عن طريق الكود تستطيع الاستفادة منها إلى جانب دوال 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

        End Try
    End Sub


بالتوفيق
الرد }}}
تم الشكر بواسطة:



التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم