سلام
اگر بخواهم فایلهای متنی رو خودم درست کنم وبعد ازشون بخونم، به نظر شما بهتریه از binary استفاده کنم؟ ممکنه مثالی برام بنویسید که چطور میشه با این روش نوشت و خوند به نحوی که اینقدر به مشکل نخورم و نیاز به توابع مربوط به استرینگ نداشته باشم؟ آیا فایلهای نوشته شده با binary توسط notepad قابل خواندن هستند ؟
همواره خواندن و نوشتن دیتا به صورت خام باینری برای برنامه ها ساده تر و راحت تر و با حجم کد کمر و فایل نهایی کمتر همراه بوده، چون به زبان صفر و یکی انها نزدیک تر است ولی خود فایل دیگر به صورت خام برای انسان قابل فهم نیست و مثلاً نمیتوان آن را در notepad تماشا کرد.
مثلاً با دستوری مثل زیر:
نوشتن ترتیبی-باینری در فایل
کد:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
به راحتی میشود این دستور را در یک حلقه for قرار داد تا تمام آیتم ها را استخراج کرد.
=====
واقعا خیلی عجیبه که vb.NET این امکان رو در تابع read قرار نداده ( اگه نداده باشه ) !!
واقعا به نظر شما این روش کارآمد و دقیق است که برنامه نویسان مایکروسافت عمرشان را بابش طلف کنند!
به جمله خودتان دقت کنید:
که تعریف شده که 27 تا کاراکتر اول جمله رو نخونه و بره جلو، بعد 10 تا عدد با فرمت f12.2 رو بخونه
این روشها شاید در dos خوب بوده ولی برای ویندوز (و با عرض پوزش) افتضاح است!
اگر فایل شما متنی است و توسط notepad قابل ویرایش است، پس هر کسی میتواند ویرایش را انجام دهد، آیا شما در تایپ متون در notepad دقت میکنید که حتماً 27 تا کاراکتر را جا انداخته و سپس شروع به تاپی کنید، آیا پارسر شما نباید بین 5 فاصله و شش تب با فقط یک فاصله هیچ تفاوتی قائل نشود! چون برای انسان و در notepad فواصل ارزشی ندارد.
وقتی ما فایلهای خوبی مثل mdb و xml را در وسندوز داریم چه اصراری به انجام دادن روشهای dos در ویندوز است؟
شما فرمت پایه تان xml قرار دهید در حداقل تعداد خطوط برنامه نویسی و با حداکثر دقت و انعطاف فایل را بخوانید و بنویسید، کاربران هم میتوانند از notepad هم استفاده کنند
ضمن اینکه با انواع نرم افزارهای در دسترس میتوان فایلهای xml را بسیار زیا دید و ویرایش کرد
(مثلاً یک فایل xml را بگیرید و روی مروزگر IE خود رها کنید و لذت ببرید!)
نوشتن ساده در فایل xml
کد:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
خواندن ساده از xml
کد:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
ضمن اینکه بسیار بسیار منعطف تر این آن است که فکرش را مکنید، میتوانید انواع داده هایی با ساختامان های پیچیده تو در تو را با گروه بندی ها و مقادیر مختلف عددی و متنی و... در کدی به همین سادگی نوشته و بخوانید.
شما چه انتظاری دارید که xml ان را برآورده نمیکند؟!
=====
واقعا خیلی عجیبه که vb.NET این امکان رو در تابع read قرار نداده ( اگه نداده باشه ) !!
شما خودتان به راحتی میتوانید تابعی جهت این کار بنویسید.
مثلاً
کد:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
این تابع یک stream با فرمت ascii میگیرد و از محل startposition شروع به خواندن count عدد با طول هر کدام digitcharlen کاراکتر و با فاصله یک کاراکتر دربینشان میکنید و حاصل را به صورت آرایه باز میگردادند.
باید شبیه همان باشد که خواسته اید، میبیند که نوشتن یک تابع خیلی ساده است ولی آنقدر ارزش ندارد که حتی کد فو.ق را تست هم نکردم!
خودتان میتوانید قابلیت های دیگر هم به کد فوق اضافه کنید و بارها از آن در پروژه های اینده تان استفاده کنید.
=====
فرترن شاید یک سری تابه آماده برای کار روی خواندن فایلهای متنی داشته ولی الآن فرمت استاندارد این کار xml است که دات نت هم مجهز به تمام امکانات کار با xml است.
مشکل اصلی آنجا است که شما میخواهید فرمت متنی مطلوب و دلخواه زبان فرترن را با زور در vb استفاده کنید.
حالا برعکسش را فرض کنید! من از فرمت xml خوشم می آید، این فرترن شما چه کمکی در خواندن و نوشتن ساختار های تو در تور و پیچیده و با خصوصیت و زیر مجموعه و المنت و xml میتواند به من کند؟
مثل این است که من بگویم وسیله ای به نام خودرو ساخته شده و خیلی ساده تر و سریعتر و بهتر از گاری با اسب عمل میکند!
بعد شما به من میگویید چرا نمیتوانم به خودروی خود به سادگی یک مشت علف بدهم و ان کار بیافتد!!!
خودرو میخواهید؟ سوخت مطلوب آن بنزین است نه علف! همانطور که به اسب نمیتوان بنزین داد!
موفق باشید.