こんにちは、これは本当に私を困惑させています。単純だと確信していますが、なぜそれが起こっているのかわかりません。
テキスト ファイルを読み込んで、データを抽出するための startpos と endpos を見つけています。私が抽出しているデータは - 「バージョンは 10.2.0.5.0 です」
私はそれをmsgboxできるので価値があります。そして、OraContents 文字列の上にマウスを置くとデバッグ中に、「バージョンは 10.2.0.5.0」と表示されますが、これは正しいです。
したがって、削除されるものをテストするためのメッセージボックスがいくつかあります...
問題は、この例のように、メイン コード スニペットのように OraContents をファイルに書き込もうとしたときです。OraContents に値が割り当てられていても、Null とエラーが表示されます。または、単に次のように言ってみました...
If OraContents = "version is 10.2.0.5.0" Then
MsgBox("Oracle found")
End If
OraContents が値と一致しないため、If ステートメントは無視されますが、それはスキップされます。
何が足りないの... : \
前もって感謝します。
私のコード..
Sub GetFiles()
Dim DirInfo As New DirectoryInfo(ProgramFiles & "Oracle\Inventory\logs")
For Each file As FileSystemInfo In DirInfo.GetFileSystemInfos()
Dim myFile = IO.Directory.GetFiles(ProgramFiles & "Oracle\Inventory\logs").OrderByDescending(Function(f) New FileInfo(f).LastWriteTime).First()
If InStr(file.FullName, "installActions") Then
MsgBox(myFile)
Dim testTxt As New StreamReader(myFile)
Dim allRead As String = testTxt.ReadToEnd()
testTxt.Close()
If InStr(allRead, "Oracle Universal Installer") Then
Dim OraContents As String
OraContents = allRead
Dim StartPos, EndPos As Integer
StartPos = OraContents.IndexOf("INFO: Oracle Universal Installer version is ")
EndPos = OraContents.IndexOf("INFO: Oracle Universal Installer version is ")
StartPos = StartPos + 32
EndPos = EndPos + 55
OraContents = OraContents.Substring(StartPos, EndPos - StartPos)
MsgBox(OraContents)
Test(OraContents) 'This is a check to make sure value is not Null..its not
System.IO.File.Create("c:\OracleVersion.txt")
Dim path As String = "c:\OracleVersion.txt"
Dim sw As StreamWriter
sw.WriteLine(OraContents)
sw.Close()
End If
MsgBox("Found")
Else
'MsgBox("Not Found")
End If
Next
End Sub