Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: Опять MSComm Добавлено: 14.04.04 11:26  

Автор вопроса:  Ra$cal | Web-сайт: www.rascalspb.narod.ru | ICQ: 8068014 

Вопрос №1: сколько байт можно за один раз передать через Output

Вопрос №2: как открывать большие файлы(через Binary очень быстро, но потом проблемы с передачей возникают - как передать байтовый массив)

Вопрос №3: кто какими способами передаёт куски (открываю файл как Binary, потом читаю по 512 байт, конвертю их в текст Chr(), и отсылаю (теоретически, до практики ещё не дошёл), потом беру следующий кусок

Вопрос №4: почему модем поднимает трубку сам только после второго звонка (тоесть человек позвонил, положил трубку, потом опять позвонил)

Ответить

  Ответы Всего ответов: 15  

Номер ответа: 1
Автор ответа:
 crackoff



ICQ: 156165990 

Вопросов: 12
Ответов: 229
 Профиль | | #1 Добавлено: 14.04.04 13:54

1. Столько, сколько сможет принять приемнмк.

3. В принципе, правильно

4. Надо давать модему команду ATS0=1.

Вот кусок программы, которым пользуюсь я:

'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

''Модуль mdlRModem

''(c) - Олег Креков, 2003

'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

Option Explicit

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

''Процедура инициализации модема''''''''''''''''''''''''''''''''''''''

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

Public Sub InitModem()

Dim SettString As String

On Local Error Resume Next

MSComm1.CommPort = 1

SettString = 4800,N,8,2

MSComm1.Settings = SettString

MSComm1.InputLen = 0

MSComm1.PortOpen = True

End Sub

'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

''Процедура для передачи данных в модем''''''''''''''''''''''''''''''''''''''''

'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

Sub SendToModem()

On Local Error Resume Next

Dim j As Long, s As String

MSComm1.RTSEnable = True

s = ""

For j = 0 To DataOut(1) - 1

s = s & Chr(DataOut(j))

Next j

MSComm1.Output = s

MSComm1.RTSEnable = False

Do

DoEvents

Loop While MSComm1.CommEvent = 1

End Sub

'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

''Процедура для чтения данных из модема''''''''''''''''''''''''''''''''''''

'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

Function ReadFromModem() As Boolean

On Local Error Resume Next

Dim Debugs, ff As Long

Dim s As String, i As Integer, j As Integer

If MSComm1.CTSHolding = False Then Exit Function

MSComm1.RTSEnable = False

s = MSComm1.Input

If Len(s) > 0 Then

For i = 0 To Len(s) - 1

DataIn(i) = CByte(Asc(Mid(s, i + 1, 1)))

Next i

ReadFromModem = True

Else

ReadFromModem = False

End If

End Function

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

''Процедура для ожидания данных с модема

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

Sub WaitFromModem()

Dim t0 As Single, dummy As Integer

t0 = Timer

Do While Timer - t0 < 10 Or MSComm1.CommEvent = 0

dummy = DoEvents()

If Timer < t0 Then

t0 = t0 - CLng(24) * CLng(60) * CLng(60)

End If

Loop

Do While Timer - t0 < 10 Or MSComm1.CommEvent = 2

dummy = DoEvents()

If Timer < t0 Then

t0 = t0 - CLng(24) * CLng(60) * CLng(60)

End If

Loop

End Sub

Ответить

Номер ответа: 2
Автор ответа:
 Ra$cal



ICQ: 8068014 

Вопросов: 18
Ответов: 817
 Web-сайт: www.rascalspb.narod.ru
 Профиль | | #2
Добавлено: 16.04.04 10:15

4) Действительно помогло

1) Когда я пытался передать 5 кило не дощло ни одного байта. Так от чего зависит размер приёмника

А в куске нельзя переписываться, пока идёт перекачка. А так всё мне очень помогло

Ответить

Номер ответа: 3
Автор ответа:
 Ra$cal



ICQ: 8068014 

Вопросов: 18
Ответов: 817
 Web-сайт: www.rascalspb.narod.ru
 Профиль | | #3
Добавлено: 17.04.04 10:28

Ещё вопросы появились:

5) Как в ричтекстбокс добавлять строчки разных цветов??? Попробуйте сделать - если у кого получится, срочно сообщите!!!

6) Наконец дело дошло до практики, но при отправке 512 байт рич показывал сначала первые примерно 150 байт, потом, несмотря на то, что в программе стоит r1.textr=r1.text & Bufer (где буфер данные с модема), данные затираются новыми. Не подскажите, в чём дело??????? Мне позарез нужно!!!!!!!!!!!!!!!

Ответить

Номер ответа: 4
Автор ответа:
 Ra$cal



ICQ: 8068014 

Вопросов: 18
Ответов: 817
 Web-сайт: www.rascalspb.narod.ru
 Профиль | | #4
Добавлено: 19.04.04 10:38

Ну и чё никто не отвечает. Как простые вопросы возникают, так сразу постов 20, а как интересный и непростой вопросец - и все играют в молчанку.

Ответить

Номер ответа: 5
Автор ответа:
 LamerOnLine



ICQ: 334781088 

Вопросов: 108
Ответов: 2822
 Профиль | | #5 Добавлено: 19.04.04 11:48

Насчет RTB - я уже постил это на форуме. Делай так:

Private Sub Form_Load()

RichTextBox1.SelStart = Len(RichTextBox1.Text)

RichTextBox1.SelColor = vbGreen

RichTextBox1.SelText = "Green" & vbCrLf

RichTextBox1.SelStart = Len(RichTextBox1.Text)

RichTextBox1.SelColor = vbRed

RichTextBox1.SelText = "Red" & vbCrLf

End Sub

Ответить

Номер ответа: 6
Автор ответа:
 LamerOnLine



ICQ: 334781088 

Вопросов: 108
Ответов: 2822
 Профиль | | #6 Добавлено: 19.04.04 12:04

Во первых, r1.textr=r1.text & Bufer работать не может, поскольку свойства textr нет.

Во вторых, это скорее всего у тебя где-то ошибка в коде.

В третьих, все TextBox'ы неадекватно реагируют на Null-Terminated strings, RTB в этом плане постабильнее, но использовать их крайне не рекомендую.

В четвертых, как я уже писал, используй лучше SelStart и SetText.

Ответить

Номер ответа: 7
Автор ответа:
 Artificial Intelligence



ICQ: 275368971 

Вопросов: 8
Ответов: 131
 Профиль | | #7 Добавлено: 19.04.04 16:04

Буфер приема - InBufferSize

Буфер передачи - OutBufferSize

Размер OutBufferSize определяет сколько байт можно впихнуть

в порт за один раз, так наверное.

Ответить

Номер ответа: 8
Автор ответа:
 LamerOnLine



ICQ: 334781088 

Вопросов: 108
Ответов: 2822
 Профиль | | #8 Добавлено: 20.04.04 08:51

Offtopic: предложения к администраторам форума - может все же сделать защиту от дублирующихся сообщений? Тут скоро все в спаме погрязнет!

Ответить

Номер ответа: 9
Автор ответа:
 Ra$cal



ICQ: 8068014 

Вопросов: 18
Ответов: 817
 Web-сайт: www.rascalspb.narod.ru
 Профиль | | #9
Добавлено: 20.04.04 11:01

to AI: Спасибо. Это то, что нужно.

to LamerOnLine: Спасибо. Ща буду эксперементировать

Ответить

Номер ответа: 10
Автор ответа:
 Павел



Администратор

ICQ: 326066673 

Вопросов: 368
Ответов: 5968
 Web-сайт: www.vbnet.ru
 Профиль | | #10
Добавлено: 20.04.04 11:14
Делаем. В ASP .Net версии точно будет... В нынешней версии колупаться
не вижу смысла...

Ответить

Номер ответа: 11
Автор ответа:
 Ra$cal



ICQ: 8068014 

Вопросов: 18
Ответов: 817
 Web-сайт: www.rascalspb.narod.ru
 Профиль | | #11
Добавлено: 21.04.04 10:47

to LameOnLine: Большое спасибо. Давно искал, и вот нашёл.

to Павел(раз уж ты рядом :) Опять письма не приходят. Что же такое???

Ответить

Номер ответа: 12
Автор ответа:
 Павел



Администратор

ICQ: 326066673 

Вопросов: 368
Ответов: 5968
 Web-сайт: www.vbnet.ru
 Профиль | | #12
Добавлено: 21.04.04 13:47
Буквально через минуту исправлю... При переходе на Win2003 почему-то
название классов CDO сменилось, поэтому пиьсма не идут.

Ответить

Номер ответа: 13
Автор ответа:
 Павел



Администратор

ICQ: 326066673 

Вопросов: 368
Ответов: 5968
 Web-сайт: www.vbnet.ru
 Профиль | | #13
Добавлено: 21.04.04 13:50
Done. Плиз, протестить.

Ответить

Номер ответа: 14
Автор ответа:
 Ra$cal



ICQ: 8068014 

Вопросов: 18
Ответов: 817
 Web-сайт: www.rascalspb.narod.ru
 Профиль | | #14
Добавлено: 23.04.04 10:45

Раз, два, три. Проверка связи :)

Ответить

Номер ответа: 15
Автор ответа:
 Ra$cal



ICQ: 8068014 

Вопросов: 18
Ответов: 817
 Web-сайт: www.rascalspb.narod.ru
 Профиль | | #15
Добавлено: 24.04.04 10:32

Письмо дошло. Всё работает. Видите, сколько сразу проблем решили =)

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам