PDA

View Full Version : بهترین کنشگرهای دنیا !!



hariva
چهارشنبه 15 فروردین 1386, 17:31 عصر
فکر کنم که خیلی از شما مثل من این را قبول داشته باشید که یکی از مهمترین بخشهای هر زبان برنامه نویسی کنشگر ها یا توابع آن است. مخصوصا کنشگرهایی که خود برنامه نویسان برای کارهای تکراری مینویسند .در اینجا من چند کنشگر که خودم ساخته ام را قرار میدهم .از اساتید ارجمند خواهش میشود با به اشتراک گذاشتن کد های بدر بخور خود به ادامه یافتن این تاپیک کمک کنند. هدف اصلی ساختن چند ماجول کاربردی خواهد بود. لطفا نام ماجول را هم بنویسید.فعلا ماجول های زیر برای این کار درنظر گرفته شده است.

1-STRING
برای کار روی رشته ها
2-IO
ورود و خروج فایل
3-DB
برای کار با دیتابیس
4-ARR
برای کار روی آرایه ها
5-FARSI
کنشگرهای مربوط به زبان فارسی

hariva
چهارشنبه 15 فروردین 1386, 17: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, 17: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, 17: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, 17: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, 17: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, 17: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, 18:14 عصر
فکر کنم که خیلی از شما مثل من این را قبول داشته باشید که یکی از مهمترین بخشهای هر زبان برنامه نویسی کنشگر ها یا توابع آن است. مخصوصا کنشگرهایی که خود برنامه نویسان برای کارهای تکراری مینویسند .در اینجا من چند کنشگر که خودم ساخته ام را قرار میدهم .از اساتید ارجمند خواهش میشود با به اشتراک گذاشتن کد های بدر بخور خود به ادامه یافتن این تاپیک کمک کنند. هدف اصلی ساختن چند ماجول کاربردی خواهد بود. لطفا نام ماجول را هم بنویسید.فعلا ماجول های زیر برای این کار درنظر گرفته شده است.

1-STRING
برای کار روی رشته ها
2-IO
ورود و خروج فایل
3-DB
برای کار با دیتابیس
4-ARR
برای کار روی آرایه ها
5-FARSI
کنشگرهای مربوط به زبان فارسی
خوب عرض شود و vb.net دیگر چیزی به اسم توابع برنامه نداریم همه این توابع جزو کلاس های .net هستند.
بهتر هست دنبال ساختن کلاسها باشید

linux
چهارشنبه 15 فروردین 1386, 18: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, 20: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, 21:29 عصر
البته ممنون که زحمت می کشید ولی چیزی که با 2 خط کد حل میشه که تابع نوشتن نداره!

hariva
پنج شنبه 16 فروردین 1386, 02:18 صبح
البته ممنون که زحمت می کشید ولی چیزی که با 2 خط کد حل میشه که تابع نوشتن نداره!

من این کد ها را فقط برای شروع کار نوشتم.منظور اصلی جمع آوری توابع مفید و پر مصرف و گرد آوری آنها بصورت چند کلاس مفید و کاربردی است که در آن صورت ارزش کار دارد.

VisualStudio
پنج شنبه 16 فروردین 1386, 15:17 عصر
خوبه ادامه بدید

Microsoft.net
شنبه 18 فروردین 1386, 02:49 صبح
تمام اینها تو دات نت با 1 خط کد میشه نوشت چون قبلا تحت کلاس های آماده پیاده سازی شده اند

__H2__
شنبه 18 فروردین 1386, 10:57 صبح
منظور من فقط حذف فاصله های اضافه است. بین نوشته های متن یک فاصله را مجاز میداند.کد شما تمام فاصله های متن را حذف کرد البته این کار را فقط در مورد همان متن انجام میدهد و در قبال متن زیر کارامد نیست.


"as d asd asd asd a"


سلام
با اجازه آقای لینوکس عزیز!


myString2 = myString.Trim.Replace(" ", " ")


و با نظر آقای Microsoft.net هم موافق هستم.



خوب عرض شود و vb.net دیگر چیزی به اسم توابع برنامه نداریم همه این توابع جزو کلاس های .net هستند.

دوست عزیز آقای linux ! جای دیگر هم گفتم باز هم تکرار میکنم! تابع تابع است و در net. وجود دارد و هیچ فرقی با VB6 نکرده و امری بدیهی است که توابع در VB6 و VB8 همیشه عضوی از یک ماژول یا کلاسس بوده اند و هیچ چیز فرقی نکرده! من نمیدانم برای چه نظر شما فرق کرده! هنوز هم بر سوال قبلی خودم که در تاپیکی دیگر پرسیده بودم استوار هستم! شما لطف کنید و یک تابع را در VB6 نام ببرید که عضو ماژول یا کلاسسی نبوده باشد؟؟؟؟