いくつかの値をテキスト ファイルに出力するプログラムを 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 桁のアカウント番号を表示するためにファイル名を検索して、このコードをよりスマートにする必要がある理由です。
これが可能かどうか教えてください。ご不明な点がございましたら、お気軽にお問い合わせください。