rd 48695:40003 route-target import 48695:40003 route-target import 48695:40004 route-target export 48695:40003 route-target export 48695:40004 يقرأ سطر سطر واذا لم يجد هذه الجمله " address-family ipv4 " يقوم باضافتها في سطر جديد ، وبعدها يضع هذا الشكل $
ثم ينتقل الى جمله ip vrf VOICE ويقرأها برضو سطر سطر واذا لم يجد هذه الجمله " address-family ipv4 " ايضا يقوم باضافتها بسطر جديد وبعدها يضع $ وهكذا للبقيه ،
نعم سيكون في كل التكست فايل ، هلا هاي الجمله address-family ipv4 لابد ان تكون في نهايه كل تعريف من التعريفات الثلاثه التي حطيتها تحت
يعني مثلا
ip vrf NMS_CORE و ip vrf CORP و ip vrf VOICE i هدول تلت تعريفات منفصله عن بعضهم يفصل بينهم علامه $ في كل تعريف لازم يكون في جمله
address-family ipv4
03-04-15, 09:31 PM (آخر تعديل لهذه المشاركة : 03-04-15, 09:34 PM {2} بواسطة Ahmed_Mansoor.)
اهلا ، إذا لم تكن بيانات الملف النصي كبيرة جداً ، فمن الممكن إستخدام هذه الطريقة ، وبما أن علامة الـ $ تفصل التعاريف دائما فيمكن الإستعانه بدالة التجزئه ، كمايلي :
كود :
Dim Defins() As String
Dim FileData As String
Dim I As Integer
Dim F As Integer
F = FreeFile
Open "File.txt" For Input As #F
FileData = Input(LOF(F),F)
DoEvents
Close #F
IF InStr(1,FileData,"$") = 0 Then
MsgBox "There is Problem"
Exit Sub
End IF
Defins = Split(FileData,"$")
DoEvents
Kill File.txt
DoEvents
F = FreeFile
Open "File.txt" For Append As #F
For I = LBound(Defins) To UBound(Defins)
IF InStr(1,Defins(I),"address-family ipv4") <> 0 Then
Print #F,Defins(I)
DoEvents
Print #F,"$"
DoEvents
Else
Print #F,Defins(I)
DoEvents
Print #F,"address-family ipv4"
DoEvents
Print #F,"$"
DoEvents
End IF
04-04-15, 01:03 AM (آخر تعديل لهذه المشاركة : 04-04-15, 01:22 AM {2} بواسطة mera.)
(03-04-15, 09:05 PM)abulayth كتب : السلام عليكم
بامكانك استخدام الكود التالي
PHP كود :
Private Sub Command1_Click() Close Open App.Path & "/in.txt" For Input As #1 Open App.Path & "/out.txt" For Output As #2 Dim l1$, l2$, l3$, a$ l1$ = "" l2$ = "" l3$ = "" a$ = "" gt = False gt0: If EOF(1) = True Then Close: End Line Input #1, a$ l1$ = l2$ l2$ = l3$ l3$ = a$ If InStr(a$, "ip vrf NMS_CORE") > 0 Then GoTo gt1 If InStr(a$, "ip vrf CORP") > 0 Then GoTo gt1 If InStr(a$, "ip vrf VOICE") > 0 Then GoTo gt1 Print #2, a$ GoTo gt2 gt1: If InStr(l2$, "address-family ipv4") > 0 Then GoTo gt3 If l1$ = "" And l2$ = "" Then GoTo gtx If Trim(l2$) <> "$" Then Print #2, "$" Print #2, "address-family ipv4" Print #2, a$ GoTo gtx gt2: GoTo gtx gt3: If Trim(l1$) <> "$" Then Print #2, "$" Print #2, a$ gtx: GoTo gt0 End Sub
ملف الادخال اسمه in.txt
ملف الاخراج اسمه out.txt
او بامكانك تحميل الملف من المرفقات
يعطيك العافية
شككرا لك اخي على الرد ، لكن اذا عدلت على ملف in.text واضفت كمان شغلات فلازم اعدل على الكود واضيفهم لحتى يقرأه ويضيف الجمله addres-family ipv4 ، وهاي بتطلب اني افرز كل تعريف لحال واخد نسخه من اسمه واكتبها بالكود وهاي عمليه صعبه شوي ،
لكن اجتني فككره ، ممكن تساعدني بانه نخلي البرنامج يضع addres-family ipv4 قبل كل $ وبهيك بضمن انه مهما كان الملف كبير فهو رح يحط هاي الجمله قبل $ ، خصوصا انه هاي العلامه $ تفصل بين كل تعريف عن الاخر وبهيك حققت الي انا بحتاجه .
شكككرا مره اخرى
(03-04-15, 09:31 PM)Ahmed_Mansoor كتب : اهلا ، إذا لم تكن بيانات الملف النصي كبيرة جداً ، فمن الممكن إستخدام هذه الطريقة ، وبما أن علامة الـ $ تفصل التعاريف دائما فيمكن الإستعانه بدالة التجزئه ، كمايلي :
كود :
Dim Defins() As String
Dim FileData As String
Dim I As Integer
Dim F As Integer
F = FreeFile
Open "File.txt" For Input As #F
FileData = Input(LOF(F),F)
DoEvents
Close #F
IF InStr(1,FileData,"$") = 0 Then
MsgBox "There is Problem"
Exit Sub
End IF
Defins = Split(FileData,"$")
DoEvents
Kill File.txt
DoEvents
F = FreeFile
Open "File.txt" For Append As #F
For I = LBound(Defins) To UBound(Defins)
IF InStr(1,Defins(I),"address-family ipv4") <> 0 Then
Print #F,Defins(I)
DoEvents
Print #F,"$"
DoEvents
Else
Print #F,Defins(I)
DoEvents
Print #F,"address-family ipv4"
DoEvents
Print #F,"$"
DoEvents
End IF
Next
Close #F
DoEvents
MsgBox "Ok We Are Done!"
يعطيك العافيه أخي ، شكرا على الرد ..
لكن ممكن النتائج تكون بملف منفصل ؟!