PDA

View Full Version : سوال: بهینه کردن کد جدا کردن آخرین قسمت یک رشته



JaVa
سه شنبه 17 بهمن 1391, 18:05 عصر
سلام.

من با استفاده از کد زیر تونستم رشته زیر رو تجزیه کنم و آخرین قسمتش(amoozesh) رو بدست بیارم :

"\\MRG-PC\Users\MRG\Desktop\amoozesh"

Dim FBD As New FolderBrowserDialog
Dim str As String
Dim i As Integer
Dim parts() As String
Dim strEnd As String

str = "\\MRG-PC\Users\MRG\Desktop\amoozesh"
parts = Split(str, "\")

For i = 0 To parts.GetUpperBound(0)
strEnd = parts(i)
Next

MessageBox.Show(strEnd)

End Sub

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

asghar2008
سه شنبه 17 بهمن 1391, 19:15 عصر
سلام

فک کنم با Regex بهتر بشه نوشت.

shahryari
سه شنبه 17 بهمن 1391, 21:58 عصر
با سلام
اين به ذهنم رسيد ...
Private Function GetlastItem(ByVal txt As String) As String
If txt.IndexOf("\"c) = -1 Then Return String.Empty
Return txt.Substring(txt.LastIndexOf("\"c) + 1)
End Function

Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
MsgBox(GetlastItem("\\MRG-PC\Users\MRG\Desktop\amoozesh"))
End Sub

JaVa
سه شنبه 17 بهمن 1391, 22:19 عصر
یه رشته دارم به شکل زیر :

"C:\Users\MRG\Desktop\aaaaaaa\KonKore\1.PDF"

این رشته باید در بانک ذخیره بشه. و کامپیوتر کلاینت هم باید به شکل زیر به فایل دستریب داشته باشه.

"\\نام کامپیوتر سرور\aaaaaaa\KonKore\1.PDF"

چطور باید این قسمت حذف بشه :

"C:\Users\MRG\Desktop"

با تشکر

shahryari
سه شنبه 17 بهمن 1391, 22:24 عصر
اين هم از اين:
Dim s_1 As String = "C:\Users\MRG\Desktop\aaaaaaa\KonKore\1.PDF"
Dim s_2 As String = s_1.Replace("C:\Users\MRG\Desktop", "\\نام کامپیوتر سرور")
MsgBox(s_2)

ديگه؟؟؟

JaVa
سه شنبه 17 بهمن 1391, 22:27 عصر
اين هم از اين:
Dim s_1 As String = "C:\Users\MRG\Desktop\aaaaaaa\KonKore\1.PDF"
Dim s_2 As String = s_1.Replace("C:\Users\MRG\Desktop", "\\نام کامپیوتر سرور")
MsgBox(s_2)

ديگه؟؟؟

نه!!!!!

این فسمت متغیره : روی هر سیستمی یه چیزه برای خودش اون aaaaaaa ثابته

"C:\Users\MRG\Desktop"

shahryari
سه شنبه 17 بهمن 1391, 22:30 عصر
كد بالا اين رو ميگيره

"C:\Users\MRG\Desktop\aaaaaaa\KonKore\1.PDF"
اين رو برميگردونه

"\\نام کامپیوتر سرور\aaaaaaa\KonKore\1.PDF"
-----------------------
مگه اينو نميخواستي؟؟؟

JaVa
سه شنبه 17 بهمن 1391, 22:33 عصر
نه متاسفانه.

این "C:\Users\MRG\Desktop متغیره . روی هر سیستمی می تونه یه مقدار باشه. از قسمت \aaaaaaa\KonKore\1.PDF" ثابته.

shahryari
سه شنبه 17 بهمن 1391, 22:38 عصر
منظرتون اين بود؟
Dim st As String = My.Computer.FileSystem.SpecialDirectories.Desktop
Dim s_1 As String = st & "\aaaaaaa\KonKore\1.PDF"
Dim s_2 As String = s_1.Replace(st, "\\نام کامپیوتر سرور")
MsgBox(s_2)

JaVa
سه شنبه 17 بهمن 1391, 22:44 عصر
آقا شهریار یه دنیا ممنون. از لطفتون.

نگاه کنید حالت های مختلف:

"C:\Users\MRG\Desktop\aaaaaaa\Varjeshe\2.PDF"

"E:\aaaaaaa\Varjeshe\2.PDF"

"F:\BankDigital\aaaaaaa\Varjeshe\2.PDF"

"D:\Folder\aaaaaaa\Varjeshe\2.PDF"

shahryari
سه شنبه 17 بهمن 1391, 22:48 عصر
توضيح بيشتربده ؟؟؟ :متفکر:
:عصبانی++:

JaVa
سه شنبه 17 بهمن 1391, 22:57 عصر
توضيح بيشتربده ؟؟؟ :متفکر:
:عصبانی++:

نگاه کن هر چیزی قبل از \aaaaaaa\ باید پاک بشه. یعنی رشته از این حالت :

"C:\Users\MRG\Desktop\aaaaaaa\Varjeshe\2.PDF"

به این حالت تبدیل بشه :

\aaaaaaa\Varjeshe\2.PDF"


تموم شد رفت.:چشمک:

mc_laren
سه شنبه 17 بهمن 1391, 23:08 عصر
Dim Str1 As String = "E:\aaaaaaa\Varjeshe\2.PDF"
MsgBox(Str1.Substring(Str1.IndexOf("aaaaaaa"), Str1.Length - Str1.IndexOf("aaaaaaa")))