منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : الاستبدال من ملف نصي
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
الصفحات : 1 2
كيف اعمل استبدال إذا وجد السطر الأول من ملف تكست في تكست بوس ، يقوم باستبداله بالسطر الثاني من نفس الملف ؟
صعب جدا عمل ريبلاس داخل الاكواد خاصة اذا كان الكلمات كثيرة فارجو كيفية الاستبدال من نص بحيث يكون الملف خارج البرنامج
كود :
Dim txt As String = System.IO.File.ReadAllText("مسار الملف النصي")
        Dim line As String() = txt.Split(vbCrLf)
        txt = txt.Replace(line(0), line(1))
        System.IO.File.WriteAllText("مسار الملف النصي", txt)
كيف يمكن التكرار ؟

يعني إذا أردت أن أقوم بعمل استبدال ل 100 كلمة مثلا

أكرر هذا الكود 100 مرة ؟

بارك الله فيك
تريد أستبدال أيّة كلمة بأيّة كلمة؟
أو أي سطر بأي سطر؟
على خيارين

الأول

أن يستبدال بالترتيب

السطر الاول بالثاني
والثالث بالرابع
والخامس بالسادس
والخيار الثاني

ان يستبدال بالترتيب من ملفين

يستبدل السطر الاول من ملف 1 بالسطر الاول من ملف 2
بحيث يكون ملف للأصل وملف للاستبدال
ويغنينا عن تكرار الاكواد
بحيث يكون واحد معناه انه يستبدل السطر في ملف 1 بالسطر الذي يقابله في ملف 2
او الافضل لو امكن كالتالي

سطر الأصل وسطر الاستبدال

بحيث لا يتم تحديد السطر رقم كذا يتم استبداله بالسطر كذا

ولكن اذا وضعت تكست يحتوي على :

محمد
احمد
على
موسي
محمود
مهند
عمر
حسن

سيتعرف على سطر الاصل فإن وجده يستبدله بالسطر الذي يليه وهكذا في كل الاسطر

بحيث يكون :

سطر الاصل
سطر الاستبدال
سطر الاصل
سطر الاستبدال

هل يمكن؟
خادم الدين كتب :على خيارين

الأول

أن يستبدال بالترتيب

السطر الاول بالثاني
والثالث بالرابع
والخامس بالسادس
والخيار الثاني

ان يستبدال بالترتيب من ملفين

يستبدل السطر الاول من ملف 1 بالسطر الاول من ملف 2
بحيث يكون ملف للأصل وملف للاستبدال
ويغنينا عن تكرار الاكواد
بحيث يكون واحد معناه انه يستبدل السطر في ملف 1 بالسطر الذي يقابله في ملف 2

كود :
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        System.IO.File.WriteAllText("مسار الملف النصي", ReplaceWithMethodOne(System.IO.File.ReadAllText("مسار الملف النصي")))
    End Sub

    Public Function ReplaceWithMethodOne(ByVal txt As String) As String
        Dim lines As String() = txt.Split(vbCrLf)
        For I As Integer = 0 To lines.Length - 1 Step 2
            If (I + 1) = lines.Length Then Exit For
            lines(I) = lines(I + 1)
        Next
        lines = InsertLine(lines)
        Return String.Concat(lines)
    End Function

    Private Function InsertLine(ByVal strArr As String()) As String()
        If strArr.Length > 1 Then
            For I As Integer = 0 To strArr.Length - 2
                strArr(I) &= vbCrLf
            Next
            Return strArr
        Else
            Return strArr
        End If
    End Function
بارك الله فيك ،

انا اقصد شيء قريب من هذا
ان نتائج الاستبدال تكون في التكست بوكس

لا يكون الاستبدال داخل الملف النصي نفسه

واعتذر على عدم التوضيح جزاك الله خيرا
خادم الدين كتب :بارك الله فيك ،

انا اقصد شيء قريب من هذا
ان نتائج الاستبدال تكون في التكست بوكس

لا يكون الاستبدال داخل الملف النصي نفسه

واعتذر على عدم التوضيح جزاك الله خيرا
ولا يهمك أخي،
كود :
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        TextBox1.Text = ReplaceWithMethodOne(System.IO.File.ReadAllText("مسار الملف النصي"))
    End Sub
الصفحات : 1 2