PDA

View Full Version : اجرای دستورات بر اساس فایل تکست؟



upload
دوشنبه 18 مرداد 1389, 15:32 عصر
سلام:
چطور می شه برنامه ای نوشت که یک command button داشته باشه و
هر موقع روی این کامند باتن کلیک بشه دستوراتشو از داخل چند تا فایل تکست که
قبلا تهیه کردیم لود کنه و اجرا کنه؟
به عنوان مثال ما در مسیر های زیر 4 تا فایل با پسوند txt داریم :
D:\VB\command1.txt
D:\VB\command2.txt
D:\VB\command3.txt
D:\VB\command4.txt
که می خوام موقعی بر روی کامند باتن کلیک دستوارتشو که باید اجرا کنه از
4 تا تکست بالایی در بیاره و اجرا کنه؟؟

saeedvir
دوشنبه 18 مرداد 1389, 20:51 عصر
چه دستوري ؟
منظورم اينه كه به صورت داس هست يا ... ؟

upload
دوشنبه 18 مرداد 1389, 22:21 عصر
فرض کن هر دستوری!
ولی خودم می خوام از چند تا if استفاده کنم ، یعنی داخل هر تکست چند تا if هست.

محسن شامحمدی
سه شنبه 19 مرداد 1389, 10:50 صبح
خیلی سادس
open "c:\a.txt" for binary as #1
while eof(1)=false
input #1,1,a
msgbox a
wend
امیدوارم بدردت بخوره

ayub_coder
سه شنبه 19 مرداد 1389, 11:00 صبح
با این دستوراتی که دوستمون گفتن باید محتویات فایل رو بخونی و یک parser کوچیک خودت بنویسی
موفق باشی

Saman_12
سه شنبه 19 مرداد 1389, 11:04 صبح
دوست عزیز 09111111111 کد شما کار می کنه اما فکر کنم منظور ایشون این بود که یه تعدادی دستور وبی داخل فایل تکست دارن و می خوان که دستورات به ترتیب خونده شه و بعد هم برنامه اون دستورات رو اجرا کنه!

M.T.P
سه شنبه 19 مرداد 1389, 13:14 عصر
فرض کن هر دستوری!
ولی خودم می خوام از چند تا if استفاده کنم ، یعنی داخل هر تکست چند تا if هست.

شما میخواین برنامه تون حکم کامپایلر داشته باشه و بتونه دستورات vb رو اجرا کنه که متاسفانه ممکن نیست.

upload
سه شنبه 19 مرداد 1389, 14:25 عصر
دوست عزیز 09111111111 کد شما کار می کنه اما فکر کنم منظور ایشون این بود که یه تعدادی دستور وبی داخل فایل تکست دارن و می خوان که دستورات به ترتیب خونده شه و بعد هم برنامه اون دستورات رو اجرا کنه!

حرف این دوستمون درسته من می خوام دستوراتی رو که باید اجرا کنه از فایل تکست بگیره.
یعنی من قبلا دستوراتو داخل فایل تکست نوشتم و کامله فقط می خوام توسط برنامه
این دستورات اجرا بشن.
اگه راهی هست کمکم کنید!چون می شه خیلی کارا با این برنامه انجام داد!!

vbhamed
سه شنبه 19 مرداد 1389, 14:53 عصر
سلام

شايد بهترين راه اين باشه كه ويژوال بيسيك رو هم نصب كنيد و بعد برنامه نوشته شده رو به صورت مخفي با اون كامپايل كنيد و بعد اجراش كنيد

دستور زير رو تو Run ويندوز بنويسيد، راهنماي لازم براي كامپايل از طريق ويژوال بيسيك رو بهتون مي ده


"f:\Microsoft Visual Studio\VB98\VB6.EXE" /?

يك پروژه ساده با يك ماژول بدون فرم ايجاد كنيد بعد دستوراتي كه داخل تكست باكس نوشته شده رو از طريق برنامتون به ماژول اون پروژه ساده منتقل كنيد (فايل .bas ماژول رو باز كنيد و محتويات فايل تكست رو توش بنويسيد، البته چيز خاصي نيست فقط يك Sub Main و End Sub اول و آخرش مي خواد)
بعد پروژه رو از طريق بالا كامپايل و اجرا كنيد

upload
سه شنبه 19 مرداد 1389, 15:02 عصر
بابت کمکت ممنون!
ولی من می خوام برنامه بر اساس یک یا چند فایل تکست که داخلش دستوراته کار کنه.
نه بر اساس ماژول و...
یعنی هیچ راهی نیست که دستوراتی که داخل فایل تکست نوشته را از طریق برنامه اجرا کنیم؟

ayub_coder
سه شنبه 19 مرداد 1389, 16:01 عصر
سلام دوست عزیز
برای اینکار باید از Scripting Control استفاده کنی.
اینم یکم محدوده و تو محدوده ی vbscript کار می کنه ولی واسه کاری که تو میخوای فکر کنم مفید باشد
نمونه کد ببین به دردت می خوره


Dim a As New MSScriptControl.ScriptControl

b = "msgbox ""Hello world"""
a.Language = "VBScript"
a.AllowUI = True
a.AddObject "form1", Form1
a.AddCode b

night_secret
سه شنبه 19 مرداد 1389, 16:06 عصر
نه متاسفانه این کار امکان پذیر نیست!!!

upload
سه شنبه 19 مرداد 1389, 16:22 عصر
نه من کارم با vbscript درست نمی شه!
مگه می شه راهی نباشه؟مدیرای محترم لطفا یک کمکی کنین!

ayub_coder
سه شنبه 19 مرداد 1389, 16:24 عصر
دقیقا بگو می خوای چکار کنی؟ :متفکر:

vbhamed
سه شنبه 19 مرداد 1389, 21:44 عصر
سلام

حالا مگه ماژول چيز عجيبيه كه نمي خواي كار كني
ماژول هم يك فايل تكست هست با پسوند Bas

upload
سه شنبه 19 مرداد 1389, 21:56 عصر
در برنامه ها می شه از چند تا ماژول استفاده کرد؟
ظرفیتش چه اندازه هست؟ منظورم اینه تا چه حد می شه کد داخلش به کار برد؟
مثل کامند باتن نباشه که بعد از به کار بردن چند هزار if بخواد ارور از سر ریزی بده!
چه طور موقعی if داخل ماژول می نویسم با کامند باتن هدایتش کنم؟
منظورم اینه اگر من چند هزار تا if داخل ماژول نوشتم چطور با کامند باتن هدایتش کنم؟

upload
سه شنبه 19 مرداد 1389, 22:06 عصر
دقیقا بگو می خوای چکار کنی؟ :متفکر:

به عنوان مثال من یک فایل با پسوند تکست دارم که داخلش چند خط به زبان vb
نوشته شده مثل چند خط زیر :
form1.backcolor=vbred
if text1.text="test" then form2.show
یا کدای دیگه که اینایی که نوشتم فقط واسه مثال بودن!
من می خوام کامند باتن رو طوری طراحی کنم که ادرس فایل تکست
رو از قبل بگیره و وقتی روی کامند باتن کلیک می کنی چند خط کد داخل فایل
تکست رو اجرا کنه!دیگه نمی دونم چطور توضیح بدم!

mohandesirani
چهارشنبه 20 مرداد 1389, 10:02 صبح
دوست عزیز برو به pscode یه سر بزن اونجا برنامه ای رو با عنوان executeline سرچ کن همون چیزیه که تو میخوای.در واقع تو محیط برنامه ات یه تکست باکس داری که میتونی تو اون کد بنویسی تا برنامه اون خطو برات اجرا کنه اگه چند خط هست هم میتونی یه فر بزاری تا خط به خط برنامه ات رو اجرا کنه.

vbhamed
چهارشنبه 20 مرداد 1389, 13:20 عصر
در برنامه ها می شه از چند تا ماژول استفاده کرد؟
ظرفیتش چه اندازه هست؟ منظورم اینه تا چه حد می شه کد داخلش به کار برد؟
مثل کامند باتن نباشه که بعد از به کار بردن چند هزار if بخواد ارور از سر ریزی بده!
چه طور موقعی if داخل ماژول می نویسم با کامند باتن هدایتش کنم؟
منظورم اینه اگر من چند هزار تا if داخل ماژول نوشتم چطور با کامند باتن هدایتش کنم؟

سلام
همه اين ظرفيت ها مثل خود محيط ويژوال بيسيك هستش
براي فراخواني با CommandButton هم تو پروژتون يك فرم اضافه كنيد و متدي كه در ماژول تعريف كردين فراخواني كنيد مثل خود محيط
اصلا كل كار مثل خود محيط ويژوال بيسيك هستش فقط اينكه شما كد برنامتون رو دارين با اديتوري غير از اديتور خود ويژوال بيسيك مي سازين

اما يك مسئله
به نظر من بهتره شما موضوع اصلي كه دارين اين كارها رو راش انجام مي دين رو مطرح كنيد
چرا هزاران If درج مي كنيد ؟
برنامه اصلي تون قراره چه كاري انجام بده ؟

upload
چهارشنبه 20 مرداد 1389, 21:38 عصر
من الان سر 2 تا پروژه کار می کنم که اون دومی که داخلش از چند هزار if به
کار بردم برنامه ای حالت دیکشنریه!حالا ممکنه بگین چرا از if استفاده کردی؟یا
چرا از بانک اطلاعاتی یا ... استفاده نکردی؟
چون من واسه ساخت این برنامه از یک برنامه ی دیگه که به زبان c یکی از دوستام
برام ساخته بود استفاده می کردم!یعنی برنامه خودش می یومد کلمات رو می گرفت و به کد وی بی
که باید در برنامه به کار می بردم تبدیل می کردم.حالا کل کد ها اماده ی ولی بهم ارور از
سر ریزی می ده.که می خوام با این کار درستش کنم.

upload
پنج شنبه 21 مرداد 1389, 00:44 صبح
دوست عزیز برو به pscode یه سر بزن اونجا برنامه ای رو با عنوان executeline سرچ کن همون چیزیه که تو میخوای.در واقع تو محیط برنامه ات یه تکست باکس داری که میتونی تو اون کد بنویسی تا برنامه اون خطو برات اجرا کنه اگه چند خط هست هم میتونی یه فر بزاری تا خط به خط برنامه ات رو اجرا کنه.

هر چی سرچ کردم نبود! می تونی خودت سورسشو برام بزاری؟

upload
پنج شنبه 21 مرداد 1389, 15:39 عصر
این پست که دیگه داخل سایت نیست! پس چرا کمک نمی کنید؟

محسن شامحمدی
جمعه 22 مرداد 1389, 09:14 صبح
سلام مجدد
اگر تعداد دستورات شما محدود است می تونی با همون روشی که گفتم متن ها رو بخونی و مقایسه کنی که آیا متن همونه اگر اون بود فلان تابع اجرا بشه

....
input #1,a
if a="kill" then
kill app.path & "\help.chm"
end if
اگر تعداد دستورات کم باشد این حالت می تونه کمکتون کنه