如果只是末尾的空行,直接用Trim方法就可以了
專注于為中小企業(yè)提供成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)永勝免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動(dòng)了成百上千家企業(yè)的穩(wěn)健成長(zhǎng),幫助中小企業(yè)通過(guò)網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。
Dim str As String = My.Computer.FileSystem.ReadAllText("d:\text.txt").Trim
'上面的d:\text.txt文件中末尾有很多空行,用了Trim方法后就把后面的空行都去除了
MsgBox(str)'這里可以看到
Len(String) 返回的是 String 的字符數(shù)。
Len(Integer(或其他數(shù)值類型)) 返回的是這個(gè)數(shù)值類型的字節(jié)長(zhǎng)度。
Trim(100),Trim() 后的結(jié)果已經(jīng)轉(zhuǎn)換成 String 字符串類型了。
而 100 這是一個(gè) Integer 類型的數(shù),Len 返回的是一個(gè) Integer 所占的字節(jié)數(shù),也就是4。
你要是想返回 100 這個(gè)字符串的字符長(zhǎng)度,應(yīng)該用雙引號(hào)引上,Len("100")=3。
VB用winsock控件吧,網(wǎng)上例子太多了,你也可以看看書
用Winsock實(shí)現(xiàn)點(diǎn)對(duì)點(diǎn)通信
作者不詳
Winsock控件是VB5.0的新增功能,它解決了以往應(yīng)用VB編程時(shí)網(wǎng)絡(luò)中應(yīng)用程序之間無(wú)法實(shí)現(xiàn)點(diǎn)對(duì)點(diǎn)通信的難題。Winsock使用的TCP協(xié)議和UDP協(xié)議允許建立并保持一個(gè)到遠(yuǎn)程計(jì)算機(jī)上的連接,且可以在連接結(jié)束之前實(shí)時(shí)地進(jìn)行數(shù)據(jù)交換。用戶僅通過(guò)設(shè)置屬性并借助事件處理就能夠輕而易舉地連接到一個(gè)遠(yuǎn)程的計(jì) 算機(jī)上,而且只用兩個(gè)命令就可以實(shí)現(xiàn)數(shù)據(jù)交換。
使用TCP協(xié)議時(shí),如果需要?jiǎng)?chuàng)建一個(gè)客戶應(yīng)用程序,就必須識(shí)別服務(wù)器的名稱或IP地址。
應(yīng)用程序的通信端口隨時(shí)都將仔細(xì)監(jiān)測(cè)對(duì)方發(fā)出的消息,這是系統(tǒng)進(jìn)行可靠連接的保證。一旦連接發(fā)生,任何一方都可以通過(guò)SendData發(fā)送和接收數(shù)據(jù),并借助GetData把自己的數(shù)據(jù)分離出來(lái)。傳送數(shù)據(jù)時(shí),需要先設(shè)定客戶機(jī)的LocalPort屬性,服務(wù)器則只需要把RemoteHost屬性設(shè)定為客戶機(jī)以太網(wǎng)的地址,并設(shè)定與客戶機(jī)LocalPort屬性相同的端口地址, 借助SendData方法開始發(fā)送消息??蛻魴C(jī)則在GetData事件中通過(guò)DataArrival事件分離出發(fā)送的信息。
一個(gè)Winsock控件可以讓本地計(jì)算機(jī)連接到遠(yuǎn)程的計(jì)算機(jī)上,同時(shí)使用UDP或TCP協(xié)議,兩個(gè)協(xié)議都能創(chuàng)建客戶機(jī)和服務(wù)器應(yīng)用。
使用Winsock控件時(shí),通信的雙方需要選定相同的協(xié)議。TCP協(xié)議適用于傳送大容量、需要安全性保證的數(shù)據(jù)文件;而UDP協(xié)議適用于需要分別與很多下屬通信,或者建立的連接比較多且為時(shí)變的情況,特別是在數(shù)據(jù)量很小的時(shí)候。設(shè)定時(shí)可以使用Winsock1.Protocol =
sckTCPProtocol方法,首先要找到你的計(jì)算機(jī)的名稱,并把它添入Winsock的LocalHost屬性中。
創(chuàng)建一個(gè)應(yīng)用程序時(shí),首先要確定你建立的是客戶方應(yīng)用還是服務(wù)器服務(wù),只有建立的服務(wù)器應(yīng)用開始工作,并進(jìn)入監(jiān)聽狀態(tài)時(shí),客戶應(yīng)用程序才開始建立連接,進(jìn)入正常的通信狀態(tài)。筆者建立了一個(gè)應(yīng)用程序,它的功能是當(dāng)客戶方的鼠標(biāo)移動(dòng)時(shí),服務(wù)器應(yīng)用程序上能夠?qū)崟r(shí)顯示該鼠標(biāo)的位置。下面是建立服務(wù)器應(yīng)用的方法:
1.創(chuàng)建一個(gè)新的標(biāo)準(zhǔn)EXE文件;
2.加入一個(gè)Winsock控件;
3.加入如下代碼:
Private Sub Form Load()
tcpServer.LocalPort = 1001
tcpServer.Localhost = 〃servser〃
tcpServer.remotePort = 1002
tcpServer.Localhost = 〃klint〃
tcpServer.Listen
End Sub
′連接檢查
Private Sub tcpServer ConnectionRequest
(ByVal requestID As Long)
If tcpServer.State sckClosed Then
tcpServer.Close
tcpServer.Accept requestID
End Sub
′發(fā)送數(shù)據(jù)
Private Sub frmserver monsemove(x,y)
tcpServer.SendData 〃x〃 str(x)
tcpServer.SendData 〃y〃 str(y)
End Sub
建立客戶應(yīng)用的方法為:
1.創(chuàng)建一個(gè)新的標(biāo)準(zhǔn)EXE文件;
2.加入一個(gè)Winsock控件;
3.加入兩個(gè)TEXT框—— txt x和 txt y;
4.加入如下代碼:
Private Sub Form Load()
tcpServer.LocalPort = 1002
tcpServer.Localhost = 〃klint〃
tcpServer.remotePort = 1001
tcpServer.Localhost = 〃servser〃
tcpServer.Listen
End Sub
′連接檢查
Private Sub tcpklint ConnectionRequest
(ByVal requestID As Long)
If tcpklint.State sckClosed Then
tcpklint.Close
tcpklint.Accept requestID
End Sub
Private Sub tcpClient DataArrival
(ByVal bytesTotal As Long)
Dim strData As String
tcpklint.GetData strData
if left(strData,1)=〃X〃then
txt x.Text = strData
else
txt y.Text = strData
endif
End Sub
以上例程實(shí)現(xiàn)的是一個(gè)非常簡(jiǎn)單的點(diǎn)對(duì)點(diǎn)通信,在此基礎(chǔ)上略加改造,可以形成功能復(fù)雜的實(shí)時(shí)計(jì)算機(jī)網(wǎng)絡(luò)A-A交互通信系統(tǒng),用于控制、圖形仿真等。
使用UDP協(xié)議建立對(duì)等通信和通過(guò)TCP建立客戶/服務(wù)器通信的方法略有不同,它不需要建立客戶和服務(wù)器,而是建立對(duì)等通信。此過(guò)程通過(guò)以下幾步實(shí)現(xiàn):
1.設(shè)定Winsock的RemoteHost 屬性為一個(gè)通信的計(jì)算機(jī)名稱;
2.設(shè)定 RemotePort 為一個(gè)接口號(hào);
3.調(diào)用Winsock的Bind 事件綁定本地的接口號(hào)。具體設(shè)定方法為:
Private Sub Form Load()
With Winsock1
.RemoteHost= 〃PeerB〃
.RemotePort = 1001 ′遠(yuǎn)程連接號(hào)
.Bind 1002
′綁定的本地號(hào)
End With
End Sub
程序的其它部分與TCP方法類似,即通過(guò)SendData 和GetData 方法發(fā)送或提取數(shù)據(jù)。UDP和TCP協(xié) 議在使用中各有特點(diǎn),如果靈活使用,可以得到很好的效果。令人欣慰的是,VB5.0 中Winsock給我們提供了一種簡(jiǎn)便的數(shù)據(jù)傳送方法,使我們得以輕松地實(shí)現(xiàn)網(wǎng)絡(luò)點(diǎn)對(duì)點(diǎn)通信。
其實(shí)是起了作用的,只不過(guò)vbTab跟4個(gè)字符有關(guān)系,所以顯示的列,8的倍數(shù)個(gè)字符和不是8的倍數(shù)個(gè)字符之間就顯示得有差異了。
tab就是如果不夠4個(gè)字符就補(bǔ)齊4個(gè)字符的位置。 超過(guò)的話就是補(bǔ)齊4的整倍數(shù)個(gè)字符。
可以用Replace把他替換成空或別的字符:Vb的TAB表示方式為:vbTab 例:Replace(內(nèi)容,vbTab,"")