简体   繁体   中英

Visual Basic Replacing Part Of A Text File

Referencing this answer to a very similar question I'm wondering how I can expand this code to act as searching for a place holder and modifying the text after it:

Dim fileReader As String = My.Computer.FileSystem.ReadAllText("C:\test.txt").Replace("Number Remaining: [oldvalue]", "Number Remaining: [newvalue]")
My.Computer.FileSystem.WriteAllText("C:\test2.txt", fileReader, False)

Where oldvalue is the number remaining before the edit (which I don't always know, so can't include it in the search) and newvalue is a value that is calculated elsewhere in the code.

The values are both Double types.

Any help would be appreciated.

You can use a simple regular expression to match a simple number.

First, add System.Text.RegularExpressions to your imports at the top of the file.

Imports System.Text.RegularExpressions

Then you can use something like this:

Dim newValue As Double = 12.34 'or whatever
Dim fileText As String = My.Computer.FileSystem.ReadAllText("C:\test.txt")
fileText = Regex.Replace(fileText,
                         "Number Remaining: [0-9]+(\.[0-9]+)?", 
                         string.Format("Number Remaining: {0}", newValue))
My.Computer.FileSystem.WriteAllText("C:\test2.txt", fileText, False)

The regex [0-9]+(\\.[0-9]+)? means a digit ( [0-9] ), 1 or more times ( + ), optionally ( ? ) followed by a dot ( \\. ) and more digits.

If your number might be formatted differently, you will have to adjust the regex to suit.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM