我正在创建一个文本文件并将一些预先生成的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
答案 0 :(得分:1)
您可以使用Clipboard
命名空间中的System.Windows.Forms
类将剪贴板数据导入您的程序。
如果这不是winforms应用程序,则必须添加对System.Windows.Forms
的引用,并在代码中添加Imports
语句:Imports System.Windows.Forms
。
此外,我的代码使用RegEx
中的System.Text.RegularExpressions
类,因此您也必须将其导入。
此代码将剪贴板数据导入程序,替换空格,并将更改后的字符串设置回剪贴板。
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
之后,您可以继续使用打开记事本应用程序的代码。
答案 1 :(得分:0)
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