View Full Version : سوال: بهینه کردن کد جدا کردن آخرین قسمت یک رشته
  
JaVa
سه شنبه 17 بهمن 1391, 19: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, 20:15 عصر
سلام
فک کنم با Regex بهتر بشه نوشت.
shahryari
سه شنبه 17 بهمن 1391, 22: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, 23:19 عصر
یه رشته دارم به شکل زیر :
"C:\Users\MRG\Desktop\aaaaaaa\KonKore\1.PDF"
این رشته باید در بانک ذخیره بشه. و کامپیوتر کلاینت هم باید به شکل زیر به فایل دستریب داشته باشه.
"\\نام کامپیوتر سرور\aaaaaaa\KonKore\1.PDF"
چطور باید این قسمت حذف بشه :
"C:\Users\MRG\Desktop"
با تشکر
shahryari
سه شنبه 17 بهمن 1391, 23: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, 23: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, 23:30 عصر
كد بالا اين رو ميگيره
"C:\Users\MRG\Desktop\aaaaaaa\KonKore\1.PDF"
اين رو برميگردونه
"\\نام کامپیوتر سرور\aaaaaaa\KonKore\1.PDF"
-----------------------
مگه اينو نميخواستي؟؟؟
JaVa
سه شنبه 17 بهمن 1391, 23:33 عصر
نه متاسفانه. 
این "C:\Users\MRG\Desktop متغیره . روی هر سیستمی می تونه یه مقدار باشه. از قسمت \aaaaaaa\KonKore\1.PDF" ثابته.
shahryari
سه شنبه 17 بهمن 1391, 23: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, 23: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, 23:48 عصر
توضيح بيشتربده ؟؟؟  :متفکر:
:عصبانی++:
JaVa
سه شنبه 17 بهمن 1391, 23:57 عصر
توضيح بيشتربده ؟؟؟  :متفکر:
:عصبانی++:
 
نگاه کن هر چیزی قبل از \aaaaaaa\ باید پاک بشه. یعنی رشته از این حالت :
"C:\Users\MRG\Desktop\aaaaaaa\Varjeshe\2.PDF"
به این حالت تبدیل بشه :
\aaaaaaa\Varjeshe\2.PDF"
تموم شد رفت.:چشمک:
mc_laren
چهارشنبه 18 بهمن 1391, 00:08 صبح
Dim Str1 As String = "E:\aaaaaaa\Varjeshe\2.PDF"
        MsgBox(Str1.Substring(Str1.IndexOf("aaaaaaa"), Str1.Length - Str1.IndexOf("aaaaaaa")))
 
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.