تور لحظه آخری
امروز : پنجشنبه ، 8 آذر 1403    احادیث و روایات:  امام صادق (ع):هر كس از خدا خير بخواهد و به آنچه خدا خواسته راضى باشد، خداوند حتما براى او خير خواه...
سرگرمی سبک زندگی سینما و تلویزیون فرهنگ و هنر پزشکی و سلامت اجتماع و خانواده تصویری دین و اندیشه ورزش اقتصادی سیاسی حوادث علم و فناوری سایتهای دانلود گوناگون شرکت ها

تبلیغات

تبلیغات متنی

صرافی ارکی چنج

صرافی rkchange

سایبان ماشین

دزدگیر منزل

تشریفات روناک

اجاره سند در شیراز

قیمت فنس

armanekasbokar

armanetejarat

صندوق تضمین

Future Innovate Tech

پی جو مشاغل برتر شیراز

لوله بازکنی تهران

آراد برندینگ

خرید یخچال خارجی

موسسه خیریه

واردات از چین

حمية السكري النوع الثاني

ناب مووی

دانلود فیلم

بانک کتاب

دریافت دیه موتورسیکلت از بیمه

طراحی سایت تهران سایت

irspeedy

درج اگهی ویژه

تعمیرات مک بوک

دانلود فیلم هندی

قیمت فرش

درب فریم لس

زانوبند زاپیامکس

روغن بهران بردبار ۳۲۰

قیمت سرور اچ پی

خرید بلیط هواپیما

بلیط اتوبوس پایانه

قیمت سرور dl380 g10

تعمیرات پکیج کرج

لیست قیمت گوشی شیائومی

خرید فالوور

بهترین وکیل کرج

بهترین وکیل تهران

خرید اکانت تریدینگ ویو

خرید از چین

خرید از چین

تجهیزات کافی شاپ

محصولات فوراور

خرید سرور اچ پی ماهان شبکه

دوربین سیمکارتی چرخشی

همکاری آی نو و گزینه دو

کاشت ابرو طبیعی و‌ سریع

الک آزمایشگاهی

الک آزمایشگاهی

خرید سرور مجازی

قیمت بالابر هیدرولیکی

قیمت بالابر هیدرولیکی

قیمت بالابر هیدرولیکی

لوله و اتصالات آذین

قرص گلوریا

نمایندگی دوو در کرج

خرید نهال سیب

وکیل ایرانی در استانبول

وکیل ایرانی در استانبول

وکیل ایرانی در استانبول

رفع تاری و تشخیص پلاک

پرگابالین

 






آمار وبسایت

 تعداد کل بازدیدها : 1835181509




هواشناسی

نرخ طلا سکه و  ارز

قیمت خودرو

فال حافظ

تعبیر خواب

فال انبیاء

متن قرآن



اضافه به علاقمنديها ارسال اين مطلب به دوستان آرشيو تمام مطالب
archive  refresh

تبدیل رشته به باینری (برنامه) -


واضح آرشیو وب فارسی:سایت ریسک: تبدیل رشته به باینری (برنامه) i_lover3000 26 فروردين 1387, 02:14سلام :) من امروز یه برنامه کوچیک پیدا کردم که رشته رو به باینری تبدیل میکنه :wink: می خواستم ببینم کسی می تونه یکم توضیح در موردش کدش بهم بگه :neutral: خیلی ممنون :sad: موفق باشید. the_king 26 فروردين 1387, 18:57نویسنده این برنامه یا کدش رو واسه ویژوال بیسیک 5 نوشته بوده که تابع StrReverse رو نمی شناسه و یا یادش رفته بوده که چنین تابعی هم هست. این تابع همون کاری رو انجام میده که StrRev انجام میده، یعنی رشته شما رو برعکس می کنه، مثلا "ABC" رو به "CBA" تبدیل می کنه : Public Function StrRev(ByVal Source As String) As String Dim Buffer As String While Source <> "" Buffer = Buffer & Right$(Source, 1) Source = Left$(Source, Len(Source) - 1) Wend StrRev = Buffer End Function اگه من این تابع رو می نوشتم : Public Function StrRev(ByVal Source As String) As String Dim Index As Long For Index = Len(Source) To 1 Step -1 StrRev = StrRev & Mid(Source, Index, 1) Next End Function تابع Str2Bin کاراکتر به کاراکتر یک رشته را به معادل Binary هشت بیتی (یک بایت) تبدیل می کند و به هم می چسباند. در واقع این تابع اصلی برنامه است : Public Function Str2Bin(ByVal Source As String) As String Dim Buffer As String, TempBuffer As String, CheckValue As String For i = 1 To Len(Source) CheckValue = Asc(Mid(Source, i, 1)) While CheckValue <> 0 TempBuffer = TempBuffer & (CheckValue Mod 2) CheckValue = CheckValue 2 Wend While Len(TempBuffer) < 8 TempBuffer = TempBuffer & "0" Wend Buffer = Buffer & StrRev(TempBuffer) TempBuffer = "" Next i Str2Bin = Buffer End Function اگه من این تابع را می نوشتم : Public Function Str2Bin(ByVal Source As String) As String Dim Index As Long, Code As Long, Bit As Long For Index = 1 To Len(Source) Code = Asc(Mid(Source, Index, 1)) For Bit = 7 To 0 Step -1 Str2Bin = Str2Bin & IIf((Code And (2 ^ Bit)) = 0, "0", "1") Next Next End Function دو مورد در کد فرم اصلی وجود دارد : If Text1.Text = "" Then Exit Sub Text1.Text = Replace(Text1.Text, vbCrLf, " ") Text2.Text = Str2Bin(Text1.Text) ابتدا چک می کنه که اگه متنی در Text1 نوشته نشده از روتین خارج بشه و سراغ عملیات تبدیل نره. در سطر دوم دو کاراکتر vbCrLf که در انتهای سطر ها به عنوان نماد Enter وجود دارند را به یک کاراکتر فاصله تبدیل می کنه. در سطر سوم هم معدل باینری رشته را در Text2 می نویسه. مورد دوم در کد فراخوانی اولیه فرم است : Private Sub Form_Load() For Each Ctrl In Me Ctrl.Font = "Tahoma" Next End Sub این کد هر کنترلی که در داخل مجموعه Me (فرم اصلی برنامه) وجود داره رو در یک حلقه به عنوان متغیر Ctrl فرض می کنه. بعد در داخل حلقه فونت آنها را به "Tahoma" تغییر می دهد. با اجرا شدن این کد تمامی کنترلهای داخل فرم از فونت Tahoma استفاده می کنند. تصور می کنم که تشریح کد کوتاه تر و ساده تری که خودم نوشته ام (نیازی به تابع StrRev یا StrReverse نداره) بهتر باشه : پس دوباره اونرو اینجا سطر به سطر می نویسم : Public Function Str2Bin(ByVal Source As String) As String یک تابع که ورودی اش یک رشته با عنوان Source است و خروجی اش هم یک رشته String است. Dim Index As Long, Code As Long, Bit As Long سه متغیر محلی در این تابع وجود دارند که Index شماره کاراکتری است که قرار است تبدیل شود. Code کد عددی آن کاراکتر در جدول ASCII است. Bit اندیس ای است که معدل بیتی اش استخراج می شود، بین 0 الی 7. For Index = 1 To Len(Source) ابتدا در یک حلقه کلیه کاراکتر ها را با Index از شماره 1 الی طول رشته Source پیمایش می کنیم. Code = Asc(Mid(Source, Index, 1)) Code کد عددی کاراکتری را در بر می گیرد که Index شماره آنرا نشان می دهد. For Bit = 7 To 0 Step -1 حالا باید از بیت اندیس 7 الی اندیس 0 را در کد کاراکتر پیمایش کنیم (از ارزش بالاتر به سمت ارزش پایین تر). این پیمایش برعکس ما را از بکارگیری تابع StrRev و StrReverse بی نیاز می کند. Str2Bin = Str2Bin & IIf((Code And (2 ^ Bit)) = 0, "0", "1") و در انتها 2 را به توان شماره اندیس (Bit) می رسانیم و در کد کاراکتر (Code) با عملگر AND چک می کنیم. اگر حاصل صفر باشد یعنی آن بیت صفر است وگرنه یک است. در هر صورت آنرا به مقادیر قبلی داخل رشته Str2Bin اضافه می کنیم. Next Next End Function در انتها دو حلقه For بسته می شوند و تابع با مقدار خروجی Str2Bin خاتمه می یابد. i_lover3000 27 فروردين 1387, 02:00خیلی ممنون ، خیلی لطف کردین توضیحات خیلی خیلی کاملی بود !!!!




این صفحه را در گوگل محبوب کنید

[ارسال شده از: سایت ریسک]
[مشاهده در: www.ri3k.eu]
[تعداد بازديد از اين مطلب: 3438]

bt

اضافه شدن مطلب/حذف مطلب







-


گوناگون

پربازدیدترینها
طراحی وب>


صفحه اول | تمام مطالب | RSS | ارتباط با ما
1390© تمامی حقوق این سایت متعلق به سایت واضح می باشد.
این سایت در ستاد ساماندهی وزارت فرهنگ و ارشاد اسلامی ثبت شده است و پیرو قوانین جمهوری اسلامی ایران می باشد. لطفا در صورت برخورد با مطالب و صفحات خلاف قوانین در سایت آن را به ما اطلاع دهید
پایگاه خبری واضح کاری از شرکت طراحی سایت اینتن