PDA

View Full Version : dir /s



sara66
دوشنبه 02 دی 1387, 12:17 عصر
سلام من برنامه dir/s را با پاسکال میخواستم کسی میتونه کمکم کنه ؟

vcldeveloper
دوشنبه 02 دی 1387, 16:30 عصر
کمک موقعی معنی داره که شما کار را شروع کرده باشید، و در بخش خاصی از کار گیر کرده باشید. اون وقت می تونید از دیگران تقاضای همکاری کنید. ولی وقتی نمیگید چی کار کردید، و در کجای کار مشکل دارید، اینطور به نظر میاد که منتظرید یکی برنامه را برایتان بنویسه! در این صورت، تاپیک تبدیل میشه به تاپیک درخواست انجام پروژه دانشجویی، و چون این کار خلاف قوانین سایت هست، تاپیک حذف میشه!

merced
دوشنبه 02 دی 1387, 17:54 عصر
بيرجند درس ميخوني ....



var
DirList : SearchRec;

procedure x(path : string) ;
begin
chdir(path) ;
FindFirst('*.*', AnyFile , DirList);

while DosError = 0 do
begin

if (DirList.Attr <> Directory) then
Write( DirList.Size : 8)
else
write(' <DIR> ' : 8 ) ;

Write (' ' , DirList.Name ) ;

if (DirList.Attr = Directory) and
(DirList.Name <> '.') and
(DirList.Name <> '..') then begin
// فراخواني مجدد تابغ
end ;


writeln ;
FindNext(DirList);
end;
begin
x('c:\windows')
end.






TSearchRec يه ساختاره كه FindFirst و FindNext اونو مقدار ميدن
تابع بالا Dir معموليه

تو اونجا كه نوشته فراخواني مجدد تابع مي توني كدي بنويسي كه همون تابع رو فراخوني كنه (بازگشتي) و s/ رو شبيه سازي كني

sara66
دوشنبه 02 دی 1387, 19:43 عصر
مشکل منم با همین قسمت اگه بیایم با Getdir موقعیت جاری رو بگیریم بعد + \ و بعد با DirList.Name جمع کنیم و x رو با این مقدار فراخوانی کنیم ترتیب نمایش فایلها بهم میخوره بعدشم پشته پر میشه

merced
سه شنبه 03 دی 1387, 10:47 صبح
ميتوني به جاي بازگشتي خودت يه پشته تعريف كني

sara66
سه شنبه 03 دی 1387, 11:30 صبح
یعنی چی ؟ با درختها ؟

merced
سه شنبه 03 دی 1387, 19:07 عصر
نه
اين برنامه رو حداقل براي 7 نفر توضيح دادم .

شما يه پشته از نوع string‌داري هروقت به يه directory رسيدي (همونجايي كه نوشته فراخواني مجدد تابع ) مسير كامل اون Directory رو به پشته push ميكني

هر وقت اون پوشه رو خواستي چاپ كني popش مي كني

sara66
سه شنبه 03 دی 1387, 21:52 عصر
من تازه واردم میشه بیشتر توضیح بدین ؟

merced
چهارشنبه 04 دی 1387, 12:56 عصر
پشته همون آرايه اس.

push كردن يعني اضافه كردن يه چيز به آرايه
pop كردن يعني برگرداندن عنصر آخر آرايه

sara66
چهارشنبه 04 دی 1387, 13:18 عصر
خوب از اول میگفتی ....
بله یه چنین فکری هم کردم ولی مهندس میدونی چه بلایی سر پشته میاد ؟ بعدشم آرایه چندتایی ؟ 50 تا هم پشته پر میشه فکر کنم بهترین راه همون درختها باشه نه؟

merced
چهارشنبه 04 دی 1387, 18:44 عصر
خوب من يه آرايه 200 تايي درنظر گرفتم و مشكلي پيش نيومد.
حالا فكر كن درخت رو چه جوري پايده سازي كني. مگه ساختمان داده پاس كردي . مگه استادتون تخصيص حافظه پويا و ساختار درخت رو گفته .

درختش هم درخت ساده ايي نيست. چون هر node ممكنه n تا فرزند داشته باشه

اگه با درحت كار كني خيلي بهتره چون با يه پيمايش عمقي درخت هم ترتيب رعابت ميشه و هم از حافظه بصورت بهينه استفاده كردي. (صابري گفته درخت ؟؟؟ (: خيلي آدم باحاليه )

sara66
چهارشنبه 04 دی 1387, 20:10 عصر
کجاش باحاله ؟ ولی تنها راه کاربردیش همین درخته ...
بله شما برنامتون رو تو درایو C اجرا کنید بعد ....
بابا توی هر دفعه اجرای تابع این آرایه 200 تایی اونم آرایه از نوع استرینگ (البته استرینگ 13 تایی بیشتر لازم نیست ) تو پشته ذخیره میشه ....
آقای صابری یکم همچین جو گرفتتشون آخه کی میاد یه چنین برنامه ای رو واسه ما ها بده ...

sara66
چهارشنبه 04 دی 1387, 20:13 عصر
آقا بدون ساختار درختها نمیشه هیچجوری نوشت البته بهینه شدشو میگم
درختها رو هم آقای صابری نگفت ...

merced
شنبه 07 دی 1387, 10:02 صبح
شما مگه درخت ها رو خونید (ساختمان داده) ؟؟
13 تایی هم کمه. چون شما باید توی آرایه مسیر کامل رو ذخیره کنی .. (مگه از درخت استفاده کنی تا بتونی با ÷یمایش مسیر رو بدست بیاری)

sara66
یک شنبه 08 دی 1387, 16:31 عصر
نه نخوندییییییم ولی خوندم
13 تا کم نیست قرار نیست کل مسیر رو در آرایه ذخیره کنید فقط نام پوشه ...
نام پوشه هم 12 تا بیشتر نیست TSearchRect رو تو هلپ پیدا کنید میبینید که Name یک متغیر از نوع استرینگ و 12 خونه داره ...
آقا بیخیال فردا تحویل ....

mmm2400
شنبه 14 دی 1387, 23:13 عصر
ببخشيد من هم اين پروژة را مي خوام اگر كسي كاملش را داره برام بفرسته مشكل هزينه هم نيست چون من وقتي ندارم وبايد زودتر تحويلش بدهم
با تشكر

ghabil
یک شنبه 15 دی 1387, 01:57 صبح
پروژه مال تحویل دادن نیست ، پروژه مال کار یاد گرفتنه، کاش بعد از پست علی کشاورز دیگه کسی پست نزده بود.