PDA

View Full Version : صدور و ورود بصورت باینری



seeker
سه شنبه 14 فروردین 1386, 14:54 عصر
باسلام تبریک سال نو
به نظر شما ایراد این کد چیه که در بعضی مواقع درست کار میکنه ولی در برخی مواقع فایل خروجی به صورت باینری نیست و کاملا قابل خوندنه؟


Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim ali As String
ali = TextBox1.Text
FileOpen(1, "D:\ali.txt", OpenMode.Binary)
FilePutObject(1, ali)
FileClose(1)
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Dim ali As String
FileOpen(1, "D:\ali.txt", OpenMode.Binary)
FileGetObject(1, ali)
TextBox2.Text = ali
FileClose(1)
End Sub

Alireza_Salehi
سه شنبه 14 فروردین 1386, 19:31 عصر
نحوه نوشته شدن کاراکتر در فایل متنی یا باینری هیچ تفاوتی نمیکند ، بنابراین در صورتی که رشته شما به صورتی باشد که ویژوال بیسیک مقادیر داخل آن را کاراکتری تشخیص دهد دقیقا همان طور که دیده میشود در فایل ذخیره میشود.

مثلا :
ali 123 تغییری نمی کند.
ali تغییری نمیکند.
1234 تغییری نمی کند.در این حالت اگر صراحتا رشته را به عدد تبدیل کنید مقدار ذخیره شده تنها 2 بایت است (یعنی یک عدد صحیح) ولی اگر تبدیل نکنید یک رشته یونیکد 8 بایتی می شود.

در یک حالت دیگر هم مقایر قابل مشاهده نیستند: اگر طول مقدار جدیدی که در همان رکورد قبلی مینویسیداز مقدار موجود کوتاه تر باشد.


کاربرد این فایل شما را نمی دانم ولی اگر نوع داده هایی که در فایل مینویسید مشخص باشد (البته به غیر از رشته ها) قابل خواندن نخواهند بود.

نگاهی به کلاس BinaryWriter بندازید.

seeker
چهارشنبه 15 فروردین 1386, 08:56 صبح
با تشکر از شما

مثلا :
ali 123 تغییری نمی کند.
ali تغییری نمیکند.

ولی بعضی مواقع ali را هم به صورت کارکتر های ناخوانا ذخیره میکند

کاربرد این فایل شما را نمی دانم
میخواهم یکسری تغیراتی که کاربر در برنامه میدهد را در آن ذخیره کنم مثل کانکشن استرینگ ها یا یوزر نیم و پسورد های خود اپلیکیشن و ...

ولی اگر نوع داده هایی که در فایل مینویسید مشخص باشد (البته به غیر از رشته ها) قابل خواندن نخواهند بود.

چگونه؟

نگاهی به کلاس BinaryWriter بندازید.
کجا؟

نحوه نوشته شدن کاراکتر در فایل متنی یا باینری هیچ تفاوتی نمیکند
پس برای ذخیره اطلاعات به صورتی که غیر قابل خواندن باشد از چه روشی استفاده کنم؟
یا شاید متغیری وجود داشته باشد که تغیر مقدار آن ذخیره شود (در vb6 وجود نداشت)

Alireza_Salehi
چهارشنبه 15 فروردین 1386, 09:24 صبح
ولی بعضی مواقع ali را هم به صورت کارکتر های ناخوانا ذخیره میکند
این قسمت پست قبلی رو ببینید: در یک حالت دیگر هم مقادیر قابل مشاهده .....



میخواهم یکسری تغیراتی که کاربر در برنامه میدهد را در آن ذخیره کنم مثل کانکشن استرینگ ها یا یوزر نیم و پسورد های خود اپلیکیشن و ...چرا از Settings خود دات نت استفاده نمی کنید؟ برای اطلاعات بیشتر MSDN یا این http://www.barnamenevis.org/forum/showthread.php?p=322956#post322956 پست رو ببینید.


چگونه؟

کجا؟

MSDN را ببینید مثال هم داره.


پس برای ذخیره اطلاعات به صورتی که غیر قابل خواندن باشد از چه روشی استفاده کنم؟ اگر اطلاعاتی مثل کلمه عبور یا امثال آن دارید اول داده ها رو رمز کنید بعد در فایل ذخیره کنید، این طوری اگر دیده هم بشه مهم نیست!
برای رمزنگاری در MSDN قسمت System.Security.Cryptography رو ببینید یا در سایت جستجو کنید قبلا گفته شده.