PCDVD數位科技討論區

PCDVD數位科技討論區 (https://www.pcdvd.com.tw/index.php)
-   七嘴八舌異言堂 (https://www.pcdvd.com.tw/forumdisplay.php?f=12)
-   -   [請教] VB高手語法涵義 (https://www.pcdvd.com.tw/showthread.php?t=559866)

fsaa3dfx 2005-11-16 01:06 AM

[請教] VB高手語法涵義
 
小弟想 請教一下板上的VB高手

下面這行VB註解 有何涵義呢~? 假如要用中文註解 該如何解釋較妥當

Text.Text = Winsock1(i).RemoteHostIP & ":" & str & vbCrLf & Text.Text

因為友人請小弟幫忙...小弟對這方面不太熟悉 網路找到的...也不太了解


所以想請教一下是否有高手能解惑 感激不盡:)

teszd 2005-11-16 01:16 AM

text.text的內容變成由以下內容連接
Winsock1(i).RemoteHostIP後接:後接str後接vbCrLf後接原來的內容(Text.Text)
就是這樣....怎麼潤飾自己想

這種問題執行完給它顯示一下就知道了,我都這樣

fsaa3dfx 2005-11-16 01:23 AM

引用:
作者teszd
text.text的內容變成由以下內容連接
Winsock1(i).RemoteHostIP後接:後接str後接vbCrLf後接原來的內容(Text.Text)
就是這樣....怎麼潤飾自己想

這種問題執行完給它顯示一下就知道了,我都這樣



嗯 ...您好請問 如果要用中文註解潤飾的話 該如何回答呢...?

對方就是問我中文 可是我不曉得該如何解釋 因為我對這方面不是在行

所以...
:think:

rolandshiue 2005-11-16 01:27 AM

貼一小行是怎樣
Text.Text = Winsock1(i).RemoteHostIP & ":" & str & vbCrLf & Text.Text

應該是個迴圈吧
把winsock1所有的ip顯示到text上

fsaa3dfx 2005-11-16 01:49 AM

引用:
作者rolandshiue
貼一小行是怎樣
Text.Text = Winsock1(i).RemoteHostIP & ":" & str & vbCrLf & Text.Text

應該是個迴圈吧
把winsock1所有的ip顯示到text上



我也不曉得 對方就是請問我這行VB語法 我不是很在行 所以才會上來問問...

下面是原始語法 不過他只問我這行

Text3.Text = Winsock1(i).RemoteHostIP & ":" & str & vbCrLf & Text3.Text

Private Sub Winsock1_DataArrival(Index As Integer, ByVal bytesTotal As Long)
Dim str As String
Winsock1(Index).GetData str

Text3.Text = Winsock1(i).RemoteHostIP & ":" & str & vbCrLf & Text3.Text

For i = 1 To 30
If Winsock1(i).State = sckConnected Then
Winsock1(i).SendData str
DoEvents
End If
Next i

End Sub

不過還是謝謝您的回答~

diolin 2005-11-16 09:34 AM

大概看一下, 這似乎是聊天室的 code , 不過有問題的那一行的 i 應該改成 index

大意是將 "client IP:文字" 附加在 Text3 的最上面 (你要問的那一行)
並將這些文字送給其它 client (下面的 code)

November Rain 2005-11-16 10:56 AM

小的不才,不過還沒聽過程式碼需要用中文「翻譯」的,連參考書也沒這樣做。
頂多就是「加上註解」罷了。了解它的作用,以自已懂的方式去註解,不就好了嗎?

我不寫 VB,我寫 Delphi,可是這段程式碼,我想我應該也看得懂,那就是:

Winsock1_DataArrival 是由其他程序呼叫的子程序,藉由被傳入的 Index 參數,給 Winsock1.GetData 取得 Winsock1 的相關資訊並 assign 給 str 後,將 Winsock1.RemoteHostIP 及 str 累加到 Text3 元件的 Text 屬性。
接著再以30次周期的迴圈做判斷,假如 Winsock1(i).State = sckConnected (應意為連線狀態),就以 Winsock1(i).SendData 方法,傳出 str,再做 DoEvents (目的不明)。
註:由於本人不是很了解 VB 元件的方法,與變數的相對位置,我只能猜測此 procedure 的目的來說了。

不過最後,我還是覺得,程式碼比多餘的中文敘述,簡單明瞭多了... :D

kyougi 2005-11-16 11:34 AM

doevents就是強制vb必需完成以上的事才可以繼續

diolin 2005-11-17 10:18 AM

Doevents 跟你說的不太一樣哦~
Doevents 是會暫停一下下, 釋放控制權出來給作業系統

所以當你在跑迴圈時, 如果不用 Doevents , 這樣系統會 handle 在那邊, 都沒法回應你的操作, 一定要等回圈跑完, 如果加入 Doevents, 就可以讓作業系統處理其它的事件


所有的時間均為GMT +8。 現在的時間是06:11 AM.

vBulletin Version 3.0.1
powered_by_vbulletin 2025。