امتیاز موضوع:
  • 1 رأی - میانگین امتیازات: 5
  • 1
  • 2
  • 3
  • 4
  • 5
خواندن فایل باینری
نویسنده پیام
dreamvbfox آفلاین
در حال پیشرفت
***

ارسال‌ها: 426
موضوع‌ها: 44
تاریخ عضویت: مرداد ۱۳۸۷

تشکرها : 236
( 1251 تشکر در 361 ارسال )
ارسال: #1
خواندن فایل باینری
سلام

یه فایلی هست که باید اونو بخونم. رفتم مشخصات فایل رو در اوردم . نوشته بود ۱۰۰ بایت اولش مربوط به Header فایل هست که شامل ورژن وطول رکورد و ... هست .
مشکلی که دارم اینه که نمیشه درست و حسابی خوندش.
مثلا ورژن از بایت ۲۸ شروع میشه و ۴ بایت طولشه !!!‌
حالا یه نگاه به کد من بندازید لطفا ببنید کجاشو اشتباه نوشتم
کد:
int main(){
    long ver;
    ifstream fin;
    fin.open("water.shp", ios::in | ios:: binary);
    if(fin.fail() == 1) { cout << "Can't Open the File!" << endl; return(0); } // Check File
    //Get Header Data
    fin.seekg(28,ios::beg);
    fin.read((char*)&ver,sizeof(long));
    cout<<ver<<endl;
    return 0;
}
خروجی این کد با فایلی که دادم بهش : ۱۰۰۰
فقط ورژن اینجوری نیست . مثلا ماکسیمم X رو بدست میارم -۱۹۲۰۷۸۶
ممنون !
مشخصات فایل :‌Laugh
en.wikipedia.org/wiki/Shapefile

Biggrin Use Google instead of asking stupid questions Biggrin

[/url]
CMC Automation System


آموزش زبان c++
[url=http://www.iranled.com/forum/thread-13923.html]

(آخرین ویرایش در این ارسال: ۲۵-فروردین-۱۳۸۹, ۱۱:۳۱:۴۶، توسط dreamvbfox.)
۲۵-فروردین-۱۳۸۹, ۱۰:۳۸:۰۱
وب سایت ارسال‌ها
پاسخ
dreamvbfox آفلاین
در حال پیشرفت
***

ارسال‌ها: 426
موضوع‌ها: 44
تاریخ عضویت: مرداد ۱۳۸۷

تشکرها : 236
( 1251 تشکر در 361 ارسال )
ارسال: #2
RE: خواندن فایل باینری
توضیحات کامل فایل مربوطه ضمیمه شد !‌


فایل‌(های) پیوست شده
.pdf   shapefile.pdf (اندازه: 123.66 KB / تعداد دفعات دریافت: 132)

Biggrin Use Google instead of asking stupid questions Biggrin

[/url]
CMC Automation System


آموزش زبان c++
[url=http://www.iranled.com/forum/thread-13923.html]

۲۵-فروردین-۱۳۸۹, ۲۱:۵۸:۲۶
وب سایت ارسال‌ها
پاسخ
lord_viper غایب
مدیر کل انجمن
*****

ارسال‌ها: 3,949
موضوع‌ها: 352
تاریخ عضویت: بهمن ۱۳۸۴

تشکرها : 5193
( 9875 تشکر در 2650 ارسال )
ارسال: #3
RE: خواندن فایل باینری
مهندس کدی که نوشتی file length از افست 24 تا 28 هست 28 تا 32 که شما داری میگیری ورژن فایل هست که برابر 1000 هست
به صفحه 4 از pdf ت دقت کن

[تصویر:  xshon.png]
از آن نماز که خود هیچ از آن نمی فهمی خدا چه فایده و بهره اکتساب کند
تفاخری نبود مر خدای عالم را که چون تو ابلهی او را خدا حساب کند
۲۵-فروردین-۱۳۸۹, ۲۲:۱۳:۵۲
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : اشک
dreamvbfox آفلاین
در حال پیشرفت
***

ارسال‌ها: 426
موضوع‌ها: 44
تاریخ عضویت: مرداد ۱۳۸۷

تشکرها : 236
( 1251 تشکر در 361 ارسال )
ارسال: #4
RE: خواندن فایل باینری
(۲۵-فروردین-۱۳۸۹, ۲۲:۱۳:۵۲)lord_viper نوشته است: مهندس کدی که نوشتی file length از افست 24 تا 28 هست 28 تا 32 که شما داری میگیری ورژن فایل هست که برابر 1000 هست
به صفحه 4 از pdf ت دقت کن
سلام مهندس

من تو کد بالا جابه جا نوشتم !!
من ۲۸ تا ۳۲ رو که می خونم ۱۰۰۰ رو می گیرم و مشکلی نیست !!!‌
اما از ۲۴ که می خونم (۴ بایت) 1227292160- چاپ میشه !!! سایز که منفی نمیشه ؟
تو PDF نوشته از بایت ۰ تا ۳ مقدارش ۹۹۹۴ هست اما وقتی من می خونم این هست : 170328064

فقط ورژن رو خوب میگیرم !!!!

ممنون

Biggrin Use Google instead of asking stupid questions Biggrin

[/url]
CMC Automation System


آموزش زبان c++
[url=http://www.iranled.com/forum/thread-13923.html]

۲۵-فروردین-۱۳۸۹, ۲۳:۰۵:۰۷
وب سایت ارسال‌ها
پاسخ
dreamvbfox آفلاین
در حال پیشرفت
***

ارسال‌ها: 426
موضوع‌ها: 44
تاریخ عضویت: مرداد ۱۳۸۷

تشکرها : 236
( 1251 تشکر در 361 ارسال )
ارسال: #5
RE: خواندن فایل باینری
کیست مرا یاری کند ؟Amaze

Biggrin Use Google instead of asking stupid questions Biggrin

[/url]
CMC Automation System


آموزش زبان c++
[url=http://www.iranled.com/forum/thread-13923.html]

۲۶-فروردین-۱۳۸۹, ۲۳:۲۰:۲۷
وب سایت ارسال‌ها
پاسخ
lord_viper غایب
مدیر کل انجمن
*****

ارسال‌ها: 3,949
موضوع‌ها: 352
تاریخ عضویت: بهمن ۱۳۸۴

تشکرها : 5193
( 9875 تشکر در 2650 ارسال )
ارسال: #6
RE: خواندن فایل باینری
تو فایل pdf شما انتهای صفحه 2 نوشته
integer signed 32 bit integer 4 byte
duble signed 64 bit IEEEE 8 byte

به انتخابمتغییر و اشاره گر و ادرس دقت کنین

کد:
fin.read((char*)&ver,sizeof(long));
یه اشاره گر از نوع integer تعریف کنین و سایز رو هم 4 در نظر بگیرین نه 8
SizeOf(long)=8

[تصویر:  xshon.png]
از آن نماز که خود هیچ از آن نمی فهمی خدا چه فایده و بهره اکتساب کند
تفاخری نبود مر خدای عالم را که چون تو ابلهی او را خدا حساب کند
۲۷-فروردین-۱۳۸۹, ۱۰:۳۳:۵۳
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : محمد حسینی, dreamvbfox
dreamvbfox آفلاین
در حال پیشرفت
***

ارسال‌ها: 426
موضوع‌ها: 44
تاریخ عضویت: مرداد ۱۳۸۷

تشکرها : 236
( 1251 تشکر در 361 ارسال )
ارسال: #7
RE: خواندن فایل باینری
(۲۷-فروردین-۱۳۸۹, ۱۰:۳۳:۵۳)lord_viper نوشته است: تو فایل pdf شما انتهای صفحه 2 نوشته
integer signed 32 bit integer 4 byte
duble signed 64 bit IEEEE 8 byte

به انتخابمتغییر و اشاره گر و ادرس دقت کنین

کد:
fin.read((char*)&ver,sizeof(long));
یه اشاره گر از نوع integer تعریف کنین و سایز رو هم 4 در نظر بگیرین نه 8
SizeOf(long)=8

سلام مهندس !
نگاه کنین ! تو صفحه ۴ نوشته بایت ۰ تا ۳ مربوط به کد فایل است که همیشه ۹۹۹۹۴ هست !!!
خوب منم اومدم یه int تعریف کردم ! سایزشم گرفتنم دیدم ۴ بایت هست !‌
حالا وقتی می خونم 170328064 نشون میده

کد :

کد:
int main(){
    int xx;
    ifstream fin;
    fin.open("water.shp", ios::in | ios:: binary);
    if(fin.fail() == 1) { cout << "I Can't Open The File!" << endl; return(0); } // Check File
    //Get Header Data
    fin.seekg(0,ios::beg);
    fin.read((char*)&xx,sizeof(int));
    cout<<xx<<endl;
    return 0;
}
میشه بگید مشکل این کد بالا چیه ؟ xx 4 بایت هست ...
ممنون

Biggrin Use Google instead of asking stupid questions Biggrin

[/url]
CMC Automation System


آموزش زبان c++
[url=http://www.iranled.com/forum/thread-13923.html]

۲۷-فروردین-۱۳۸۹, ۲۰:۲۳:۴۱
وب سایت ارسال‌ها
پاسخ
lord_viper غایب
مدیر کل انجمن
*****

ارسال‌ها: 3,949
موضوع‌ها: 352
تاریخ عضویت: بهمن ۱۳۸۴

تشکرها : 5193
( 9875 تشکر در 2650 ارسال )
ارسال: #8
RE: خواندن فایل باینری
اون shape file ت رو اینجا اپلود کن فعلا c++ نصب ندارم با دلفی یه تستس میزنم بهت میگم

[تصویر:  xshon.png]
از آن نماز که خود هیچ از آن نمی فهمی خدا چه فایده و بهره اکتساب کند
تفاخری نبود مر خدای عالم را که چون تو ابلهی او را خدا حساب کند
۲۷-فروردین-۱۳۸۹, ۲۰:۳۶:۲۵
وب سایت ارسال‌ها
پاسخ
dreamvbfox آفلاین
در حال پیشرفت
***

ارسال‌ها: 426
موضوع‌ها: 44
تاریخ عضویت: مرداد ۱۳۸۷

تشکرها : 236
( 1251 تشکر در 361 ارسال )
ارسال: #9
RE: خواندن فایل باینری
ضمیمه شد

با تشکر


فایل‌(های) پیوست شده
.zip   water.zip (اندازه: 114.78 KB / تعداد دفعات دریافت: 178)

Biggrin Use Google instead of asking stupid questions Biggrin

[/url]
CMC Automation System


آموزش زبان c++
[url=http://www.iranled.com/forum/thread-13923.html]

۲۷-فروردین-۱۳۸۹, ۲۰:۴۷:۴۸
وب سایت ارسال‌ها
پاسخ


موضوعات مرتبط با این موضوع...
موضوع نویسنده پاسخ بازدید آخرین ارسال
Question [سوال] خواندن تمام فایل های txt یک folder missnabat 1 2,923 ۲۸-آبان-۱۳۹۵, ۲۳:۰۱:۰۳
آخرین ارسال: babyy
  [سوال] تبدیل دسیمال 24 بیت به باینری a.mehran 1 2,116 ۲۳-دى-۱۳۹۳, ۱۶:۳۷:۳۶
آخرین ارسال: NO DONGLE
  الگوریتم های ژنتیک (حقیقی،باینری، ...) Ambassador 0 3,369 ۳۰-اسفند-۱۳۹۱, ۰۰:۲۱:۰۵
آخرین ارسال: Ambassador
  خواندن و نوشتن aleas 1 3,061 ۰۶-اسفند-۱۳۹۱, ۲۲:۰۴:۵۵
آخرین ارسال: Ghoghnus
  مشکل خواندن کارکترهای فارسی mysql در سی شارپ ahsanjan 0 3,258 ۲۳-فروردین-۱۳۹۱, ۲۳:۱۸:۵۶
آخرین ارسال: ahsanjan
  خواندن swf فروم باز 4 3,317 ۰۷-فروردین-۱۳۸۹, ۱۹:۴۱:۴۸
آخرین ارسال: محمد حسینی

پرش به انجمن:


کاربرانِ درحال بازدید از این موضوع: 1 مهمان

صفحه‌ی تماس | IranVig | بازگشت به بالا | | بایگانی | پیوند سایتی RSS