تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[سؤال] كيف اسوي برنامج يقرأ سطر سطر وينفذ امر
#1
 بحتاج مساعدi في برنامج عندي ، عاوزه البرنامج يقرأ من تكست فايل 
والموجود فيه هاي البيانات : 

ip vrf NMS_CORE

  description ATHEEB_NMS_CORE_MGMT_VRF
  rd 48695:40003
  route-target import 48695:40003
  route-target import 48695:40004
  route-target export 48695:40003 
 route-target export 48695:40004
$


[rtl]ip vrf voice[/rtl]

  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 " ايضا يقوم باضافتها بسطر جديد وبعدها يضع $ 
وهكذا للبقيه ، 

شكرا جزيلا
الرد
تم الشكر بواسطة:
#2
السلام عليكم

السطر address-family ipv4 هل سيبحث عنه في ملف التكست كاملا قبل اضافته ام انه يجب ان يكون في السطر الاول مثلا ؟
الرجاء التوضيح لان المطلوب غير واضح

يعطيك العافية
(( يَا أَيَّتُهَا النَّفْسُ الْمُطْمَئِنَّةُ ارْجِعِي إِلَى رَبِّكِ رَاضِيَةً مَرْضِيَّةً فَادْخُلِي فِي عِبَادِي وَادْخُلِي جَنَّتِي ))

الرد
تم الشكر بواسطة:
#3
نعم سيكون في كل التكست فايل ، هلا هاي الجمله address-family ipv4 لابد ان تكون في نهايه كل تعريف من التعريفات الثلاثه التي حطيتها تحت
يعني مثلا
ip vrf NMS_CORE و ip vrf CORP و ip vrf VOICE i هدول تلت تعريفات منفصله عن بعضهم يفصل بينهم علامه $ في كل تعريف لازم يكون في جمله
address-family ipv4


ip vrf NMS_CORE
description ATHEEB_NMS_CORE_MGMT_VRF
rd 48695:40003
route-target import 48695:40003
route-target import 48695:40004
route-target export 48695:40003
route-target export 48695:40004
$
ip vrf CORP
rd 48695:40003
route-target import 48695:40003
route-target import 48695:40004
route-target export 48695:40003
route-target export 48695:40004
$
ip vrf VOICE
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 NMS_CORE
description ATHEEB_NMS_CORE_MGMT_VRF
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 CORP
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
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
$
الرد
تم الشكر بواسطة:
#4
السلام عليكم

بامكانك استخدام الكود التالي
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 CloseEnd
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

او بامكانك تحميل الملف من المرفقات

يعطيك العافية


الملفات المرفقة
.rar   txt-file.rar (الحجم : 1.52 ك ب / التحميلات : 41)
(( يَا أَيَّتُهَا النَّفْسُ الْمُطْمَئِنَّةُ ارْجِعِي إِلَى رَبِّكِ رَاضِيَةً مَرْضِيَّةً فَادْخُلِي فِي عِبَادِي وَادْخُلِي جَنَّتِي ))

الرد
تم الشكر بواسطة: ahmedabdelaliem
#5
اهلا ، إذا لم تكن بيانات الملف النصي كبيرة جداً ، فمن الممكن إستخدام هذه الطريقة ، وبما أن علامة الـ $ تفصل التعاريف دائما فيمكن الإستعانه بدالة التجزئه ، كمايلي :

كود :
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!"
الرد
تم الشكر بواسطة:
#6
(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 CloseEnd
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!"
يعطيك العافيه أخي ، شكرا على الرد ..
لكن ممكن النتائج تكون بملف منفصل ؟!
الرد
تم الشكر بواسطة:
#7
واذا كانت اشارة $ غير موجودة

على كل حال ممكن وضع جميع الاوامر التي ممكن ان تكون مثل ip vrf VOICE في مصوفة ومهما زاد عددها لن تؤثر على عمل البرنامج

يعطبك العافية
(( يَا أَيَّتُهَا النَّفْسُ الْمُطْمَئِنَّةُ ارْجِعِي إِلَى رَبِّكِ رَاضِيَةً مَرْضِيَّةً فَادْخُلِي فِي عِبَادِي وَادْخُلِي جَنَّتِي ))

الرد
تم الشكر بواسطة:
#8
(04-04-15, 01:18 AM)abulayth كتب : واذا كانت اشارة $ غير موجودة

على كل حال ممكن وضع جميع الاوامر التي ممكن ان تكون مثل ip vrf VOICE في مصوفة ومهما زاد عددها لن تؤثر على عمل[صورة مرفقة: arrow-10x10.png] البرنامج

يعطبك العافية

الله يعافيك ي رب ، بس كككككيف !!!
الرد
تم الشكر بواسطة:
#9
ان شاء الله الى الغد لان جهازي الحالي لا يوجد عليه لغة برمجة  Blush
(( يَا أَيَّتُهَا النَّفْسُ الْمُطْمَئِنَّةُ ارْجِعِي إِلَى رَبِّكِ رَاضِيَةً مَرْضِيَّةً فَادْخُلِي فِي عِبَادِي وَادْخُلِي جَنَّتِي ))

الرد
تم الشكر بواسطة:
#10
التعديل في المرفقات , بالطريقة التي ذكرتها سابقاً .


الملفات المرفقة
.rar   Read_TextFile.rar (الحجم : 2.24 ك ب / التحميلات : 46)
الرد
تم الشكر بواسطة: mera


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  تشغيل برنامج متصل بقاعدة بيانات اكسيس على جهازين فى نفس الشبكة aboezzat84 1 48 19-07-18, 08:43 AM
آخر رد: elgokr
  مشكلتي مع برنامج الأنتي فيرس عند تشغيل برامج vb6 عبدالله الصافي 4 107 30-05-18, 03:26 AM
آخر رد: عبدالله الصافي
Question [vb6.0] هل يمكن تشفير قاعدة البيانات اكسس بحث لا يمكن فتحها من خلال برنامج Microsoft Access Microformt 0 96 05-05-18, 02:40 PM
آخر رد: Microformt
Information [vb6.0] كيف ان اجعل الصورة الموجودة في خلفية الفورم تكون في منتصف الفورم في برنامج المرفق؟؟ Microformt 2 120 01-04-18, 02:48 PM
آخر رد: Microformt
  طلب كود برنامج hannileo 4 206 28-03-18, 01:26 PM
آخر رد: جاسم عبد
  طلب برنامج hannileo 0 94 28-03-18, 01:08 PM
آخر رد: hannileo
Question [vb6.0] هل يمكن ان اجعل الصورة الموجودة في خلفية الفورم تتمدد في برنامج المرفق؟؟ Microformt 2 185 23-03-18, 06:26 AM
آخر رد: Microformt
  برنامج لتقسيم الوقت بين توقيتين احد يعرف كيف يحل هذا السوال اكون ممنون للمساعدة والمج سيلفو 3 80 07-02-18, 11:57 AM
آخر رد: سيلفو
Question [vb6.0] كيف يمكن تحويل برنامج من32 بات الى 64 بات ؟ Microformt 0 121 25-01-18, 05:24 AM
آخر رد: Microformt
  تشغيل برنامج الى ببرنامج خاص bidaya 6 179 11-01-18, 02:27 AM
آخر رد: bidaya

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


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