PDA

View Full Version : بدست آوردن كد اسكي يك رشته



Restlesa
یک شنبه 24 مهر 1390, 21:40 عصر
سلام بر همگي دوستان عزيز برنامه نويس
چه طوري مي تونم كد اسكي رشته اي كه در TextBox ام نوشته شده است رو بدست بيارم ؟؟؟
با سپاس فراوان

returnx
یک شنبه 24 مهر 1390, 21:59 عصر
جواب کاملا مشخصه شما باید رشته رو پیمایش کنید و کارکتر ها رو دونه دونه جدا از این کد استفاده کنید:

Dim token As String * 1
Private Sub Command1_Click()
For i = 1 To Len(Text1.Text)
token = Mid(Text1.Text, i, 1)
Print Asc(token)
Next i
End Sub

mr-adler
یک شنبه 24 مهر 1390, 22:26 عصر
با سلام
اصلا کاربرد کد اسکی به غیر از اینکه باهاش رمز گزاری کنیم چیه؟
راستی چطور کد اسکی یک رشته رو به خود رشته تبدیل کنیم؟(معکوس عمل فوق)

Restlesa
یک شنبه 24 مهر 1390, 22:30 عصر
ممنونم دوست عزيز
حالا ميشه بگين كه چه طوري ميشه بفهميم كد اسكي يه عدد چه حرفيه ؟؟؟؟
مثلا چه طوري موقع كد نويسي بفهميم كد اسكي 82 ميشه R ؟؟؟

returnx
یک شنبه 24 مهر 1390, 22:34 عصر
مثلا چه طوري موقع كد نويسي بفهميم كد اسكي 82 ميشه R ؟؟؟
از تابع Chr استفاده کنید به این صورت:

Print Chr(82)

returnx
یک شنبه 24 مهر 1390, 22:36 عصر
اصلا کاربرد کد اسکی به غیر از اینکه باهاش رمز گزاری کنیم چیه؟کاربردش اینکه بدون کد های اسکی اصلا کاراکتر ها معنی پیدا نمی کردند !! این کد های اسکی هستند که کاراکتر ها رو مشخص می کنند...

راستی چطور کد اسکی یک رشته رو به خود رشته تبدیل کنیم؟(معکوس عمل فوق)
یعنی چی!؟ من اصلا منظورتون رو نفهمیدم ...

mr-adler
یک شنبه 24 مهر 1390, 22:43 عصر
ممنون
جوابمو دادید . با chr میشه کد اسکی رو به عدد یا حرف مربوطه تبدیل کرد.
اها ! پس کد های اسکی هستند که به اعداد و حروف ارزش مقدار میدن . مثلا حرف q صرفا یک اسم هست . چیزی که برای رایانه شناخته شده هستش کد اسکی اعداد و حروفه(یرای این حرف 113).درست فهمیدم؟
راستی برای اینکه کدهای اسکی متن نوشته شده توسط ما پشت سر هم در یک تکست باکس قرار بگیرند باید از چه کدی استفاده کنیم؟(به جای دستور print )

returnx
یک شنبه 24 مهر 1390, 22:58 عصر
اها ! پس کد های اسکی هستند که به اعداد و حروف ارزش مقدار میدن . مثلا حرف q صرفا یک اسم هست . چیزی که برای رایانه شناخته شده هستش کد اسکی اعداد و حروفه(یرای این حرف 113).درست فهمیدم؟
تقریبا آره ، زمانی که شما یک دکمه کیبرد رو فشار میدید ، کیبورد این کد اسکی رو به عدد Binary تبدیل کرده و ارسال میکنه بعد هم Cpu میفهمه باید چیکار کنه...

استی برای اینکه کدهای اسکی متن نوشته شده توسط ما پشت سر هم در یک تکست باکس قرار بگیرند باید از چه کدی استفاده کنیم؟(به جای دستور print )
دو تا textbox رو فرمتون بزارید و در رویداد keyDown ی textbox1 این کد رو کپی کنید:

Text2.Text = Text2.Text & KeyCode

mr-adler
یک شنبه 24 مهر 1390, 23:03 عصر
راستی برای اینکه کدهای اسکی متن نوشته شده توسط ما پشت سر هم در یک تکست باکس قرار بگیرند باید از چه کدی استفاده کنیم؟(به جای دستور print ) در واقع یکی از مشکلات دیگه من اینه که کد زیر کار نمیکنه:(خیلی وقته تقریبا شبیه این مشکل رو دارم:ناراحت:)

For i = 1 To Len(Text1.Text)
a = Mid(Text1.Text, i, 1)
Text2.Text = Asc(a(i))
Next i


دو تا textbox رو فرمتون بزارید و در رویداد keyDown ی textbox1 این کد رو کپی کنید:

Text2.Text = Text2.Text & KeyCode
عالی بود دقیقا همون چیزی بود که میخواستم.

returnx
یک شنبه 24 مهر 1390, 23:12 عصر
خوب شما text2 رو مساوی با کد اسکی بدست اومده میزارد ، کاملا مشخصه که کد های اسکی قبلی پاک میشن ، از این کد استفاده کنید:

text2.Text = Text2.Text & Asc(a(i))
اصلا چرا a(i) مگه a آرایه هست که شما داری اندیس بهش میدی!؟

mr-adler
یک شنبه 24 مهر 1390, 23:13 عصر
و این هم سوال اخر:
شما از کلمه keycode برای فهمیدن کد اسکی کاراکتر ها استفاده کردید.حالا زمانی که بخواهیم کد اسکی رو به کاراکتر مربوط تبدیل کنیم(به وسیله تابع chr ) معادل این کلمه چیه؟

منظورم معادل کلمه keycode هست. اصلا ایا وجود داره؟

mr-adler
یک شنبه 24 مهر 1390, 23:18 عصر
بله ارایه هست.از کدهای زیر استفاده کردم:

Dim a() As Variant
Private Sub Command1_Click()
For i = 1 To Len(Text1.Text)
a = Mid(Text1.Text, i, 1)
Text2.Text = Text2.Text & Asc(a(i))
Next i
End Sub
متاسفانه error میده:ناراحت:

returnx
یک شنبه 24 مهر 1390, 23:49 عصر
شما از کلمه keycode برای فهمیدن کد اسکی کاراکتر ها استفاده کردید.حالا زمانی که بخواهیم کد اسکی رو به کاراکتر مربوط تبدیل کنیم(به وسیله تابع chr ) معادل این کلمه چیه؟

KeyCode کلمه کلیدی نیست ، keycode پارامتری هست که رویداد keyDown به ما بر می گردونه دقت کنید به رویداد KeyDown :

Private Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer)


منظورم معادل کلمه keycode هست. اصلا ایا وجود داره؟
فکر کنم جواب سوالتون رو با توضیح بالا گرفتید...

متاسفانه error میده:ناراحت:
خوب چون شما اصلا آرایه رو نمیسازید فقط تعریف می کنید ، شما باید از redim استفاده کنید برای ساختن آریه در این شراط ، در کل اصلا نیازی به آرایه نبود دقت کنید:
کد درست با آرایه:

Dim a() As Variant

For i = 1 To Len(Text1.Text)
ReDim Preserve a(1 To i) As Variant
a(i) = Mid(Text1.Text, i, 1)

Text2.Text = Text2.Text & Asc(a(i)) & "-"

Next i
بدون آرایه:

Dim token As String * 1
For i = 1 To Len(Text1.Text)
' ReDim Preserve a(1 To i) As Variant
token = Mid(Text1.Text, i, 1)

Text2.Text = Text2.Text & Asc(token) & "-"

Next i

Veteran
دوشنبه 25 مهر 1390, 13:50 عصر
سلام بچه ها منم همین سوال رو داشتم

راستی چطور کد اسکی یک رشته رو به خود رشته تبدیل کنیم؟(معکوس عمل فوق)

من کد اسکی sobhan93 رو دراوردم میشه
11511198104971105751
خب این ماله sobhan93 هست
حالا مثلا میخوام این کد اسکی 11511198104971105751 که ماله sobhan93 هست رو به برنامه بدم بعد برنامه باید خروجی sobhan93 بده چون این 11511198104971105751 ماله sobhan93 هست ممنون میشم راهنمایی کنین

returnx
دوشنبه 25 مهر 1390, 14:17 عصر
خوب شما باید طوری کد اسکی ها رو بگیری که بتونیم جدا هم کنیم مثلا بین هر کد اسکی یک فضای خالی بزاریم ، من این کدی که شما می خواید رو نوشتم فقط دو دکمه و سه تا textbox رو فرمتون بزارید و کد زیر رو توش کپی کنید:

Dim str_asc As String
Dim token As String * 1
Dim i_asc() As String
Private Sub Command1_Click()
Text2.Text = Empty
For i = 1 To Len(Text1.Text)
token = Mid(Text1.Text, i, 1)
Text2.Text = Text2.Text & Asc(token) & Space(1)
Next i

End Sub

Private Sub Command2_Click()
Text3.Text = Empty
i_asc = Split(Text2.Text, " ")
For i = LBound(i_asc) To UBound(i_asc) - 1
Text3.Text = Text3.Text & Chr(i_asc(i))
Next i
End Sub
روش کار به اینصورت که در textbox اولی یک رشته مینویسید بعد دکمه اول رو میزنید کد اسکی ها رو به شما میده بعد دکمه دوم رو میزنید رشته رو دوباره میده در Text3...

arenaw
سه شنبه 26 مهر 1390, 10:32 صبح
سلام بچه ها منم همین سوال رو داشتم


من کد اسکی sobhan93 رو دراوردم میشه
11511198104971105751
خب این ماله sobhan93 هست
حالا مثلا میخوام این کد اسکی 11511198104971105751 که ماله sobhan93 هست رو به برنامه بدم بعد برنامه باید خروجی sobhan93 بده چون این 11511198104971105751 ماله sobhan93 هست ممنون میشم راهنمایی کنین
البته یه روش ابتکاری دیگه هم داره، اگه متن شما فقط حروف و اعداد کیبرد باشه ، موقع دخیره کد اسکی , وقتی 23 تا ازش کم کنید همه حرف 2 کاراکتری میشن و دیگه نمیخواد فاصله بینشون بزاری
اینم بگم که این یه روش خییییلی ساده فشرده سازی و رمز نگاری هم هست

mr-adler
سه شنبه 26 مهر 1390, 21:06 عصر
سلام
شب همگی بخیر

وقتی 35 تا ازش کم کنید همه حرف 2 کاراکتری میشن
منظورتونو متوجه نشدم.:متفکر:
کاراکتر ها از جنس عدد و حروف کد اسکی دو حرفی دارند.اما اگه علامت ها و ... بودن چی؟

arenaw
چهارشنبه 27 مهر 1390, 19:55 عصر
سلام
شب همگی بخیر

منظورتونو متوجه نشدم.:متفکر:
کاراکتر ها از جنس عدد و حروف کد اسکی دو حرفی دارند.اما اگه علامت ها و ... بودن چی؟
حرفم رو تصحییح میکنم، منهای 23 !
مثلا کد اسکی z میشه 122 . (3 کاراکتر)
کد اسکی عدد 0 هم میشه 48 (2 کاراکتر)
کد اسکی ! هم میشه 33 (2 کاراکتر)
همه حرفهای کیبرد بین 33 تا 122 هستن. (تا اونجا که من امتحان کردم) پس ما وقتتی از هرکدوم 23 تا کم کنیم همشون 2 حرفی میشن
پس زمانی که با این روش یه رشته رو به کد اسکی تبدیل میکنیم میدونیم که هر 2 تا رقم واسه یه حرف هست. پس نیازی به جدا کردنشون نیست، کافیه 2 تا 2 تا جدا کنیم، به اضافه 23 کنیم و با chr اونا رو به حرف اصلیشون
تبدیل کنیم

mr-adler
چهارشنبه 27 مهر 1390, 20:07 عصر
سلام
کد اسکی حرف z میشه 90
و عدد صفر هم میشه 96
تو رویداد کی اپ از پارامتر keycode استفاده کردم و کد اسکی دو مورد بالا را 90 و 96 نشون داد

MMR_1344
چهارشنبه 27 مهر 1390, 20:12 عصر
حروف بزرگ و کوچک دارای کد اسکی مختلفی هستند ولی کد اسکی عدد صفر در همه حالت برابر 48 میشود

mr-adler
چهارشنبه 27 مهر 1390, 20:24 عصر
اگه دوستان فایل زیر رو چک کنن ممنون میشم.تکست پایین کاراکتر میگیره و تکست بالایی کد اسکی تحویل میده:
76775
من تو این برنامه از پارامتر keycode رویداد (کی پرس) استفاده کردم.مگه keycode با KeyAscii تفاوتی داره؟

mr-adler
چهارشنبه 27 مهر 1390, 22:56 عصر
با سلام
یکی از دوستانم مشکلم رو برطرف کرد. اینو میگم واسه اونایی که مثل من تازه کارند:
اولین چیزی که باید بدونید اینه که کد اسکی حروف کوچک و بزرگ به اندازه 32 واحد اختلاف دارند یعنی کد اسکی حروف کوچک از کد اسکی حروف بزرگ 32 واحد بزرگتره.
حالا 2 تا پارامتر داریم keycode & KeyAscii :
keycode فقط کد اسکی حروف بزرگ رو برمیگردونه که مثلا برای حرف Z عدد 90 هست.
KeyAscii کد اسکی حروف کوچک رو برمیگردونه که مثلا برای حرف Z عدد 120 هست.(البته در حالت عادی.با این مورد هم میشه به کد اسکی حروف بزرگ پی برد)

مشکل بنده هم اشتباه گرفتن دو مورد مذکور بود....:لبخند:

arenaw
پنج شنبه 28 مهر 1390, 13:49 عصر
ولی فک کنم اشتباه میکنی شما، چون keyascii حروف بزرگ و کوچیک فرق داره ولی KEYCODE حرف A و a جفتش یکیه (کد اسکی حرف بزرگ):

keycode A = 65
keycode a = 65

keyascii A = 65
keyascii a = 97

mr-adler
یک شنبه 01 آبان 1390, 18:20 عصر
با سلام
پوزش منو بپذیرید که یه مدت نبودیم.:لبخند:
جاتون خالی اینجایی که ما هستیم الان به شدت هوا سرده... (جهت اطلاع عرض شد.):لبخند:
بریم سراغ بحث خودمون:

ولی فک کنم اشتباه میکنی شما، چون keyascii حروف بزرگ و کوچیک فرق داره ولی KEYCODE حرف A و a جفتش یکیه (کد اسکی حرف بزرگ):

دقیقا !
با کجای مواردی که عرض شد تناقض داره؟:متفکر: