سلام
کاری که انجام داده ام به این صورته که در ویژال سی شارپ 32 باتون در یک ردیف قرار داده ام و هر کدام از این باتون ها که زده شده کد کاراکتر معادل اسکی آن در فایلی قرار بگیرد. یعنی تعداد دسته باتون سی و دو تایی در فرمم گذاشتم:
مثلا فقط 8 بیت دوم از سطر یک را یکیش را میزنید(ترجیحا کاراکتری که قابل نمایش باشد) و 8 بیت اول را چیزی نمی زنیم، ولی چیزی مشاهده نمی شود تا زمانی که 8 بیت اول از سطر یک یک کدامش را بزنید
یعنی با این اوصاف اگر کد باینری
می باشد هم نشان هم داده می شود.
یا مثلا
H1
ولی اگه به جای
01001000
صفر باشه
00000000
دیگه
1
هم نشون نمیده!
این بدین معناست که این برنامه قادر نیست مقدار تهی(0) را فایل تکس قرار دهد و بایتی را صفر باقی بگذارد
این باگ را چگونه می توان حل کرد !؟
برنامه قسمت اخر که هر 4 بایت را در تکس بایت قرار می دهد را قرار می دهم :
سپاس
کاری که انجام داده ام به این صورته که در ویژال سی شارپ 32 باتون در یک ردیف قرار داده ام و هر کدام از این باتون ها که زده شده کد کاراکتر معادل اسکی آن در فایلی قرار بگیرد. یعنی تعداد دسته باتون سی و دو تایی در فرمم گذاشتم:
کد:
[TABLE="class: cms_table, width: 500"]
[TR]
[TD][COLOR=#00ff00]1[/COLOR][/TD]
[TD][COLOR=#00ff00]0[/COLOR][/TD]
[TD][COLOR=#00ff00]1[/COLOR][/TD]
[TD][COLOR=#00ff00]1[/COLOR][/TD]
[TD][COLOR=#00ff00]1[/COLOR][/TD]
[TD][COLOR=#00ff00]1[/COLOR][/TD]
[TD][COLOR=#00ff00]1[/COLOR][/TD]
[TD][COLOR=#00ff00]1[/COLOR][/TD]
[TD][B][COLOR=#ff0000]1[/COLOR][/B][/TD]
[TD][B][COLOR=#ff0000]0[/COLOR][/B][/TD]
[TD][B][COLOR=#ff0000]1[/COLOR][/B][/TD]
[TD][B][COLOR=#ff0000]0[/COLOR][/B][/TD]
[TD][B][COLOR=#ff0000]1[/COLOR][/B][/TD]
[TD][B][COLOR=#ff0000]0[/COLOR][/B][/TD]
[TD][B][COLOR=#ff0000]1[/COLOR][/B][/TD]
[TD][B][COLOR=#ff0000]0[/COLOR][/B][/TD]
[TD][COLOR=#ff8c00]0[/COLOR][/TD]
[TD][COLOR=#ff8c00]1[/COLOR][/TD]
[TD][COLOR=#ff8c00]0[/COLOR][/TD]
[TD][COLOR=#ff8c00]1[/COLOR][/TD]
[TD][COLOR=#ff8c00]0[/COLOR][/TD]
[TD][COLOR=#ff8c00]1[/COLOR][/TD]
[TD][COLOR=#ff8c00]0[/COLOR][/TD]
[TD][COLOR=#ff8c00]1[/COLOR][/TD]
[TD][B][COLOR=#a52a2a]1[/COLOR][/B][/TD]
[TD][B][COLOR=#a52a2a]0[/COLOR][/B][/TD]
[TD][B][COLOR=#a52a2a]0[/COLOR][/B][/TD]
[TD][B][COLOR=#a52a2a]0[/COLOR][/B][/TD]
[TD][B][COLOR=#a52a2a]1[/COLOR][/B][/TD]
[TD][B][COLOR=#a52a2a]1[/COLOR][/B][/TD]
[TD][B][COLOR=#a52a2a]0[/COLOR][/B][/TD]
[TD][B][COLOR=#a52a2a]1[/COLOR][/B][/TD]
[/TR]
[TR]
[TD].[/TD]
[TD].[/TD]
[TD].[/TD]
[TD].[/TD]
[TD].[/TD]
[TD].[/TD]
[TD].[/TD]
[TD][/TD]
[TD].[/TD]
[TD].[/TD]
[TD].[/TD]
[TD].[/TD]
[TD].[/TD]
[TD].[/TD]
[TD].[/TD]
[TD].[/TD]
[TD].[/TD]
[TD].[/TD]
[TD].[/TD]
[TD].[/TD]
[TD].[/TD]
[TD].[/TD]
[TD].[/TD]
[TD].[/TD]
[TD].[/TD]
[TD].[/TD]
[TD].[/TD]
[TD].[/TD]
[TD].[/TD]
[TD].[/TD]
[TD].[/TD]
[TD].[/TD]
[/TR]
[TR]
[TD].[/TD]
[TD].[/TD]
[TD].[/TD]
[TD].[/TD]
[TD].[/TD]
[TD].[/TD]
[TD].[/TD]
[TD][/TD]
[TD][/TD]
[TD][/TD]
[TD][/TD]
[TD][/TD]
[TD][/TD]
[TD][/TD]
[TD][/TD]
[TD][/TD]
[TD][/TD]
[TD][/TD]
[TD][/TD]
[TD][/TD]
[TD][/TD]
[TD][/TD]
[TD][/TD]
[TD][/TD]
[TD][/TD]
[TD][/TD]
[TD][/TD]
[TD][/TD]
[TD].[/TD]
[/TR]
[/TABLE]
اینها را 8 تا 8 تا قرار دادم تا تفکیکش ساده تر باشه.
که مثلا معادل هگزش بشه : 0xBFAA558D
می خواهم هر کدام را که کلیک کردم(در یک سطر) عدد معادل باینریش را در یک تکس باکس قرار دهم و بتونم ذخیره کنم.
به طوری که وقتی این فایل تکس ذخیره شده را با نرم افزار winhex بازش کردم بتونم همین عدد هگزادسیمال را مشاهده کنم
برنامه را نوشتم و ذخیره کردن در تکس باکس هم انجام میشه و کار هم می کنه. ضمیمه هم کردم
ولی فقط یک باگ دارد!
و اون اینه که در هر بایت(8 بیت) باید یک باتون زده بشه وگرنه چیزی که در 8 بیت بعدی می زنیم هم نمایش داده نمی شود.که مثلا معادل هگزش بشه : 0xBFAA558D
می خواهم هر کدام را که کلیک کردم(در یک سطر) عدد معادل باینریش را در یک تکس باکس قرار دهم و بتونم ذخیره کنم.
به طوری که وقتی این فایل تکس ذخیره شده را با نرم افزار winhex بازش کردم بتونم همین عدد هگزادسیمال را مشاهده کنم
برنامه را نوشتم و ذخیره کردن در تکس باکس هم انجام میشه و کار هم می کنه. ضمیمه هم کردم
ولی فقط یک باگ دارد!
مثلا فقط 8 بیت دوم از سطر یک را یکیش را میزنید(ترجیحا کاراکتری که قابل نمایش باشد) و 8 بیت اول را چیزی نمی زنیم، ولی چیزی مشاهده نمی شود تا زمانی که 8 بیت اول از سطر یک یک کدامش را بزنید
یعنی با این اوصاف اگر کد باینری
00000000 00110001
را در باتون ها ایجاد کنیم هیچی نشون نمیده ولی اگه فقط یک باتون از 8 بایت اول بزنیم تازه مقدار کاراکتر 1 که معادل 00110001می باشد هم نشان هم داده می شود.
یا مثلا
00110001 01001000
که بزنیم این نشان میده
H1
ولی اگه به جای
01001000
صفر باشه
00000000
دیگه
1
هم نشون نمیده!
این بدین معناست که این برنامه قادر نیست مقدار تهی(0) را فایل تکس قرار دهد و بایتی را صفر باقی بگذارد
این باگ را چگونه می توان حل کرد !؟
برنامه قسمت اخر که هر 4 بایت را در تکس بایت قرار می دهد را قرار می دهم :
PHP:
textBox7.Text = string.Format("{0}", Convert.ToChar(tmp & 0x000000ff)) + string.Format("{0}", Convert.ToChar((tmp & 0x0000ff00) >> 8)) + string.Format("{0}", Convert.ToChar((tmp & 0x00ff0000) >> 16)) +
string.Format("{0}", Convert.ToChar((tmp & 0xff000000) >> 24));
پیوست ها
آخرین ویرایش: