منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب
كيف اقوم بهذا بتنسيق - نسخة قابلة للطباعة

+- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb)
+-- قسم : قسم لغة الفيجوال بيسك VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=182)
+--- قسم : قسم اسئلة VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=183)
+--- الموضوع : كيف اقوم بهذا بتنسيق (/showthread.php?tid=18063)

الصفحات: 1 2


كيف اقوم بهذا بتنسيق - rabeh.ram - 17-11-16

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

ملاحظة ------ الاسطر التي تحتوي على فراغ ليس بالضرورة ان تكون في بداية الملف 
            ------ الفراغ الذي قيمته ( 1 فراغ) الذي يفصل الاعمدة لا يتم تغييره ام الفراغ ( 1 فراغ)  في بداية السطر يتم تغيره كما هو موضح في الصورة
ارجو ان اكون قد طرحت اشكالي بالشكل الواضح كما ارجو ان اجد غندكم فكرة لحله





RE: كيف اقوم بهذا بتنسيق - السرور - 17-11-16

اخوي، ممكن الملف لجل نعمل عليه


RE: كيف اقوم بهذا بتنسيق - myalsailamy - 17-11-16

كود :
        Dim result As New StringBuilder("")
        Dim lines As New List(Of String) From { _
        "     52389734438 b94393438 b4398374b34 4387 34.3434", _
        " 52389734438 b94393438 b4398374b34 4387 34.3434", _
        "  52389734438 b94393438 b4398374b34 4387 34.3434", _
        "f999 52389734438 b94393438 b4398374b34 4387 34.3434", _
        "     52389734438 b94393438 b4398374b34 4387 34.3434"}
        For Each line In lines
            If line.Trim.Substring(0, 4).ToLower = "f999" Then
                result.AppendLine(line)
            Else
                result.AppendLine("0000 " & Trim(line))
            End If
        Next
        textbox1.text = result.ToString


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


RE: كيف اقوم بهذا بتنسيق - السرور - 18-11-16

هذا الكود حسب الشرح يطبق المطلوب على النص الموجود في المتغير sourceString وتكون النتيجة في المتغير resultString
PHP كود :
Dim resultString As String Regex.Replace(sourceString"^\s+?(?=[^\s])""0000 "RegexOptions.Multiline



RE: كيف اقوم بهذا بتنسيق - myalsailamy - 18-11-16

(18-11-16, 12:02 AM)السرور كتب : هذا الكود حسب الشرح يطبق المطلوب على النص الموجود في المتغير sourceString وتكون النتيجة في المتغير resultString
PHP كود :
Dim resultString As String Regex.Replace(sourceString"^\s+?(?=[^\s])""0000 "RegexOptions.Multiline

فكره ذكيه  منك استخدام  Regex  ، جميل جدا


RE: كيف اقوم بهذا بتنسيق - rabeh.ram - 18-11-16

شكرا لكما اخي [b]myalsailamy [/b]و اخي[b] السرور [/b]ساجرب حليكما وافيكم بالجديد


ما اريده ان احول الملف المسمى file الى الملف المسمى FINAL -------- الملفين بالمرفقات----------


RE: كيف اقوم بهذا بتنسيق - السرور - 18-11-16

اشكرك اخي على كلماتك الطيبة، وما انا الا تلميذ لديكم، تحياتي الك


RE: كيف اقوم بهذا بتنسيق - rabeh.ram - 18-11-16

لم ينجح معي الكود الذي زودتني به اخي [b]myalsailamy[/b]  لان الكود قام بادراج عمود جديد يحمل 0000 بينما انا اريد ادراج 0000 في نفس العمود الذي يحمل القيمة F252 لكي تصبح  الاعمدة بنفس البداية والنهاية اي الاعمدة تكون منسقة فوق بعضها البعض دون اي ازحات 

ام بالنسبة لكود الاخ السرور لم افهم كيفية العمل به على العموم شكرا لدعمكما كم اني انتظر المزيد من الاقترحات منكما ومن بقية الاعضاء 

كي لا اطيل لقد ارفقت ملفين في ردي السابق يلخصان المطلوب


RE: كيف اقوم بهذا بتنسيق - السرور - 18-11-16

ما تعرف تقرا ملف نصي؟
هل انت في بداية دراسة البرمجة؟

هذا الكود يقرا ملف نصي ويضعه في المتغير sourceString الذي اخبرتك به ثم يطبق عليه العملية والسطر الاخير يحفظ الناتج من المتغير resultStrint في ملف نصي اخر

لاحظت ان الملف الاول لم يبدا بمسافة يبدو انه خطا منك
PHP كود :
       Dim sourceString File.ReadAllText("file.txt")

 
       Dim resultString As String Regex.Replace(sourceString"^\s+""0000 "RegexOptions.Multiline)

 
       File.WriteAllText("FINAL.txt"resultString
مع تحسين الباترن السابق


RE: كيف اقوم بهذا بتنسيق - السرور - 18-11-16

وهذا تعديل لو كان السطر لم يبدا بمسافة ولكن لم يبدا بحرف ايضا
PHP كود :
Dim resultString As String Regex.Replace(sourceString"^(\s+|(?=[^[a-aA-Z]))""0000 "RegexOptions.Multiline