0

配列文字列から取り出したい文字を指定する方法はありますか? これは、以下のコードではありません。フォーラムはテキストとして気に入らなかっただけです。

For example:  abc1234blahblah  and I want to point from the left, characters [4-7] 
Character 4 = "1"
Character 5 = "2"
Character 6 = "3"
Character 7 = "4"

次に、それらを文字列「1234」に入れたいと思います

私が取り組んでいる真のアプリケーションでは、ファイルパスの最初のディレクトリは常にプロジェクト番号で始まるため、ジョブ番号を取得して VB 2010 のテキスト ボックスに入力します。例: Q:\2456_customer_name....\ file.xls もう一度番号を指定できるようにしたいのですが、メイン ディレクトリが常にジョブ番号で始まることがわかっている場合は、文字 [4-7] を指定して入力するだけで済みます。文字列。私は概念を知っていると思いますが、それをまとめるのに十分なほど VB を知りません。

どんな助けでも大歓迎です。

4

2 に答える 2

1

Substring 関数を使用できます。

Dim a = "abc1234blahblah"
Dim b = a.Substring(3, 4) ' b now contains "1234"

もっと考えてみると、ファイルがあるドライブが のような UNC パスになる可能性はあります\\MyServer\SomeShare\9876_CustomerName\file.xlsか? もしそうなら、数を抽出するのはもう少し難しいでしょう。ファイルを指定するすべての可能な方法を説明しようとしました:

Module Module1

    Function GetCustomerNumber(filename As String) As String
        Dim abspath = IO.Path.GetFullPath(filename)
        Dim dir = IO.Path.GetDirectoryName(abspath)
        Dim fileParentDirectory = dir.Split(IO.Path.DirectorySeparatorChar).Last
        Return fileParentDirectory.Substring(0, 4)
    End Function

    Sub Main()

        Dim a = "C:\5678_CustomerName\file.xls"
        Dim b = "\\se1234\Share001\5678_CustomerName\file.xls"
        Dim c = "\5678_CustomerName\file.xls"
        Dim d = ".\5678_CustomerName\file.xls"
        Dim e = "5678_CustomerName\file.xls"
        Console.WriteLine(GetCustomerNumber(a))
        Console.WriteLine(GetCustomerNumber(b))
        Console.WriteLine(GetCustomerNumber(c))
        Console.WriteLine(GetCustomerNumber(d))
        Console.WriteLine(GetCustomerNumber(e))

        Console.ReadLine()

    End Sub

End Module

すべての例で「5678」を出力します。

于 2012-10-19T17:27:31.850 に答える
0

正規表現が機能します

Dim numRegex As New Regex("\d+")
Dim number As String = numRegex.Match("abc1234blahblah").Value
于 2012-10-19T17:39:24.257 に答える