X-BOND писал(а):Да, кстати, у Winsock есть ограничение (не помню точно, вроде около 5Kb) размера пересылаемого блока.
Sub SendFile(ByVal FN As String, ByVal StartPos As Long)
Dim FL As Long, POS As Long, LB As Integer, TB As Long, LP As Long
Dim TMP As String, TimeOut As Single
Dim R() As Byte ' !!!
Dim P As Long
Dim B As Integer
On Error GoTo 1
B = Val(OPT(6))
P = Val(OPT(5))
Close #1: Open FN For Binary Access Read As #1
FL = LOF(1)
LB = FL Mod B - 1
LP = FL - LB
SendDATA "SENDFILE:" & LTrim$(Str$(FL)), "&"
If WAD = 1 Then
ReDim R(B) As Byte
Else: GoTo E
End If
For POS = 1 To FL Step B
R:
If POS >= LP Then
ReDim R(LB) As Byte
Get #1, POS, R
Else: Get #1, POS, R
End If
SendDATA LTrim$(Str$(POS)), "#"
If WAD <> 1 Then GoTo E
SendDATA R
Select Case WAD
Case 2: GoTo R
Case 0, 3: GoTo E
End Select
Next POS
SendDATA "EOF:" & FN, "&"
E:
Close
Exit Sub
1:: Close: ErrINT
X-BOND писал(а):Я тоже так думал. Но в переменной String теряются определенные байты. (вроде все до 32).
[/code]
Private Sub Form_Load()
Do
Dim Str As String
Dim Numb As Byte
Randomize
Numb = Rnd * 32
MsgBox Numb, , "Номер символа"
Str = Chr(Numb)
MsgBox Asc(Str), , "Номер символа после хранения в String переменной"
Loop
End Sub
Сейчас этот форум просматривают: Yandex-бот и гости: 135