PDA

View Full Version : سوال: صف وآرایه و شی استریم برای نگهداری عکس



رامین مرادی
شنبه 30 اردیبهشت 1391, 21:32 عصر
باسلام
سلام دوستان اخیرا" دارم رو برنامه ای کار می کنم یه راهنمایی ازتون می خواستم بکنم

به نظرتون استفاده از شی استریم اونم در حد مثلا" به تعداد حدودا" 300 تایی که برای ذخیره عکس استفاده بشه از نظر سرعت برنامه و حافظه مورد نیاز برنامه کاری صحیح هست
کار من به این صورته که حدود 300 تا یا شاید هم حدود 3000 تا عکس رو رو که تو هر ثانیه ایجاد میشه رو تویه یک آرایه ذخیره کنم نوع متغییرم هم از نوع استریم هست می خوام این آرایه به صورت یک صف عمل کنه اولین ورودی اواین خروجی باشه یعنی وقتی آرایه 3000 تاییم پر شد عکس اولی حذف بشه و در آرایه یکی به سمت اول شیفت پیدا کنه و عکس جدید که تولید میشه بره تو آخر آرایه قرار بگیره این کار تا زمانی ادامه پیدا کنه که من دکمه قطع رو بزنم به نظرتون این کار رو چه طور پیاده سازیش کنم :متفکر:

arenaw
یک شنبه 31 اردیبهشت 1391, 13:10 عصر
سلام، خب چرا از یه آرایه استرینگ معمولی استفاده نمیکنی؟ به جای اینکه خود عکسا رو بریزی تو آرایه، عکسا رو تو هارد سیو کن و آدرساشو نگه دار
(البته اگه منظورتو درست متوجه شده باشم)

رامین مرادی
یک شنبه 31 اردیبهشت 1391, 18:17 عصر
نه ببینید دوستان فکر کنم متوجه نشدید من عکس رو تو بازه 30 صدم ثانیه تولید می کنم برای ذخیره این همه عکس روی هارد فکر کنم از گیگ بزنه بالا پس چی ....
در ضمن شما روش آرایه و صف رو هم بگید برام کفایت می کنه عکس رو حل می کنم فرض کنید به جای عکس می خوام یک حرف ذخیره کنم و با تولید حرف به انتهای صف اضافه بشه و بعد از پر شدن صف از ابتدای اون حذف بشه و تمامی مقادیر آرایه یک شیفت به سمت اول بیان و دوباره خانه آخر خالی بشه ..حله:متفکر:

رامین مرادی
دوشنبه 01 خرداد 1391, 14:09 عصر
یعنی اینقدر پیاده سازی صف سخته یا دوستان کم اهمیت دادن به این تایپیک
من هنوز منتظر نظراتتون هستم

Veteran
دوشنبه 01 خرداد 1391, 14:48 عصر
میخوای عکس ذخیره کنی ؟ از 30 صدم ثانیه یک بار ؟

arenaw
دوشنبه 01 خرداد 1391, 23:36 عصر
این رو امتحان کن

Dim a(5)
Dim last
Private Sub Command1_Click()
'calc
If last < UBound(a) Then
last = last + 1
Else
For i = LBound(a) + 1 To UBound(a)
a(i - 1) = a(i)
Next
End If
'Put data
a(last) = Rnd * 100
'Show Array
Me.Cls
For i = 1 To UBound(a)
Print "a(" & i & ") = " & a(i)
Next
End Sub

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

arenaw
سه شنبه 02 خرداد 1391, 00:42 صبح
به جاش میتونی از شیوه ی حلقوی استفاده کنی که خیــــلی بهتر از اینه
اگه خواستی بگو توضیح بدم راجب اش

رامین مرادی
سه شنبه 02 خرداد 1391, 14:15 عصر
دوستان صف حل شد به نظرتون چه طور این همه عکس رو تو حافظه بار کنم که سرعت سیستم رو نگیره البته این برنامه زمانی مورد استفاده قرار می گیره که هیج کس با سیستم کار نکنه
ممنون از شما که صف رو گفتید حلقه رو هم خودم بلئم ئر کل ممنون

arenaw
سه شنبه 02 خرداد 1391, 14:31 عصر
دوستان صف حل شد به نظرتون چه طور این همه عکس رو تو حافظه بار کنم که سرعت سیستم رو نگیره البته این برنامه زمانی مورد استفاده قرار می گیره که هیج کس با سیستم کار نکنه

خب من واسه همین گفتم توی هارد سیو کنی بهتره دیگه
درسته سرعت ساخت و دسترسی بهشون میاد پایین ولی در عوض تو سیستم های ضعیف تر هم اجرا میشه

رامین مرادی
یک شنبه 07 خرداد 1391, 17:50 عصر
خب من واسه همین گفتم توی هارد سیو کنی بهتره دیگه
درسته سرعت ساخت و دسترسی بهشون میاد پایین ولی در عوض تو سیستم های ضعیف تر هم اجرا میشه

ببین دوست عزیز باشه من می تونم این کار رو بکنم فقط یه مشکل وجود داره من همواره که این کار در حال انجام شدنه دارم دو تصویر رو پردازش می کنم مشکل من فقط اینجاس که اگه من این دو تصویر رو تو حافظه بار کنم هر لحظه عکس هم که گرفته میشه دیگه عکس گرفتن متوقف نشه و برنامه کرش نکنه
در کل دوستان آیا می تونم این دو قسمت رو به صورت دو تا نخ اجرا کنم یعنی یکی از نخ ها عکس بگیره و دیگری پردازش تصویر رو انجام بده ممنون اگه کمکم کنید در ضمن از نخ ها هم هیچی بلد نیستم تا حالا باهاشون کار نکردم در ضمن چند تا نخ رو می تونم هم زمان اجرا کنم نخ سومی هم به نظرتون برای صف باشه یا نه؟؟؟؟؟:متفکر: