誰かが私がこれをフォーマットするのを手伝ってくれますか?テキストボックスに(日付は10222012です)
出力は次のようになります(日付は2012年10月22日)テキストはまだそこにあるはずですありがとうございます
誰かが私がこれをフォーマットするのを手伝ってくれますか?テキストボックスに(日付は10222012です)
出力は次のようになります(日付は2012年10月22日)テキストはまだそこにあるはずですありがとうございます
頭のてっぺんからいくつかのアプローチ。
テキストが1つの変数からのものである場合、次に例を示します。
Dim MyText As String = "The date is 10222012"
次に、文字列関数を使用して日付を取得し(常に8文字であると想定しますが、これは危険な想定となる可能性があります)、フォーマットして元に戻すことができます。
Dim MyDate As String = CType(MyText.Substring(MyText.Length - 8), DateTime).ToString("MM/dd/yyyy")
MyText = MyText.Substring(0, MyText.Length - 8) & MyDate
一方、日付が別の変数、たとえばDateTime変数にある場合は、次のように実行できます。
Dim MyDateFormatted As String = MyDate.ToString("MM/dd/yyyy")
これを行うには他の方法があります。ここで重要なのは、日付を取得し、DateTime.ToStringメソッド(String)メソッドを介して目的の形式に変換することです。ここで、括弧内の形式文字列は、使用する形式を示します。
編集済み
これは、最初にコードを試さなかった場合に得られるものです...文字列「10222012」が有効な形式として認識されない場合は、これを行う別の方法があります。
Dim MyText As String = dRecord.Rows(i).Item(iCount).ToString
Dim MyDate As String = MyText.Substring(MyText.Length - 8)
MyDate = MyDate.SubString(0, 2) & "/" & MyDate.Substring(2, 2) & "/" & _
MyDate.Substring(4)
oSheet.Cells(x, iCount - 2) = MyText.Substring(0, _
dRecord.Rows(i).Item(iCount).Length - 8) & _
MyDate
それはもう少しブルートフォースで醜いですが、それはあなたを正しい方向に向かわせるはずです。同じ結果の使用Insert
(別の文字列演算子)を取得できる場合もありますが、それは同じように醜い場合があります。
この変換を頻繁に行う必要がある場合は、ヘルパーメソッド、さらには拡張メソッドに変換することをお勧めします。
2回目の編集
空白のレコードを簡単に確認できます。
Dim MyText As String = dRecord.Rows(i).Item(iCount).ToString
If Not String.IsNullOrEmpty(MyText) Then
' convert the format here
End If