View Full Version : بهترین کنشگرهای دنیا !!
  
hariva
چهارشنبه 15 فروردین 1386, 18:31 عصر
فکر کنم که خیلی از شما مثل من این را قبول داشته باشید که یکی از مهمترین بخشهای هر زبان برنامه نویسی کنشگر ها یا توابع آن است. مخصوصا کنشگرهایی که خود برنامه نویسان برای کارهای تکراری مینویسند .در اینجا من چند کنشگر که خودم ساخته ام را قرار میدهم .از اساتید ارجمند خواهش میشود با به اشتراک گذاشتن کد های بدر بخور خود به ادامه یافتن این تاپیک کمک کنند. هدف اصلی ساختن چند ماجول کاربردی خواهد بود. لطفا نام ماجول  را هم بنویسید.فعلا ماجول های زیر برای این کار درنظر گرفته شده است.
1-STRING
برای کار روی رشته ها
2-IO
ورود و خروج فایل
3-DB
برای کار با دیتابیس
4-ARR
برای کار روی آرایه ها
5-FARSI
کنشگرهای مربوط به زبان فارسی
hariva
چهارشنبه 15 فروردین 1386, 18:33 عصر
نام کنشگر CompleteTrim 
نام ماجول  STRING
با این کنشگر میتوان تمام فاصله های اضافی یک متن را حذف کرد.
Public Function CompleteTrim(ByVal str As String) As String
        str = Trim(str)
        Do
            str = Replace(str, "  ", " ")
        Loop Until InStr(str, "  ") = 0
        Return str
    End Function
hariva
چهارشنبه 15 فروردین 1386, 18:34 عصر
نام کنشگر ReadText
نام ماجول  IO
با این کنشگر به آسانی یک فایل متنی را وارد متغیری از نوع string کنید.
توسعه مورد نیاز: گزینه مربوط به نوع انکودینگ فایل
Public Function ReadText(ByVal Patch As String) As String
        Dim InputReader As StreamReader
        InputReader = File.OpenText(Patch)
        Return InputReader.ReadToEnd
        End Function
hariva
چهارشنبه 15 فروردین 1386, 18:37 عصر
نام کنشگر Farsi2Arabic
نام ماجول  FARSI
این کنشگر متن فارسی دارای کاراکتر های مجاز را به متن دارای کاراکتر های غیر مجاز عربی تبدیل میکند.استفاده از این کنشگر چندان توصیه نمیشود اما امکان دارد بدرد بعضی دوستان بخورد.
 
        Public Function Farsi2Arabic(ByVal Farsi As String) As String
        Farsi2Arabic = Replace(Farsi, "ای", "ای")
        Farsi2Arabic = Replace(Farsi2Arabic, "ی", "ی")
        Farsi2Arabic = Replace(Farsi2Arabic, "ک", "ک")
        Farsi2Arabic = Replace(Farsi2Arabic, "۴", "٤")
        Farsi2Arabic = Replace(Farsi2Arabic, "۶", "٦")
    End Function
hariva
چهارشنبه 15 فروردین 1386, 18:37 عصر
نام کنشگر Replace2
نام ماجول  STRING
تابع Replace یک مشکل کوچک دارد و آن این است که اگرطول Replacement از Find بیشتر باشد درست عمل نمیکند و مقدار Replacement را فقط به اندازه طول  Find در متن قرار میدهد. Replace2 این مشکل را ندارد.
توسعه مورد نیاز:گزینه مربوط به حساسیت به حروف بزرگ و کوچک
 
Public Function Replace2(ByVal Expression As String, ByVal Find As String, ByVal Replacement As String) As String
        Dim FindPosition As Integer
        Do
            FindPosition = InStr(Expression, Find)
            If FindPosition = 0 Then
                Exit Do
            Else
                Expression = Mid(Expression, 1, FindPosition - 1) & Replacement & Mid(Expression, FindPosition + Len(Find))
            End If
        Loop
        Return Expression
    End Function
hariva
چهارشنبه 15 فروردین 1386, 18:40 عصر
نام کنشگر ArabicToFarsi
نام ماجول  FARSI
این کنشگر متن فارسی دارای کاراکتر های غیر مجاز عربی را اصلاح میکند.
 
    Public Function ArabicToFarsi(ByVal Arabic As String) As String
        ArabicToFarsi = Replace(Arabic, "ای", "ای")
        ArabicToFarsi = Replace(ArabicToFarsi, "ی", "ی")
        ArabicToFarsi = Replace(ArabicToFarsi, "ک", "ک")
        ArabicToFarsi = Replace(ArabicToFarsi, "٤", "۴")
        ArabicToFarsi = Replace(ArabicToFarsi, "٦", "۶")
    End Function
hariva
چهارشنبه 15 فروردین 1386, 18:44 عصر
گمان میرود کنشگر های زیر بسیار کاربردی باشد.
برای یافتن متن بوسیله Regular Expression
RegInstr(Start as integer, Str As String, Pattern As String) as integer
 
برای جایگزینی متن بوسیله ی Regular Expression
 RegReplace(ByVal Expression As String, ByVal Pattern As String, ByVal Replacement As String) As String
linux
چهارشنبه 15 فروردین 1386, 19:14 عصر
فکر کنم که خیلی از شما مثل من این را قبول داشته باشید که یکی از مهمترین بخشهای هر زبان برنامه نویسی کنشگر ها یا توابع آن است. مخصوصا کنشگرهایی که خود برنامه نویسان برای کارهای تکراری مینویسند .در اینجا من چند کنشگر که خودم ساخته ام را قرار میدهم .از اساتید ارجمند خواهش میشود با به اشتراک گذاشتن کد های بدر بخور خود به ادامه یافتن این تاپیک کمک کنند. هدف اصلی ساختن چند ماجول کاربردی خواهد بود. لطفا نام ماجول را هم بنویسید.فعلا ماجول های زیر برای این کار درنظر گرفته شده است.
 
1-STRING
برای کار روی رشته ها
2-IO
ورود و خروج فایل
3-DB
برای کار با دیتابیس
4-ARR
برای کار روی آرایه ها
5-FARSI
کنشگرهای مربوط به زبان فارسی
خوب عرض شود و vb.net دیگر چیزی به اسم توابع برنامه نداریم همه این توابع جزو کلاس های .net هستند.
بهتر هست دنبال ساختن کلاسها باشید
linux
چهارشنبه 15 فروردین 1386, 19:24 عصر
نام کنشگر CompleteTrim 
نام ماجول STRING
با این کنشگر میتوان تمام فاصله های اضافی یک متن را حذف کرد.
 
 
Public Function CompleteTrim(ByVal str As String) As String
 
        str = Trim(str)
 
        Do
            str = Replace(str, "  ", " ")
 
        Loop Until InStr(str, "  ") = 0
 
 
        Return str
 
    End Function
 
Dim myString As String = "as d asd asd asd a sd"
Dim myString2 As String
myString2 = myString.Replace(" ", "")
hariva
چهارشنبه 15 فروردین 1386, 21:47 عصر
Dim myString AsString = "as d asd asd asd a sd"
Dim myString2 AsString
myString2 = myString.Replace(" ", "")
منظور من فقط حذف فاصله های اضافه است. بین نوشته های متن یک فاصله را مجاز میداند.کد شما تمام فاصله های متن را حذف کرد البته این کار را فقط در مورد همان متن انجام میدهد و در قبال متن زیر کارامد نیست.
"as d     asd      asd     asd a"
Alireza_Salehi
چهارشنبه 15 فروردین 1386, 22:29 عصر
البته ممنون که زحمت می کشید ولی چیزی که با 2 خط کد حل میشه که تابع نوشتن نداره!
hariva
پنج شنبه 16 فروردین 1386, 03:18 صبح
البته ممنون که زحمت می کشید ولی چیزی که با 2 خط کد حل میشه که تابع نوشتن نداره!
من این کد ها را فقط برای شروع کار نوشتم.منظور اصلی جمع آوری توابع مفید  و پر مصرف و گرد آوری آنها بصورت چند کلاس مفید و کاربردی است که در آن صورت ارزش کار دارد.
VisualStudio
پنج شنبه 16 فروردین 1386, 16:17 عصر
خوبه ادامه بدید
Microsoft.net
شنبه 18 فروردین 1386, 03:49 صبح
تمام اینها تو دات نت با 1 خط کد میشه نوشت چون قبلا تحت کلاس های آماده پیاده سازی شده اند
__H2__
شنبه 18 فروردین 1386, 11:57 صبح
منظور من فقط حذف فاصله های اضافه است. بین نوشته های متن یک فاصله را مجاز میداند.کد شما تمام فاصله های متن را حذف کرد البته این کار را فقط در مورد همان متن انجام میدهد و در قبال متن زیر کارامد نیست.
"as d     asd      asd     asd a" 
 
سلام
با اجازه آقای لینوکس عزیز!
myString2 = myString.Trim.Replace("  ", " ")
 
و با نظر آقای Microsoft.net هم موافق هستم.
 
خوب عرض شود و vb.net دیگر چیزی به اسم توابع برنامه نداریم همه این توابع جزو کلاس های .net هستند.
دوست عزیز آقای linux ! جای دیگر هم گفتم باز هم تکرار میکنم! تابع تابع است و در net. وجود دارد و هیچ فرقی با VB6 نکرده و امری بدیهی است که توابع در VB6 و VB8 همیشه عضوی از یک ماژول یا کلاسس بوده اند و هیچ چیز فرقی نکرده! من نمیدانم برای چه نظر شما فرق کرده! هنوز هم بر سوال قبلی خودم که در تاپیکی دیگر پرسیده بودم استوار هستم! شما لطف کنید و یک تابع را در VB6 نام ببرید که عضو ماژول یا کلاسسی نبوده باشد؟؟؟؟
 
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.