PDA

View Full Version : سوال: فیلتر فاصله در نام فایل openfiledialog در vb.net



ILYA20
یک شنبه 23 مهر 1396, 21:40 عصر
با سلام و درود

تو پروژه ام openfiledialog ، دکمه و تکست باکس هست

از طریق دکمه openfiledialog بعد از انتخاب فایل، نام و مسیر فایل در تکست باکس ذخیره میشه . حالا میخوام اون مسیری که دایرکتوری و نام فایل فاصله داشته باشه به کاربر خطا نشون بده که فاصله وجود داره و فایل انتخاب نشه یا اینکه فاصله ها رو اصلاح کنه.(بنده روی پروژه ای که کار میکنم نیازه که مسیر و نام فایل بدون فاصله باشه)

از چه دستوری برای فیلتر کردن فاصله در نام فایل و دایرکتوری باید استفاده کنم

در این مورد جستجو کردم به نتیجه نرسیدم

راهنمایی لطفا

hamidrezax1
یک شنبه 23 مهر 1396, 22:31 عصر
دوست عزیز شما میتونید بعد از گرفتن آدرس و قبل از ذخیره سازی مقدار فاصله رو Replace کنید و از بین ببرید
موفق باشید

ILYA20
یک شنبه 23 مهر 1396, 22:47 عصر
دوست عزیز شما میتونید بعد از گرفتن آدرس و قبل از ذخیره سازی مقدار فاصله رو Replace کنید و از بین ببرید
موفق باشید

بنده هم دنبال replace نام فایل هستم ولی اینجا یک مشکلی هست اینکه محصول ما عمومی هست اختلالی در دایرکتوری های کاربر ایجاد نمیکنه؟ مثلا یکی میخواد نام فایل یا دایرکتوریش فاصله داشته باشه اونوقت چی؟اونوقت ما بر خلاف دلخواه کاربر نام فایلش رو عوض میکنیم

همینطور در صورت مقدور دستور replace رو قرار بدید

سپاس از شما

hamidrezax1
دوشنبه 24 مهر 1396, 05:41 صبح
ببینید شما با این کار جلوی خواسته های کاربر رو می گیرید و نتیجه اون چیزی میشه که شما میخواهید نه کاربر(بعضی وقتها لازمه)اما درستور
Me.TextBox1 .Text =Me.TextBox1 .Text .Replace (" ","")

ILYA20
دوشنبه 24 مهر 1396, 09:26 صبح
ببینید شما با این کار جلوی خواسته های کاربر رو می گیرید و نتیجه اون چیزی میشه که شما میخواهید نه کاربر(بعضی وقتها لازمه)اما درستور
Me.TextBox1 .Text =Me.TextBox1 .Text .Replace (" ","")

این دستور فقط نام فایل رو در تکست باکس عوض میکنه و فرقی به حال آدرس اصلی و نام اصلی فایل نداره و موقع اجرای دستور ما خطای نشناختن آدرس فایل در پی سی میشه

به عبارتی نام اصلی فایل رو عوض نمیکنه و فقط نام فایل رو در تکست باکس اصلاح میکنه و این به درد نمیخوره

ROSTAM2
دوشنبه 24 مهر 1396, 11:17 صبح
حالا چرا نبايدفاصله داشته باشه ؟

ILYA20
دوشنبه 24 مهر 1396, 12:18 عصر
حالا چرا نبايدفاصله داشته باشه ؟

رفرنسی که ما برای اجرای دستور برای کار روی دستگاه استفاده میکنیم به نام فایل و فولدر حساسه و اگه نام و یا پوشه فاصله داشته باشه به عنوان دستور میشناسه نه به عنوان آدرس یا نام فایل ...

ROSTAM2
دوشنبه 24 مهر 1396, 13:00 عصر
رفرنسی که ما برای اجرای دستور برای کار روی دستگاه استفاده میکنیم به نام فایل و فولدر حساسه و اگه نام و یا پوشه فاصله داشته باشه به عنوان دستور میشناسه نه به عنوان آدرس یا نام فایل ...

شايد دستورالعمل مقدار آدرس داشته باشه تست كن( مقادير فاصله دار مثل آدرس بايد درون دابل كوتيشن قرار بگيره )
يعني براي آدرس از تابع Chr(34) استفاده كن

ILYA20
دوشنبه 24 مهر 1396, 14:24 عصر
شايد دستورالعمل مقدار آدرس داشته باشه تست كن( مقادير فاصله دار مثل آدرس بايد درون دابل كوتيشن قرار بگيره )
يعني براي آدرس از تابع Chr(34) استفاده كن

ما الا چطوری میتونیم به هنگام انتخاب فایل در openfiledialog ،فایل ها و دایرکتوری های فاصله دار رو فیلتر کنیم و کاربر نتونه انتخاب کنه و یه مسیج نشون بده که نام فایل یا پوشه فاصله داره .

ROSTAM2
دوشنبه 24 مهر 1396, 14:58 عصر
Dim Result AS DialogResult
Dim OFD As New OpenFileDialog With {.Filter = "All Files|*.*"}
With OFD
Restart: Result = .ShowDialog(Me)
If Result =Cancel Then Exit Sub
If Io.Path.GetFileNameWithoutExtension(.FileName).Con tains(Space(1)) Then
MsgBox ("پيام خطا...")
GoTo Restart
End If
End With

ILYA20
دوشنبه 24 مهر 1396, 22:11 عصر
Dim Result AS DialogResult
Dim OFD As New OpenFileDialog With {.Filter = "All Files|*.*"}
With OFD
Restart: Result = .ShowDialog(Me)
If Result =Cancel Then Exit Sub
If Io.Path.GetFileNameWithoutExtension(.FileName).Con tains(Space(1)) Then
MsgBox ("پيام خطا...")
GoTo Restart
End If
End With


سلام ممنون از شما

برای خط زیر ارور میده

http://s6.uplod.ir/i/00900/lez7j5vx17xf.png

ROSTAM2
سه شنبه 25 مهر 1396, 06:03 صبح
خوب اون كلمه Contains فاصله افتاده بين حروفش درستش كن.

ILYA20
سه شنبه 25 مهر 1396, 12:20 عصر
خوب اون كلمه Contains فاصله افتاده بين حروفش درستش كن.

ببخشید هواسم نبود بله خطا رفع شد ولی برای cancel خطا میگیره و وقتی متدش رو generate میکنم رفع میشه ولی موقع اجرا متدش رو خطا میگیره:افسرده:

ILYA20
سه شنبه 25 مهر 1396, 22:11 عصر
update :چشمک:

ILYA20
چهارشنبه 26 مهر 1396, 00:21 صبح
بجای CANCEL باید از عبارت "vbCancel" استفاده میکردیم کلا گیج کرده بود منو :لبخند:

مشکل حل شد سپاس از راهنمایی دوستان

ILYA20
چهارشنبه 26 مهر 1396, 01:33 صبح
دوستان عزیز با این روش فقط نام فایل رو بررسی میکنه در صورتی که بخوایم هم نام فایل و هم نام پوشه را بررسی کنه باید از چه دستوری استفاده کنیم ؟

ROSTAM2
چهارشنبه 26 مهر 1396, 06:32 صبح
IF FileNAme.Contains(Space(1)) Then ...