• 0

[VB.NET] Regex.Match write line to text file.


Question

I am reading the StandardOutput of a process to a string and would like to match certain text and write the full line to a text file.

For example:

Filename: file1

ID = ID100GH

Version = 1.00

Size: 251,088 bytes

I want it to read the standard output and write the entire line if it matches say ID or Version on separate lines to a text file.

4 answers to this question

Recommended Posts

  • 0

not sure if this is what you're looking for and my vb.net is a little rusty (and i hate the syntax) but this might help.


Dim TestString As String = "Filename: file1" & vbCrLf &
"ID = ID100GH" & vbCrLf &
"Version = 1.0" & vbCrLf &
"Size: 251,088 bytes"

Dim PatternString As String = "ID = (.*)"

Dim Result As Match = Regex.Match(TestString, PatternString, RegexOptions.None)

If (Result.Captures.Count > 0) Then
Dim Test As String = Result.Captures(0).Value
End If
[/CODE]

or in C#

[CODE]
String Content = @"Filename: file1
ID = ID100GH
Version = 1.00
Size: 251,088 bytes";

String PatternMatcher = @"ID = (.*)";
Match RegexMatcher = Regex.Match(Content, PatternMatcher, RegexOptions.None);

if (RegexMatcher.Captures.Count > 0)
{
String Result = RegexMatcher.Captures[0].Value;
}
[/CODE]

This is an example fyi. Replace TestString with your StdOutput data, etc.

  • 0

Hmm, maybe I could use something like this:


Dim value As String = "ID = ID100GH"
If value.StartsWith("ID") Then
WriteLine
End If
[/CODE]

EDIT:

I think I found what I need

[CODE]


Dim output = New StringBuilder()

' Read the lines from FileName into an array of strings. '
Dim input = File.ReadAllLines(FileName)

For Each line in input

If line.StartsWith("ID") OrElse
line.StartsWith("Version") Then

output.AppendLine(line)

End If

Next
[/CODE]

Edited by DPyro
  • 0

Ok that didn't seem to work :/

This works but now I need to write it to a file:


For Each line As String In txtOutputLog.Lines
If line.StartsWith("ID") OrElse
line.StartsWith("Version") Then
txtOutputLog.Text += line & vbCrLf
End If
Next
[/CODE]

Edited by DPyro
  • 0

For reference, here is my final code:


Public out as string
While output.HasExited = False
Dim sLine As String = output.StandardOutput.ReadLine
If (Not String.IsNullOrEmpty(sLine)) Then
out &= sLine & "~"
End If
Application.DoEvents()
End While
.WaitForExit()
.Close()
[/CODE]

[CODE]
Dim swriter As StreamWriter
Dim strOutput As String = (Application.StartupPath & "\" & output & ".txt")
For Each line As String In out.Split("~")
swriter = File.AppendText(strOutput)
If line.StartsWith("ID") OrElse
line.StartsWith("Version") Then
swriter.WriteLine(line)
End If
swriter.Close()
Next
out = ""
txtOutputLog.Text = My.Computer.FileSystem.ReadAllText(strOutput) & vbCrLf & "Output file saved to: " & vbCrLf & strOutput
[/CODE]

This topic is now closed to further replies.
  • Recently Browsing   0 members

    • No registered users viewing this page.
  • Posts

    • The Trump administration doesn't want you to use OpenAI's GPT-5.6 without its approval by David Uzondu Image via @realDonalTrump (X) As OpenAI prepares the release of its next model, GPT 5.6, the White House has instructed the company to limit the distribution of the software to a small group of government-approved partners instead of the general public, as it has done with previous releases. According to The Information, OpenAI Chief Executive Officer Sam Altman sent an internal memo to staff on Thursday explaining that the federal government will approve access "customer by customer" during an initial preview phase. Altman noted in the communication that this restrictive rollout is "not [their] long-term model" for software deployment, and the company plans to work toward a "more sustainable" distribution method later. CNN said that both OpenAI and the Trump administration view the capabilities of GPT 5.6 on the same level as Anthropic's Mythos and that government officials intend to "collaborate with frontier AI labs to develop shared approaches for addressing the challenges of scaling this technology." The latest restriction comes just weeks after the US Commerce Department decided to restrict Fable, a version of Mythos with extra safety "guardrails" to prevent users from exploiting software vulnerabilities. Not long after the release, though, researchers at Amazon found a way to bypass these restrictions, prompting an aggressive response from federal authorities. The government ordered Anthropic to cut off access for non-US citizens located outside the US, non-US citizens living inside the US, and incredibly, even Anthropic's own foreign-born employees. Anthropic now appears to be building a workaround to resolve this compliance block with an update to its Privacy Policy that introduces a category called "Verification Data" to handle KYC and Digital IDs. This setup could mandate digital identity checks to filter users by nationality, requiring a government-issued ID and facial biometric data. Who knows? Maybe in the future, you would have to scan your US Passport or State ID to prove your citizenship before you are allowed to chat with Fable 5 (or any other model).
    • When Windows 7 was released I created an AutoHotkey script that uses Alt+` as a keyboard shortcut to move a window across monitors. I have been using that script for over 15 years and this is the first time I have come across another app that uses the same shortcut!
    • I called it last year that they wouldn't end support when they said there would. There are too many people still on Windows 10 waiting for something better to upgrade to and 11 ain't it! The recent promises of fixing Windows 11's many problems is nice, but unless they deliver on those promises in a big way then I expect customers will still want to stick with 10.
    • Full ACK. I went too far adressing your post specifically. And as you said, it up to us customers as participant of the market dynamic as it happens to decide whether we spend our money on a product or not. The responsibility is to the company. In case of this price hike one could assume that MS is expecting or even starting to see a new interest in XBox hardware so they want to avoid losses per unit sold. I find it fair enough that they granted a period in which everyone interested could grab a unit for the current price (Amazon.de has a reliable stock of XBox Series X digital, which I bought last December after having sold my day one Series X a year ago). It is not that they cash up their customers starting on Monday. Cheers and let's cling to our perfectly fine hardware as long as we deem it worthy in relation to purchasing something new!
  • Recent Achievements

    • Week One Done
      xvvxcvv earned a badge
      Week One Done
    • One Month Later
      xvvxcvv earned a badge
      One Month Later
    • Enthusiast
      Xonos went up a rank
      Enthusiast
    • Conversation Starter
      Admir earned a badge
      Conversation Starter
    • First Post
      The_Focal_Point earned a badge
      First Post
  • Popular Contributors

    1. 1
      +primortal
      414
    2. 2
      +Edouard
      170
    3. 3
      PsYcHoKiLLa
      129
    4. 4
      neufuse
      69
    5. 5
      Xenon
      68
  • Tell a friend

    Love Neowin? Tell a friend!