View Full Version : با حجم وسیع داده چه کنم
.:saeed:.
پنج شنبه 29 مرداد 1388, 19:03 عصر
سلام
ببخشید دوستان دارم برنامه ای به زبان c++ البته با Qt می نویسم که با حجم بسیار زیادی از داده ها سر و کار داره و این داده ها رو باید بخونه و بنویسه . آیا تنها راه من استفاده از فایل ها ست یا راه دیگه ای هم هست؟
:قلب:ممنون
.:saeed:.
سه شنبه 03 شهریور 1388, 18:42 عصر
ممنون از این همه راهنمایی!
pswin.pooya
سه شنبه 03 شهریور 1388, 22:25 عصر
ببین آخه این مطلب بستگی به نوع داده و محلی داره که میخوای استفاده کنی داره.
بعضی مواقع داده مربوط به دیتا بانک هست که با توجه به وضعیت شما MySQL پیشنهاد میشه.
بعضی موقع ها داده چند رسانه ای هستش که فایلهای تصویری آرشیوی پیشنهاد میشه.
بعضی مواقع داده باینری خام همستش که فایل پیشنهاد میشه و ...
این برنامه نویس هستش که یاید در این مورد نظر بده. اگر میخوای داده مانا باشه و بعدا هم استفاده کنی و زمانrun time وارد میشه. بله تنها راه فایل هستش و بس
.:saeed:.
شنبه 07 شهریور 1388, 12:20 عصر
سلام ممنون از راهنمايي
ولي بگذار بيشتر توضيح بدم . مثلا فتوشاپ رو فرض كنيد كه مثلا 50 تا لايه داريم كه در صفحه هستند مي خوام بدونم برنامه فتوشاپ چه طور اين همه اطلاعات لايه ها رو ذخيره و باز خوني مي كنه مي دونم در فايلي با پسوند psd ذخيره مي كنه ولي مي خوام بيشتر توضيح بدين اگه مي دونين
Nima_NF
شنبه 07 شهریور 1388, 13:43 عصر
فوتوشاپ و ابزارهای مشابه به این شکل کار می کنند:
برای ذخیره سازی، تا زمانی که نیاز نباشد تک تک پیسکل های هر لایه را دخیره کند فقط داده های رسم گردن ابزار هر لایه را نگه می دارد، مثلا اطلاعات اشکال vector را، یعنی این طور که لایه 2 اگر نوشته ای دارد، مکان قرار گرفتن نوشته، و اطلاعات نمایشی وتنظیمات effect آن در یک struct ذخیره می شود و در فایل ریخته می شود که بیش از چند بایت نمی شود.
این وظیفه برنامه نویس هست که در دفعه بعد با خواندن فایل، به همان نحوه که در فایل نوشت، مطالب را در ساختارهای برنامه مجددا پر کند.
در هر صورت اگر لایه هایی شامل عکس هست یا خودتان flatten کرده اید، آنگاه به ناچار تمام پیکس های لایه را باید ذخیره کند.(که اگر سایز عکس بسیار بزرگ باشد مثلا برای تابلو های تبلیغاتی، فایل psd شما حتی به 100MB هم خواهد رسید.)
مثلا به طور ساده شما می توانید چنین الگورتمی برای فایل در نظر بگیرید (صحیح آن یک دسته struct هست):
layer1:
bitmap control
pos = 0, 0
star = 0,0
end = 800,600
format = JPEG
dataBuff ....
//...
VectorLine control
point1= 10 ,12
point2= 16 ,18
point3= 17,28
//...
layer2:
TextOut control
pos = 20 ,40 // ( x, y )
color = 12,16,100 // ( RGB)
opacity = 100
// ....
اطلاعات دقیق تر برای فرمت PSD در اسناد SDK های Photoshop وجود دارد.
Photoshop هنگام کار کردن و گرفتن history از برنامه باز شده ، حدود 50% Ram و بیش از 1GB از هار دیسک شما را برای catch موقت کپی هایی که با آن کار نمی کنید اشغال می کند و زمانی که فایل را save کردید فقط نسخه نهایی و داده های مورد نیاز را ذخیره می کند.
پس تا جای ممکن از ram استفاده کنید و در نسخه نهایی برای دخیره در فایل بریزید.
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.