PDA

View Full Version : اجرای یک فایل



hm_2008
جمعه 19 بهمن 1386, 07:22 صبح
سلام خسته نباشید
من یک برنامه دارم که یک فایل عکس کنار خود را اجرا می کند آیا امکانی وجود دارد که اگر این فایل عکس من تغییر کرد حتی اگر با همان نام هم بود برنامه بفهمد.مثلا شماره ای از فایل قبلی داشته باشم و بعد توی برنامه آن فایل را به شرط داشتن شماره اجرا کن.
لطفا من را راهنمایی کنید.
متشکرم

DAMAVAND
جمعه 19 بهمن 1386, 07:46 صبح
برای این کار راههای مختلفی هست :
1) میتونید سایز فایل یا تاریخ اونرو چک کنید : GetFileSize , GetFileTime
البته خیلی قابل اطمینان نیست .
راه بهتر اینکه چند بایت مختلف از فایل رو بخونید و با نمونه اصلی مقایسه کنید.
البته نباید از ابتدای فایل هایی مثل jpg باشه چون چندین بایت اول فایل ها با هم یکی هستند.
برای اینکار میتونید از متد TFileStream در دلفی استفاده کنید.

echoes
شنبه 20 بهمن 1386, 02:00 صبح
راهکارهای آقای Damavand خیلی مناسبه ولی خیلی راحت می شه تاریخ و ساعت سیستم رو به اون تاریخ برد و فایل عکس رو ساخت و درباره چند بایت هم در صورتی که عکس جدید همون گرافیک رو تو ناحیه ای که خوانده می شه داشته باشه اون هم ناکاراست، بهتره فایل رو داخل برنامه قرار دهید و یا با استفاده از قطعه کد در هموان ابتدای اجرای برنامه مجددا بسازید

vcldeveloper
شنبه 20 بهمن 1386, 02:40 صبح
توی همین سایت عبارت Hash را جستجو کنید. با تولید یک Hash Code از فایل مورد نظر و نگه داری آن در برنامه، می تونید هر بار از فایل مورد نظر یک Hash Code جدید ایجاد کنید و مقدار آن را با کد اولیه که در برنامه ذخیره کردید مقایسه کنید. اگر کدها متفاوت بودند، یعنی محتوی فایل تغییر کرده.

vcldeveloper
دوشنبه 22 بهمن 1386, 12:39 عصر
گفتم جستجو کنید، اما بجای جستجو رفتید تاپیک جدید زدید -که حذف شد. چون کاربر جدید هستید، خودم براتون جستجو کردم و لینک گذاشتم، اما دفعات بعد همچین کاری صورت نمی گیره!

موفق باشید.

مقاله: MD5 چیست؟ (http://barnamenevis.org/forum/showthread.php?t=10025)
Hash - Code - Encryption (http://barnamenevis.org/forum/showthread.php?t=15809)
لینک های خارج از سایت برنامه نویس:
hash function from Wikipedia (http://en.wikipedia.org/wiki/Hash_function)

نمونه ایی از کدها و ابزارهای رایگان موجود برای پیاده سازی:
TurboPower LockBox (http://sourceforge.net/projects/tplockbox)
efg's Delphi Math Functions - Cryptography
(http://homepages.borland.com/efg2lab/Library/Delphi/MathFunctions/Cryptography.htm)