2

いくつかの値をテキスト ファイルに出力するプログラムを VB.net で作成しようとしています。私はVB.netを初めて使用するので、しばらくお待ちください。

私がこれまでに持っているものは以下の通りです:

Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
    Dim str As String
    For Each File As String In System.IO.Directory.GetFiles(TextBox1.Text)
        str = str & File & "|" & System.IO.Path.GetFileNameWithoutExtension(File).Split("-")(0).Trim & "|" & System.IO.Path.GetFileNameWithoutExtension(File).Split("-")(0).Trim & "||" & DateTimePicker1.Text & "|" & Environment.NewLine
    Next

    System.IO.File.WriteAllText("C:\output\output.txt", str)

End Sub

button3 がクリックされたときの出力ファイル (output.txt) の結果は次のとおりです。

C:\DirectoryTest\Clients\2356851-Kathy Winkler - Family Investments.pdf|2356851|2356851||04/10/2013|

C:\DirectoryTest\Clients\58736 -Katrina Armon - Sandlewood Homes Co.pdf|58736|58736||04/10/2013|

C:\DirectoryTest\Clients\Karen Cooper - 001548 - Famtime.pdf|Karen Cooper|Karen Cooper||04/10/2013|

これまでのコードは、私がやりたいことを正確に実行します。唯一のことは、コードをよりスマートにしたいのですが、方法がわからないということです。以下のコードで、ファイル名に表示される 5 ~ 10 桁のアカウント番号のみを取得し、ファイル名にアカウント番号が存在しない場合にメッセージ ボックスを表示する方法はありますか?

System.IO.Path.GetFileNameWithoutExtension(File).Split("-")(0).Trim & "|" & System.IO.Path.GetFileNameWithoutExtension(File).Split("-")(0).Trim

出力の最後の行からわかるように…</p>

C:\DirectoryTest\Clients\Karen Cooper - 001548 - Famtime.pdf|Karen Cooper|Karen Cooper||04/10/2013|

…顧客名「Karen Cooper」が、口座番号が表示されるはずの両方の領域に表示されています。これが、他の 2 つの例に見られるように、ファイル名の後に 5 から 10 桁のアカウント番号を表示するためにファイル名を検索して、このコードをよりスマートにする必要がある理由です。

これが可能かどうか教えてください。ご不明な点がございましたら、お気軽にお問い合わせください。

4

4 に答える 4

1

ここにいくつかの簡単なロジックがあります....もちろん、最初にファイル名を見つけるようなことをすることができますが、ここに行きます

    Dim returnval As String = ""
    Dim s As String = "C:\DirectoryTest\Clients\Karen Cooper - 001548 - Famtime.pdf|Karen Cooper|Karen Cooper||04/10/2013|"
    For Each p As String In s

        If IsNumeric(p) Then
            returnval += p
        Else
            'MsgBox("no")
        End If
    Next

msgbox(returnval) はすべての数字 5-10 を保持します。これは、ここからどの程度具体的に取得したいかによって異なります

ファイル名を分割するには

 'This will extract and return the filename from the specified path and filename.
 '
 Dim filePath As String = "c:\MyDirectory\MYFile.txt"
 Dim slashPosition As Integer = filePath.LastIndexOf("\")
 Dim filenameOnly As String = filePAth.Substring(slashPosition + 1)

 MsgBox(filenameOnly)

 *FOUND AT LINK http://www.vbforfree.com/274/extract-and-retrieve-the-filename-from-a-path/*

次に、そこから文字列を好きなだけ操作します

于 2013-04-30T17:10:53.417 に答える
0

ファイル名はどうですか?

C:\DirectoryTest\Clients\Karen Cooper - 001548 - Famtime.pdf

かなり、そうあるべきです

C:\DirectoryTest\Clients\001548 - Karen Cooper - Famtime.pdf
于 2013-04-29T15:51:04.797 に答える