سلام دوستان میخواستم برای برنامه ای ک مینویسم
یک قسمتی بگذارم ک نمایش بده برای محاسبه کارایی ک انجام داده چ مقدار زمان سپری شده
کسی میدونه چطور میشه اینو گذاشت؟
سلام دوستان میخواستم برای برنامه ای ک مینویسم
یک قسمتی بگذارم ک نمایش بده برای محاسبه کارایی ک انجام داده چ مقدار زمان سپری شده
کسی میدونه چطور میشه اینو گذاشت؟
کمی واضحتر و روشنتر توضیح بده
تا کمکت کنم
شما اگر برنامه Format Factory و غیره رو دیده باشین
وقتی دارن یک فایل رو تبدیل میکنن یک تایمر هست ک نشون میده چ مقدار زمانی سپرده شده تا این فرایند انجام شده
منظورم این هست از زمانی ک دکمه شروع زده شده تا زمانی که محاسبات تمام شده چند ثانیه یا دقیقه یا ساعت یا روز گذشته!!!!!!
خب خودت جواب رو گفتی دیگه!
یه تایمر میزاری با interval ۱۰۰۰ بعد هر وقت دکمه شروع زده شد تایمر رو enable میکنی و هروقت تموم شد غیرفعالش میکنی
یه متغیر سراسری تعریف میکنی و تو تایمر اینو مینویسی
spendTime = spendTime+1
زمان رو بر اساس ثانیه ذخیره میکنه، آخرسر یه حساب میکنی و اگه زیاد بود به دقیقه و ساعت و روز تبدیلش میکنی.
ممنون خودم اول همین به ذهنم رسید و اینو انجام دادم ولی این محاسباتش زیاده و اینکه پردازش سی پی یو رو میبره بالا چون مدام تایمر داره فعالیت میکنه من مد نظرم این بود که از حداقل پردازش استفاده کنم
تابع اش داره تمام میشه ان شاالله تا آخر شب یا فردا میذارم البته توی سرچ هم چند تا پیدا کردم ولی این یکی ک میذارم همونیه ک خودم مد نظرم هست با کمترین پردازش و محاسبه
http://www.vbforums.com/showthread.p...g-elapsed-time
ببین عزیزم اون کد، مد ، ها را ولش کن یک چیزی که خودم استفاده میکنم اینکه میشه تو یک درخواست زمان اولیه ثبت کنی و در زمان بعدی به هر مقدار فاصله ای که بخواهی چکاپ انجام بدی که ببینی چه قدر گذشته میتونی از کد استفاده کنی.
این کد خودم نمشتم که بهت میگم چه کار
اول میتونی این کدو کپی کنی تو ماژول یا خود اصلی main اصلی برنامه ات
Public Function CHour(ByVal Seconds As Long) As String
Dim lTmpMinutes As Long: Dim lTmpSeconds As Long: Dim lTmpHours As Long
If Seconds > 59 Then lTmpSeconds = Seconds Mod 60: If Seconds > 3599 Then CSec = Format(Fix(Seconds / 3600), "00") & ":" & Format(Seconds / 60 - (60 * Fix(Seconds / 3600)), "00") & ":" & Format(lTmpSeconds, "00") Else CSec = "00:" & Format(Fix(Seconds / 60), "00") & ":" & Format(lTmpSeconds, "00") Else CSec = "00:00:" & Format(Seconds, "00")
CHour = CSec
End Function
کارش حالا چیه اینه که اگر بهش عدد به ثانیه بدی میتونی برات تبدیل میکنه به زمان (00:00:00)
که جالبی کار به این شکله که حتی بیخودی علیه سیستم دنیا با کمترین قدرت را داشته باشی تغییر ۱ ثانیه نداری و پردازش هم خیلی خیلی میاری پایین
این کد از حداقل با محاسبه ۳ عملیات ریاضی تا حداکثر ۶ الی ۷ عمل ریاضی این کارو انجام میده.
این لینک همون کده ولی تو سایت دیگه گذاشتم
https://anotepad.com/notes/grsi9b
اگر به کارت اومد که هیچی اگر که نه بگو تا از یک روشی دیگه بهت بگم
دستت طلا ممنون بله یک همچنین چیزی میخواستم خودمم از همین استفاده کردم
http://www.freevbcode.com/ShowCode.asp?ID=267
با استفاده از تابع time$ ویبی یک زمان اولیه میگیرم و یک زمان انتهایی و میدم به تابع و محاسبه میکنه
ممنون دوستان
اهان اون سایتی که گذاشتی با ۱۲ الی ۱۴ عملیات ریاضی اینکارو انجام میده تقریبا
ولی از من کمتر
یک روش دیگه هم بلدم که با یک خط فقط این کارو انجام میدید ولی از انجام عملیات پشت پرده خبر ندارم.
اگر میخواهی بگم
بیا این هم کد، این را بگم باز هم کد نایب دیگری هم هست که انشاالله هر وقت هوس کردم میگم
این را نیز بگم که این کدها را هرکسی نه بهت میده و نه برات می نویسه.
من حدود یک سال هست روی کد های ویژوال بیسیک دارم کار میکنم از خود خودش بگیر تا خود برنامه ویژوال بیسیک جوری دارم کد اسمبلی اش را تغییر میدم که بروز بشه. که شده!
البته هنوز کامل نشده و حدود ۹۰٪ پیش رفته. که اون هم بزودی اماده میشه.
نمونه فیلم
اینهم کد
aa = DateDiff("s", FristTime, SecondTime)
StringTime = Format$(CDate(aa / 60 / 60 / 24), "hh:mm:ss")
یک دکمه تشکر اون پایین هم هست اگر لطف کنی .... آره
احسنت به شما بنده هم خیلی وقته روی ویبی کار میکنم.......و کامپونت های خوبی ساختم
ای دی تلگرامم دوست داشتی پیام بده
HVPxx
واقعا احسنت به شما ویدیو رو دیدم خیلی عالی بود
ولی یکسری جزئیات رو مثلا توی پرینت رعایت نکردین ک آخر متن معمولا یک شکل های عجیب غریب پرینت میشد
فقط کافی بود قبل از برگشت خروجی Cstr() رو استفاده کنید تا فضای خالی اضافی رو حذف کنه
بهر حال واقعا عالی بود
خدا قوت خسته نباشید
آخرین ویرایش به وسیله Hashemvp : پنج شنبه 16 فروردین 1397 در 20:33 عصر
اختیار دارید نکته ای که گفتی تست نکردم
چون برای حذف داده های خالی از trim استفاده میکردم
حالا ببین چی میشه درست میشه یا نه
متاسفانه تلگرام ندارم.
درضمن ایشالله اگر خدا بخواد تا ۱ ماه دیگه سعی میکنم تمومش کنم و بگذارم تو همین سایت و (ببخشید ، دهن این منتقدان vb را ببندم) تا دیگران استفاده کنند.
بگو ایشالله : فقط به یک نکته مهم توجه کردی؟ موقع اجرا بدون هیچ کامپونتی دکمه ها گرافیکی بود!!!!!؟
اره واقعا ، مردهشور برده نمیدونم چطوری اینجوری طراحی شده که موقع طراحی اش انگار فکر ۴۰ سال دیگه را میکردند. (خداییش)
از چیش برات بگم ، ها ، از چیش؟؟؟؟؟ که حتی برنامه هایی اومدند عین خط کد و ظاهر وی بی را کپی و طراحی کردند ولی باز هم اصلا باشون حال نمیکنی و راحتیشو ندارند.
مثلا از چی بگم.
سریع اجرا شدن خود نرم افزار.
اجرای سریع برنامه.
راحتی درک و فهم موقع کد نوشتن.جابهجایی سریع و راحت ببین صفحات.
باگ یابی فوقالعاده قوی که تو خود #C که سال ۲۰۵۰ قراره بیاد، نداره.
اصلا وی بی نه اینکه تکلیفش با خودش مشخصه ، با کاربر هم تکلیفش هم مشخصه.!!!!! به خدا
و ......
مورد داشتیم طرف اومده وی بی را یاد بگیره ، بعد یک هفته رفته سراغ برنامه نویسی شبکه!!!!!! (مگه داریم اخه)
ولی اینو بگم که وی بی ۶ مشکل از نظر من داره که منو کمی اذیت میکنه، اگر این طرفشو میگیم ، اون طرفشو هم بگیم
۱.از ی فارسی نیز پشتیبانی نمیکنه و بجاش از این پشتیبانی میکنه، ي / البته این مشکل فقط مال ما ایرانی هاست و نه جای دیگه
۲.حافظه string بیشتر ۶۴kb نیست و نمیشه بیشتر از توش لود کرد، حتی توی TextBox
۳.ذخیره سازی داده ، ارسال اطلاعات، لود اطلاعات، ارتباط اطلاعات را به صورت unicode Anscii انجام میده
۴.ترس و دلهره برنامه نویس ها از اجرانشدن بعضی از کامپوننت ها در سیستم مشتری یا کاربر
۵.قدیمی بودن مرورگرش که بعضی وقت ها لجمون را در میاره.
۶.و در آخر اگر بهش فقط یک کمی عادت کنی دیگر زبان های برنامه نویسی میشه برات ، زبان چینی
آخرین ویرایش به وسیله www.pc3enter.tk : جمعه 17 فروردین 1397 در 02:21 صبح
Private Sub Form_Load()
Timer1.Interval = 1000
Timer1.Enabled = True
Label1.Caption = "00"
Label2.Caption = "00"
Label3.Caption = "00"
Label4.Caption = "00"
End Sub
Private Sub Form_Unload(Cancel As Integer)
' در اين قسمت که فرم بسته ميشه ميتوني مقادير را ذخيره کني و موقع لود شدن فرم بارگذاري کني دوباره
End Sub
Private Sub Timer1_Timer()
Label1.Caption = Label1.Caption + 1
' اينم دقيقه را حساب ميکنه
If Label1.Caption = 60 Then
Label2.Caption = Label2.Caption + 1
Label1.Caption = 0
End If
' ساعت را محاسبه ميکنه
If Label2.Caption = 60 Then
Label3.Caption = Label3.Caption + 1
Label2.Caption = 0
End If
' روز را شمارش ميکنه که 360 رو ميشه
If Label3.Caption = 24 Then
Label4.Caption = Label4.Caption + 1
Label3.Caption = 0
End If
End Sub
این خیلی کد ساده و پیش پا افتاده ای هست ولی کار میکنه
مابقی کار با خودته
امیدوارم به دردت بخوره
آخرین ویرایش به وسیله gorg313 : جمعه 21 اردیبهشت 1397 در 13:58 عصر دلیل: ..
سلام
فیلم رو دیدم، توابع مفیدی نوشتی فقط اینکه نباید اسمش رو ویژوال بیسیک جدید بزاری چون بهرحال یکسری تابع در ماژول اضافه شده، ضمنا میتونی روی Add-in ها وی بی هم کار کنی، کارای خیلی خوبی میشه باهاش انجام داد، بیشتر مخصوص محیط طراحی و کدنویسی هستش
در مورد مشکلاتی هم که گفتی هیچکدوم مانعی نیست، مورد 4 که با ساخت ستاپ به راحتی حله، با کامپوننت Codejock کل مشکلات یونیکد و حافظه حله (آخرین نسخه ای که یونیکد داره 16 هستش)
در مورد مرورگر هم بستگی به استفاده داره اگر قرار باشه فقط سایتی رو نمایش بدی میتونی یک برنامه کوچیک با زبانی دیگه بنویسی که از مرورگرهای جدیدتر پشتیبانی میکنه، اگر هم قرار باشه پردازش انجام بشه بازم با همین روش میشه ولی پیچیده تر
در کل کار نشد نداره
اما در اینکه vb6 عشقه شک نکن، سرعت، سادگی، قدرت، کیفیت
وجود مفسر که عیب یابی رو خیلی خیلی راحت تر میکنه نسبت به محیطها و زبانهای دیگه
اگر من و شما هر كدوم يك چيز ياد داشته باشيم و به هم ياد بديم، حالا هر كدوم دو تا چيز ياد داريم ! http://www.ArminaCo.com
یعنی خودت یکی یکی دونه ای (دمت گرم)