• اگر سمپادی هستی همین الان عضو شو :
    ثبت نام عضویت

مشکل کار با فایل در VB

  • شروع کننده موضوع
  • #1

Kalanon

کاربر فعال
ارسال‌ها
31
امتیاز
13
نام مرکز سمپاد
شهید هاشمی نژاد 2
شهر
مشهد
دانشگاه
حالا کو تا دانشگاه!
رشته دانشگاه
هر چی خدا بخواد!!!
سلام . من یه فرم ساختم که ابتدا یک فایل تکست که یک لیست از اسم چند تا application هستش رو می خونه و اون رو به نمایش درمیاره تا بتنونین بهش اضافه کنین و یا پاک کنین . فرمت فایل تکست این هست :

کد:
تعداد Application ها
Application 1
Application 2
Application 3
...

به طور مثال

کد:
3
explorer
babylon
photoshop

این هم تصویر و کد فرم :

ccg7bb6q36db0pc377lz.jpg


کد:
Private Sub Form_Load()
Close #1
liste.Text = ""
Open "list.txt" For Input As 1
Line Input #1, appnum
For i = 1 To appnum
Line Input #1, appname
liste.Text = liste.Text + appname + vbNewLine
Next i
Close #1
End Sub
____________________________________
Private Sub clearbut_Click()
appnum = 0
appname = ""
liste.Text = ""
End Sub
____________________________________
Private Sub saveexitbut_Click()
Open "list.txt" For Output As 1
liste.Text = appnum + vbNewLine + liste.Text
Print #1, liste.Text
Close #1
kpklist.Hide
End Sub
Private Sub exitbut_Click()
kpklist.Hide
End Sub
____________________________________
Private Sub addbut_Click()
n = appnum
appnum = n + 1
liste.Text = liste.Text + text1.Text + vbNewLine
End Sub
____________________________________
Private Sub Timer2_Timer()
text1.Text = ""
kpklist.Hide
Timer2.Interval = 0
End Sub

خوب اول فرم خط اول تکست که یه عدده رو می خونه و تو متغییر appnum ذخیره می کنه . بعد به اون تعداد دوره For رو انجام میده و خط های بعدی رو که اسم application ها هست رو می خونه .
خوب اینجا ما در نظر می گیریم appnum=2. بعد اون ها رو تو تکست باکس list نشون می ده . حالا هر وقت کاربر اسمی رو تو تکست باکس Text1 وارد کنه و کلید add رو بزنه ، برنامه باید appnum رو یکی افزایش بده و اسم نوشته شده در Text1 رو به list اضافه کنه . ولی به جای اینکه یکی به appnum اضافه کنه اون رو به 1 تبدیل می کنه .
کلید Clear هم اینکارو می کنه : appnum =0 .
در نهایت هم کلید Saveexitbut باید محتوای فایل list.txt رو پاکنه و تو خط اول متغییر appnum و در خط بعدی محتوای list.text رو بنویسه ولی خط اول رو خالی می زاره و خط بعدی محتوای list.text رو می نویسه .
همچنین addbut اول appnum رو صفر می کنه و بع یکی بهش اضافه می کنه .
لطفا کمکم کنین . تو کد هام هیچ مشکلی ندیدم ولی کار نمی کنه .


اگه خواستین هم بگین تا من سورسشو بزارم .

ممنون
 
  • شروع کننده موضوع
  • #2

Kalanon

کاربر فعال
ارسال‌ها
31
امتیاز
13
نام مرکز سمپاد
شهید هاشمی نژاد 2
شهر
مشهد
دانشگاه
حالا کو تا دانشگاه!
رشته دانشگاه
هر چی خدا بخواد!!!

badihi

کاربر نیمه‌فعال
ارسال‌ها
9
امتیاز
0
نام مرکز سمپاد
شهیداژه ای 1 اصفهان
شهر
اصفهان
مدال المپیاد
ندارم
پاسخ : مشکل کار با فایل در VB

سلام دوست گرامي.
اشکال برنامه شما، خوشبختانه اشکال ساده اي است.
در برنامه نويسي به زبان ويژوال بيسيک (و در هر زبان برنامه نويسي اي که تا به حال ديده ام) شما دو نوع متغير داريد:
1- متغير محلي
2- متغير عمومي
متغير محلي، يعني همين متغيري که شما با نام appnum تعريف کرده ايد، تنها در محدوده اي که تعريف شده اعتبار دارد.
اگر شما از اين متغير در جاي ديگري از برنامه استفاده نماييد، کامپايلر اين متغير را به عنوان متغيري جديد دي نظر مي گيرد.
براي رفع اين مشکل، ما بايد يک متغير عمومي تعريف کنيد تا در همه جاي برنامه قابل دسترسي باشد. در اين صورت اين متغير در هر جاي برنامه مي تواند مورد استفاده قرار گيرد.
براي تعريف چنين متغيري، شما بايد آن را با اسفاده از دستور DIM در ابتداي کد فرمتان تعريف کنيد.
کافي است اين کد را به ابتداي فرم بيفزاييد:
Dim appnum as Integer
Dim appname as String
اميدوارم مشکل شما با اين مورد رفع شود.
 
بالا