PDA

View Full Version : خواندن اطلاعات از یک فایل غیر استاندارد



علی اکبر
چهارشنبه 14 شهریور 1386, 12:49 عصر
سلام
چند سال پیش این درخواست اینجا مطرح کردم اما دوستان این بخش جوابی به من ندادند
دوباره مطرح می کنم خدا رو چه دیدی
نرم افزار تحت داس به زبان سی داریم البته فکر می کنم اطلاعات در فایلهای غیر استاندارد
ذخیره شده نمونه فایل ضمیمه می باشد
البته بگم قصد دارم با زبان دیگه مثل بایسیک یا فاکس پرو بخونم
ممنون می شوم اگه کمک کنید

emad_67
چهارشنبه 14 شهریور 1386, 17:44 عصر
معمولا توی c (البته تا اونجا که من میدونم) برای خوندن اطلاعات دخیره شده توی فایل باید بدونی که اطلاعاتی که ذخیره شده از چه نوعی هستند مثلا از نوع int , class , struct و .... که طبق همون هم اطلاعات رو باید بخونی ولی در مورد basic یا foxpro من اطلاعی ندارم که طرز خوندن فایل در اون ها چه جوریه به هر حال بهتر نیست تو بخش مربوط به خودشون این سوال رو مطرح کنی. شاید جواب بهتر جواب بگیری

علی اکبر
شنبه 17 شهریور 1386, 09:04 صبح
هیچ راهکاری توی زبان برنامه نویسی شما نیست که بتونیم به فایل تکست تبدیل کرد ممنون

emad_67
شنبه 17 شهریور 1386, 09:12 صبح
اگه فایل فقط حاوی متن باشه میشه به راحتی تبدیل کرد ولی اگه مثلا یه شی ار کلاس باشه، نمیشه

علی اکبر
سه شنبه 03 مهر 1386, 10:56 صبح
مطمئنم حاوی متنه اگه امکان داره راهنمایی بفرمائید چگونه؟

emad_67
سه شنبه 03 مهر 1386, 11:41 صبح
اگه فایلت text باشه با این کد میتونی بخونیش


#include<iostream.h>
#include<fstream.h>
void main()
{
char s[200];
ifstream inout("MAST.dat",ios::in);
while(!inout.eof())
{
inout.getline(s,200);
cout<<s<<endl;
}
}

من فایل شما رو با همین کد خوندم ولی چیز هایی که چاپ میکنه به متن شباهتی نداره بیشتر مثل کاراکتر هایی که مربوط به کدهای اسکی میشه هست. ممکنه هم به خاطر zip شدن فایلی که اینجا گذاشتین باشه. به هر حال شما فایل اصلی (zip نشده) رو با این کد بخون ببین چی میشه

علی اکبر
سه شنبه 03 مهر 1386, 12:29 عصر
دوست عزیز ممنونم از کمک شما
می تونید به من بگید طریقه ذخیره شدن اطلاعات در اینگونه فایلها چگونه است من وقتی این فایلو به صورت تکست می خونم اطلاعات فارسی پشت سرهم(ضمنا برنامه تحت داس است) دیده می شود
فقط اطلاعات عددی با یک سری اشکال نشان داده میشود هیچ قاعده وقانون خاصی هم براش نیافتم
ممنون

emad_67
سه شنبه 03 مهر 1386, 13:18 عصر
خواهش میکنم
اگه فایل به صورت متنی باشه یعنی تمام محتوای داخل اون رو کاراکتر ها و رشته ها تشکیل داده باشن ، اطلاعات مثل یه رشته در اون ذخیره میشن. مثل وقتی که یه فایل متنی رو با nodepad باز میکنی البته کاری به این ندارم که کامپایلر به binary تبدیل میکنه یا نه. به هر حال منظورم اینه که در فایل های متنی نحوه ذخیره و بازیابی به صورت رشته است. اما در مورد فایل شما که میگید اطلاعات عددی به صورت اشکال دیده میشه، علتش اینه که در فایل عدد هم ذخیره شده و چون این اعداد در آرایه کاراکتری قرار میگیرن، معادل کد اسکی اونا چاپ میشه مثلا به این شکل:


char s=1;
cout<<s;

الان اگه این کد رو اجرا کنید یه کاراکتر شبیه smily چاپ میشه
به نحوه دیگه ای هم میشه در یه فایل اطلاعات رو ذخیره کرد که همون نوعی میشه که گفتم باید بدونی از چه نوع دادهای استفاده کردی. مثلا فرض کن در ابتدای فایل یه عدد و بعدش یه رشته ذخیره شده، برای خوندن همچین فایلی باید بدونی که اون عدد کجای فایل و رشته کجای فایل هست و گرنه مشکل پیش میاد.
به هر حال اگه این فایلی رو که گذاشتید خودتون ساختید، کدتون رو بزارید تا بیشتر بشه توضیح داد.

SMRAH1
پنج شنبه 05 مهر 1386, 00:51 صبح
سلام

این فایل را در داس به با نرم افزار edit (که از نرم افزار های داس است) البته به کمک فارسی ساز داس (هماهنگ با فارسی ساز ایران سیستم) دیدم.این فایل حاوی چند اسم و آدرس آنها است به علاوه مقدار زیادی اطلاعات که به صورت باینری ذخیره شده است (احتمالا مشخصات مثل تاریخ تولد یا محل تولد و ...) اما به راحتی نمی توان فرمت فایل رو شناسایی کرد.
البته در پست های بالا احساس کردم شما نرم افزاری دارید که این داده ها را (در داس) به صورت مناسب نمایش می دهد.در این صورت یافتن فرمت فایل کار سختی به نظر نمی رسد.
با این حال در پست زیر من یک مبدل فارسی داس هماهنگ با ایران سیستم به تحت ویندوز قرار دارم.البته همه نرم افزار بدردتان نمی خودذ فقط ار کد های آن (شاید بتوانید) برای ساخت نرم افزاری برای تبدیل فارسی داس فایل مورد نظز به فارسی ویندوز استفاده کنید.
البته همه این مفاهیم منوط به یافتن فرمت فایل است.البته چنانچه برایتان مقدور باشد و اصل نرم افزار رویت داده ها در اختیارم قرار دهید شاید (و نه حتما) بتوانم فرمت فایل را بشناسم.
اگر کمکی از دستم برآید،مطمئنا دریغ نخواهم کرد.

http://barnamenevis.org/forum/showthread.php?t=80175

موفق باشید.

aliarash
شنبه 26 آبان 1386, 11:23 صبح
برای دریافت پاسخ مناسب در ساعت اداری با گروه فناوری سازمان تماس بگیرید.