(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!"
لكن ممكن النتائج تكون بملف منفصل ؟!
