PDA

View Full Version : کار با فایلها در دلفی 7



Developer Programmer
جمعه 05 دی 1382, 11:58 صبح
سلام
لطفا یکسری دستو رات لازم برای
( جستجو باز کردن نوشتن خواندن بستن ) فایل رو لیست کنید

hr110
جمعه 05 دی 1382, 12:33 عصر
با سلام
باز کردن و بستن فایلها رو میتونید از assignfile و closefile استفاده کنید برای جسجو نیز راهی وجود ندارد مگر اینکه خط به خط یا رکورد به رکورد بخوانید و با رشته مورد جستجو مقایسه کنید.

JavanSoft
جمعه 05 دی 1382, 13:08 عصر
اگر از عناصری که دارای Items هستند استفاده کنید (listBox,Memo....)از دستورات LoadFromFile,SaveToFile می توانید استفاده کنید

مهدی کرامتی
جمعه 05 دی 1382, 14:04 عصر
چه جور فایلی رو میخواهید بخونید؟
فایل Text یا فایل با ساختار اختصاصی؟

Developer Programmer
جمعه 05 دی 1382, 18:38 عصر
سلام
احتراما یه برنامه که مثل برنامه نمایش فایلهای گرافیکی در XP باشه تا در ویندوز 98 هم استفاده کنم
لذا باید دنبال فایلهای گرافیکی در مسیر داده شده توسط کاربر باشم :roll:
ولی با FindFirst نمی تونم دنبال بیش از یک فایل بگردم
دو مشکل دیگه هم دارم
مسلما برنامه از دو کلید بعدی و قبلی هم برخوردار خواهد بود
چطوری یادم نگه دارم که فایل قبلی چی بود؟ ایا بهتر نیست اول تمام فایلها رو تو یه آرایه ذخیره کنم بعد نمایش بدم؟
وقتی به صورت runtime یه اسمی مثلا a.jpg رو به image1.picture می دم ایراد می گیره که مجاز نیست!!
از Tbitmap.create و یا tpicture.create هم نتونستم درست استفاده کنم
کمکم کنید

B-Vedadian
شنبه 06 دی 1382, 10:15 صبح
با سلام،

شاید درست متوجه نشده باشم ولی:

برای یافتن بیش از یک فایل ابتدا FindFirst و درصورت یافتن مورد برای فایلهای بعدی از FindNext استفاده کنید.

برای باز کردن فایلهای JPEG و JFIF از \TJPEGImage استفاده کنید بصورت زیر:

uses ...Jpeg; to be able to use Jpeg
.
.
.
JpgImage:=TJPEGImage.Create; Creat a jpeg image class
JpgImage.LoadFromFile('...') ; .... is address

Image1.Picture.Assign(JpgImage); To load image
...
امیدوارم مفید باشد.

Developer Programmer
شنبه 06 دی 1382, 18:23 عصر
دمت گرم کارت درسته...
این JPEG عجب چیز باحالیه ها ...

Developer Programmer
شنبه 06 دی 1382, 18:25 عصر
راستی یادم رفت بگم
منظورم از بیش از یک فایل این بود که چند فایل با مشخصه های متفاوت رو پیدا کنم مثل JPEG,BMP,GIF که همگی فایل گرافیکی اند...

حالاا اگه زحمتی نیست کمکم کنید

DelphiMan
شنبه 06 دی 1382, 19:15 عصر
با سلام
دوست عزیز در مورد سئوال اولت میشه از روشهای مختلفی استفاده کرد که یکی از اونها که من بارها در برنامه ها از اون استفاده کردم نوشتن یک روال Recursive هست که تمامی فایلهای و همچنین فلدر های یک مسیر را برمیگرداند...
با استفاده از این روش می تونی تمام هارد رو خیلی سریع سرچ کنی بدنبال فایلهای خاص..
حالا من کدی که خودم نوشتم رو میزارم این پایین حتما بدردت میخوره :
(تو این برنامه در مسیری که دادی تمام شاخه و زیر شاخه رو به دنبال فایلهای htm میگرده و لیست اونها رو تو یک StringList میذاره به نام FoundList.)


procedure TForm1.RecurseDirTree(NewPath: string);
var
SearchRec: TSearchRec;
ReturnCode : Integer;
begin
if FindFirst(NewPath + '*.htm', faAnyFile, SearchRec) = 0 then repeat
if (SearchRec.Attr and (faHidden or faSysFile or FaVolumeID)) = 0) then
begin
if (SearchDoc(NewPath + SearchRec.Name, Edit1.text, False)) then
begin
FoundList.Items.Add(NewPath + SearchRec.Name);
Application.ProcessMessages;
if BreakBool then Exit;
end;
Application.ProcessMessages;
end;
if BreakBool then Exit;
ReturnCode := FindNext(SearchRec);
Application.ProcessMessages;
until ReturnCode <> 0;
if FindFirst(NewPath + '*.*', faDirectory, SearchRec) = 0 then repeat
if (SearchRec.Attr and faDirectory > 1) and (SearchRec.Name <> '.') and
(SearchRec.Name <> '..') then RecurseDirTree(NewPath + SearchRec.Name + '\');
if BreakBool then Exit;
Application.ProcessMessages;
until FindNext(SearchRec) <> 0;
end;

اگر سئوالی بود من در خدمتم
در ضمن در مورد سئوال دیگرت هم که پرسیده بوده چطوری میتونی به قبلی و بعدی دسترسی داشته باشی، اگه از StringList استفاده کنی خیلی راحت اینکارو میتونی بکونی حالا در این مورد help دلفی کامل توضیح داده...
و یا اینکه تو یک ListBox بنویسی که به راحتی می تونی توی رکوردها حرکت کنی..
در مورد سئوال آخر هم شما ورژن دلفیت چنده؟

موفق باشی - صادق

B-Vedadian
یک شنبه 07 دی 1382, 09:16 صبح
با سلام،

در این مورد هم جناب آقای خجسته یک کامپوننت روی سایت خود دارند که در اختیار عموم قرار داده اند. واقعا باید از ایشان تشکر و با ایشان در راستای این هدف همکاری کرد.

به آدرس زیر سری بزنید:

http://www.delphiarea.com/products/findfile/

Developer Programmer
یک شنبه 07 دی 1382, 11:43 صبح
در مورد سئوال آخر هم شما ورژن دلفیت چنده؟
با تشکر از توجه همه دوستان عزیز
نسخه دلفی من 7 می باشد