PDA

View Full Version : حذف پسوند فایل از دستور CommonDialog.FileTitle



Restlesa
شنبه 23 بهمن 1389, 17:31 عصر
سلام بر دوستان گرامی عزیز
همان طوری که همگی شما دوستان می دونید با استفاده از دستور CommonDialog.FileTitle می تونید نام فایل ذخیره شده در سیستم و نوع پسوند فایل رو بدست بیارید.
حال چه طوری می تونم تنها نام فایل ذخیره شده رو بدست بیارم؟؟؟؟
ممنون میشم راهنماییم کنید

returnx
شنبه 23 بهمن 1389, 19:49 عصر
حال چه طوری می تونم تنها نام فایل ذخیره شده رو بدست بیارم؟؟؟؟
خوب بدیهی هست که تمام پسوند ها در ویندوز سه حرفی اند ، پس لازم چهار حرف(دات رو هم باید در نظر گرفت) آخر را با تابع mid نگیرید به اینصورت:

stri= Mid(string, 1, Len(string) - 4)

Restlesa
شنبه 23 بهمن 1389, 20:15 عصر
ممنونم دوست عزیز
به جای String باید مقدار CommonDialog1.FileTitle رو بزارم ؟؟؟:متفکر::متفکر::متفکر::متف ر:

returnx
شنبه 23 بهمن 1389, 20:23 عصر
بله دقیقا ، البته اول می تونید این مقدار برابر یک متغیر از نوع String بزارید بعد متغیر را بجای String در تابع قرار دهید اینجوری خوانایی برنامه هم بالا تر می ره...

Restlesa
شنبه 23 بهمن 1389, 20:55 عصر
البته اول می تونید این مقدار برابر یک متغیر از نوع String بزارید بعد متغیر را بجای String در تابع قرار دهید اینجوری خوانایی برنامه هم بالا تر می ره...
این قسمت رو یه خورده بیشتر برام توضیح میدی متوجه نشدم

returnx
شنبه 23 بهمن 1389, 23:02 عصر
یعنی اینجوری:

Dim file_title As String 'Variable for File title & extention
Dim file_name As String 'variable for file name without extention
file_title = CommonDialog1.FileTitle
file_name = Mid(file_title, 1, Len(file_title) - 4)

اینجوری قشنگ تره نه؟!
بعد ها متوجه میشی که این نوع کد نوشتن چه فوایدی داره...

parselearn
یک شنبه 24 بهمن 1389, 06:18 صبح
سلام بر دوستان گرامی عزیز
همان طوری که همگی شما دوستان می دونید با استفاده از دستور CommonDialog.FileTitle می تونید نام فایل ذخیره شده در سیستم و نوع پسوند فایل رو بدست بیارید.
حال چه طوری می تونم تنها نام فایل ذخیره شده رو بدست بیارم؟؟؟؟
ممنون میشم راهنماییم کنید


's = "file.docx"
s = CommonDialog1.FileTitle
d = InStrRev(s, ".")
s = Left(s, d - 1)
MsgBox s




خوب بدیهی هست که تمام پسوند ها در ویندوز سه حرفی اند ، پس لازم چهار حرف(دات رو هم باید در نظر گرفت) آخر را با تابع mid نگیرید به اینصورت:

stri= Mid(string, 1, Len(string) - 4)


خير، اينطور نيست
در ويندوز نام فايل به همراه پسوند ميتونه تا 256 حرف باشه
مثال:
A.inyekpasvandtoolaniast
پسوند هم در ويندوز از نقطه آخر به بعد حساب ميشود
a.b.c.d.a.axsd

vbhamed
یک شنبه 24 بهمن 1389, 13:40 عصر
سلام


CommonDialog1.ShowOpen

Dim f$, p%
f = CommonDialog1.FileTitle
p = InStrRev(f, ".")

If p > 0 Then f = Left(f, p - 1)

MsgBox f

returnx
یک شنبه 24 بهمن 1389, 17:37 عصر
A.inyekpasvandtoolaniast
الان این چه نوع فایلی هست؟

parselearn
یک شنبه 24 بهمن 1389, 18:27 عصر
الان این چه نوع فایلی هست؟

هر فايلي كه شما بخواين
ميتونه يك تصوير باشه
ميتونه فايل يك پروژه باشه
ميتونه يك فايل متني باشه
ميتونه ...
فرقي نداره
شما مي توانيد هر نوع پسوندي را براي فايلهاي پروژتون انتخاب كنيد
شايد بخواين يك اديتور فايل متني ايجاد كنيد. دليل نداره كه فقط يك فايلي با پسوند txt را باز كند
ميشه فايل برنامه با پسوند inyekpasvandtoolaniast باشد.

returnx
یک شنبه 24 بهمن 1389, 19:09 عصر
من فکر کردم این یک پسوند Valid (مخصوص یک شرکت بزرگ) هست..
درسته ، این کار که خودمون هم می کنیم اما نمی دونستم که میشه پسوند رو بیشتر از 3 کارکتر گذاشت...
ممنون ...

Restlesa
یک شنبه 24 بهمن 1389, 20:32 عصر
خوب بدیهی هست که تمام پسوند ها در ویندوز سه حرفی اند ، پس لازم چهار حرف(دات رو هم باید در نظر گرفت) آخر را با تابع mid نگیرید به اینصورت:

stri= Mid(string, 1, Len(string) - 4)

یعنی این کد برای دیگر پسوند ها ناقصه عمل می کنه
درست میگم ؟؟؟

IamOverlord
یک شنبه 24 بهمن 1389, 20:51 عصر
یعنی این کد برای دیگر پسوند ها ناقصه عمل می کنه
درست میگم ؟؟؟

بله، درسته، و حتی تعدادی پسوند زیر 3 حرف که معتبر هستند هم وجود دارد. مثلا: x.

محسن واژدی
دوشنبه 25 بهمن 1389, 07:58 صبح
الآن این کدی که آقا حامد در پست #8 دادن برای گرفتن پسوند بهترین گزینه است
چون دستور InStrRev از آخر دستور بدنبال کارکاتر "." سرچ میکنه و چون رشته های بعد از آخرین نقطه پسوند فایل رو تشکیل میدن به محض یافت شدن کارکتر نقطه هر چقدر رشته بعد از آن باشند به عنوان پسوند فایل شناخته میشوند حالا میخواهد یک کاراکتر باشد یا بیشتر
موفق باشید

Restlesa
دوشنبه 25 بهمن 1389, 10:11 صبح
از همه شما دوستان عزيز بابت راهنمايي هاتون ممنونم
:بوس::بوس::بوس::بوس::بوس::بوس: