ورود

View Full Version : الگوریتیم شروع برنامه



mehran_337
دوشنبه 16 بهمن 1385, 23:34 عصر
برای شروع برنامه ام تحت شبکه مشکل دارم و نمی توانم الگوریتمش را بسازم . درابتدای برنامه باید موارد زیر را در نظر بگیریم .
می خواهم بفهمم کاربری که وارد شده است اولین کاربر برنامه است که ورود کرده است و شروط زیر را باید بررسی کنم

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

شاید در ظاهر ساده باشد اما هر چه فایلی موقت برای ورود در نظر می گیرم بعد می بینم ممکن است برق برود و مشکلاتی که خودتان بهتر می دانید بازسازی و تعمیر و غیره...

در اجرای الگوریتم فوق و اینکه تشخیص دهم کاربر اولین کاربر وارده است ناتوان ماندم .

rahro
سه شنبه 17 بهمن 1385, 06:47 صبح
برای شروع برنامه ام تحت شبکه مشکل دارم و نمی توانم الگوریتمش را بسازم . درابتدای برنامه باید موارد زیر را در نظر بگیریم .
می خواهم بفهمم کاربری که وارد شده است اولین کاربر برنامه است که ورود کرده است و شروط زیر را باید بررسی کنم

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

شاید در ظاهر ساده باشد اما هر چه فایلی موقت برای ورود در نظر می گیرم بعد می بینم ممکن است برق برود و مشکلاتی که خودتان بهتر می دانید بازسازی و تعمیر و غیره...

در اجرای الگوریتم فوق و اینکه تشخیص دهم کاربر اولین کاربر وارده است ناتوان ماندم .

سلام
مهران جان :
نمیشه با توابع سطح پائین یک فایل در شبکه به وجود بیاوری که حاوی تاریخ روز و تائید عملیات بازسازی باشد را در آن قید کنی
به هنگام ورود کاربر تست میکند اگر این فایل وجود داشته باشد تاریخ به هنگام سازی فایل رو تست میکنه و وارد میشه و بلافاصله اگر تاریخ موجود مغایر تارخ سیستم بود قبل از بازسازی مقدار رشته قید شده در همین فایل که مشخصه عملیات بازسازی را فالس میکنه و شروع به عملیات بازسازی . حال اگر کابری وارد شد اگر تاریخ روز برابر با تاریخ همین فایل بود و مقدار رشته "ترو" وراد میشه و اگر فالس پیغام مربوطه به او گوشزد میشه و کاربر اصلی هم بعد از بازسازی مقدار رشته رو "ترو" میکنه .
مطمئنا شما این رو تست کردید دوست دارم معایبش رو بدونم.

rezaTavak
سه شنبه 17 بهمن 1385, 07:40 صبح
خب اینکه کاری نداره:

من یک تابع نوشته بودم که بررسی می کرد فایلی باز شده؟ کسی دیگری آنرا باز کرده؟


اما من در ابتدای تمام برنامه هایم دیتابیس برنامه را به طور اشتراکی باز میکنم که برای کاربرها مشکلی پیش نیاید و اگر هم جایی أنرا بستم سریعا دوباره بطور اشترکی بازش نگه می دارم تا برنامه بسته شود.

همین کاری که من میکنم باعث شده تا بتوانم سر در بیاورم برنامه توسط کسی باز شده یا نه. یعنی تست میکنم آن فایل دیتا بیس باز شده یا نه.

اینم برنامه تست فایل باز بودن:



************************************************** ************************************************
* THIS Function determin Table use by another
* Last Update : 02/16/2004
* By : M.R.TAVAKOL
* Return Values:
* 1: File Open By Another share
* 2: File Not Open By Another
* 3: File Open Exclusive
* 4: File Dose not exist!
************************************************** ************************************************
FUNCTION UseByAnother
LPARAMETERS lcTableName &&TableName And Path and Extention Must Be Entered
LOCAL lnFileHandle1
lnFileHandle1=FOPEN(lcTableName,0)
IF lnFileHandle1>0 THEN
=FCLOSE(lnFileHandle1)
lnFileHandle1=FOPEN(lcTableName,2)
IF lnFileHandle1<0
RETURN 1 && File Open By Another Share
ELSE
=FCLOSE(lnFileHandle1)
RETURN 2 && File not Open By Another
ENDIF
ELSE
IF FILE(lcTableName)
RETURN 3 && File Open Exclusive
ELSE
RETURN 4 && File Dose not exist!
ENDIF
ENDIF
ENDFUNC

mehran_337
چهارشنبه 18 بهمن 1385, 12:01 عصر
اقای توکل واقعا ممنونم خیلی وقت بود ای مشکل و داشتم
اما به لطف شما حل شد. برای من کد جدیدی بود
متشکرم