删除文本文件中多余的 space
Remove extra space in text file
我正在创建一个文本文件并将一些预先生成的 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
class 将剪贴板数据获取到您的程序中。
如果这不是 winforms 应用程序,您将必须添加对 System.Windows.Forms
的引用并在您的代码中包含一个 Imports
语句:Imports System.Windows.Forms
.
此外,我的代码在 System.Text.RegularExpressions
中使用 RegEx
class,因此您也必须导入它。
此代码会将剪贴板数据获取到您的程序中,替换空格,并将更改后的字符串设置回剪贴板。
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
之后您可以继续使用打开记事本应用程序所必须的代码。
我对 Zohar 的代码稍作改动就成功了。这是代码:
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
我正在创建一个文本文件并将一些预先生成的 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
class 将剪贴板数据获取到您的程序中。
如果这不是 winforms 应用程序,您将必须添加对 System.Windows.Forms
的引用并在您的代码中包含一个 Imports
语句:Imports System.Windows.Forms
.
此外,我的代码在 System.Text.RegularExpressions
中使用 RegEx
class,因此您也必须导入它。
此代码会将剪贴板数据获取到您的程序中,替换空格,并将更改后的字符串设置回剪贴板。
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
之后您可以继续使用打开记事本应用程序所必须的代码。
我对 Zohar 的代码稍作改动就成功了。这是代码:
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