删除文本文件中的额外空间

我正在创build一个文本文件,并将一些预先生成的Excel数据复制到其中。 它工作正常。 但是输出结果如下所示:

MGSSP:IMSI= 40211xxxx ; MGSSP:IMSI= 40211xxxx ; MGSSP:IMSI= 40211xxxx ; ... 

我想摆脱=和之前的空格; 。 这是欲望输出应该是这样的:

 MGSSP:IMSI=40211xxxx; MGSSP:IMSI=40211xxxx; MGSSP:IMSI=40211xxxx; ... 

我正在使用下面的代码:

 If My.Computer.FileSystem.FileExists("C:\Temp\mgssp_script.txt") Then Dim proc As Process = Process.Start("notepad.exe", "C:\Temp\mgssp_script.txt") System.Threading.Thread.Sleep(250) SendKeys.Send("^v") Else Dim file As System.IO.FileStream file = System.IO.File.Create("C:\Temp\mgssp_script.txt") file.Close() Dim proc As Process = Process.Start("notepad.exe", "C:\Temp\mgssp_script.txt") System.Threading.Thread.Sleep(250) SendKeys.Send("^V") file.Close() End If 

您可以使用System.Windows.Forms命名空间中的Clipboard类将剪贴板数据获取到您的程序中。

如果这不是一个winforms应用程序,则必须添加对System.Windows.Forms的引用,并在代码中包含一个Imports语句: Imports System.Windows.Forms
此外,我的代码使用System.Text.RegularExpressionsRegEx类,所以你将不得不导入。

这段代码将把剪贴板数据存入你的程序中,replace空格,并将改变后的string设回剪贴板。

 Dim ClipBoardlData As String If Clipboard.ContainsText() Then ClipBoardlData = Clipboard.GetText() Dim re As Regex = New Regex("=\s+") ' for the = and spaces after it ClipBoardlData = re.Replace(ClipBoardlData, "=") re = New Regex("\s+;") ' for the spaces before the ; ClipBoardlData = re.Replace(ClipBoardlData, ";") Clipboard.SetText(ClipBoardlData) End If 

之后,您可以继续使用您必须打开记事本应用程序的代码。

佐哈尔的代码中的一点变化对我来说是个诡计。 这里是代码:

 Dim ClipBoardlData As String If Clipboard.ContainsText() Then ClipBoardlData = Clipboard.GetText() ClipBoardlData = ClipBoardlData.Replace("= 4", "=4") ' Fixed that line. Dim re As Regex = New Regex("\s+;") ClipBoardlData = re.Replace(ClipBoardlData, ";") Clipboard.SetText(ClipBoardlData) End If