Страница: 1 |
Вопрос №1: сколько байт можно за один раз передать через Output Вопрос №2: как открывать большие файлы(через Binary очень быстро, но потом проблемы с передачей возникают - как передать байтовый массив) Вопрос №3: кто какими способами передаёт куски (открываю файл как Binary, потом читаю по 512 байт, конвертю их в текст Chr(), и отсылаю (теоретически, до практики ещё не дошёл), потом беру следующий кусок Вопрос №4: почему модем поднимает трубку сам только после второго звонка (тоесть человек позвонил, положил трубку, потом опять позвонил)
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 4) Действительно помогло 1) Когда я пытался передать 5 кило не дощло ни одного байта. Так от чего зависит размер приёмника А в куске нельзя переписываться, пока идёт перекачка. А так всё мне очень помогло Ещё вопросы появились: 5) Как в ричтекстбокс добавлять строчки разных цветов??? Попробуйте сделать - если у кого получится, срочно сообщите!!! 6) Наконец дело дошло до практики, но при отправке 512 байт рич показывал сначала первые примерно 150 байт, потом, несмотря на то, что в программе стоит r1.textr=r1.text & Bufer (где буфер данные с модема), данные затираются новыми. Не подскажите, в чём дело??????? Мне позарез нужно!!!!!!!!!!!!!!! Ну и чё никто не отвечает. Как простые вопросы возникают, так сразу постов 20, а как интересный и непростой вопросец - и все играют в молчанку. Насчет 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 Во первых, r1.textr=r1.text & Bufer работать не может, поскольку свойства textr нет. Во вторых, это скорее всего у тебя где-то ошибка в коде. В третьих, все TextBox'ы неадекватно реагируют на Null-Terminated strings, RTB в этом плане постабильнее, но использовать их крайне не рекомендую. В четвертых, как я уже писал, используй лучше SelStart и SetText. Буфер приема - InBufferSize Буфер передачи - OutBufferSize Размер OutBufferSize определяет сколько байт можно впихнуть в порт за один раз, так наверное. Offtopic: предложения к администраторам форума - может все же сделать защиту от дублирующихся сообщений? Тут скоро все в спаме погрязнет! to AI: Спасибо. Это то, что нужно. to LamerOnLine: Спасибо. Ща буду эксперементировать to LameOnLine: Большое спасибо. Давно искал, и вот нашёл. to Павел(раз уж ты рядом Опять письма не приходят. Что же такое??? Раз, два, три. Проверка связи Письмо дошло. Всё работает. Видите, сколько сразу проблем решили Страница: 1 |
Вопрос: Опять MSComm
Добавлено: 14.04.04 11:26
Автор вопроса: Ra$cal | Web-сайт:
Ответы
Всего ответов: 15
Номер ответа: 1
Автор ответа:
crackoff
ICQ: 156165990
Вопросов: 12
Ответов: 229
Профиль | | #1
Добавлено: 14.04.04 13:54
Номер ответа: 2
Автор ответа:
Ra$cal
ICQ: 8068014
Вопросов: 18
Ответов: 817
Web-сайт:
Профиль | | #2
Добавлено: 16.04.04 10:15
Номер ответа: 3
Автор ответа:
Ra$cal
ICQ: 8068014
Вопросов: 18
Ответов: 817
Web-сайт:
Профиль | | #3
Добавлено: 17.04.04 10:28
Номер ответа: 4
Автор ответа:
Ra$cal
ICQ: 8068014
Вопросов: 18
Ответов: 817
Web-сайт:
Профиль | | #4
Добавлено: 19.04.04 10:38
Номер ответа: 5
Автор ответа:
LamerOnLine
ICQ: 334781088
Вопросов: 108
Ответов: 2822
Профиль | | #5
Добавлено: 19.04.04 11:48
Номер ответа: 6
Автор ответа:
LamerOnLine
ICQ: 334781088
Вопросов: 108
Ответов: 2822
Профиль | | #6
Добавлено: 19.04.04 12:04
Номер ответа: 7
Автор ответа:
Artificial Intelligence
ICQ: 275368971
Вопросов: 8
Ответов: 131
Профиль | | #7
Добавлено: 19.04.04 16:04
Номер ответа: 8
Автор ответа:
LamerOnLine
ICQ: 334781088
Вопросов: 108
Ответов: 2822
Профиль | | #8
Добавлено: 20.04.04 08:51
Номер ответа: 9
Автор ответа:
Ra$cal
ICQ: 8068014
Вопросов: 18
Ответов: 817
Web-сайт:
Профиль | | #9
Добавлено: 20.04.04 11:01
Номер ответа: 10
Автор ответа:
Павел
Администратор
ICQ: 326066673
Вопросов: 368
Ответов: 5968
Web-сайт:
Профиль | | #10
Добавлено: 20.04.04 11:14
Делаем. В ASP .Net версии точно будет... В нынешней версии колупаться
не вижу смысла...
Номер ответа: 11
Автор ответа:
Ra$cal
ICQ: 8068014
Вопросов: 18
Ответов: 817
Web-сайт:
Профиль | | #11
Добавлено: 21.04.04 10:47
Номер ответа: 12
Автор ответа:
Павел
Администратор
ICQ: 326066673
Вопросов: 368
Ответов: 5968
Web-сайт:
Профиль | | #12
Добавлено: 21.04.04 13:47
Буквально через минуту исправлю... При переходе на Win2003 почему-то
название классов CDO сменилось, поэтому пиьсма не идут.
Номер ответа: 13
Автор ответа:
Павел
Администратор
ICQ: 326066673
Вопросов: 368
Ответов: 5968
Web-сайт:
Профиль | | #13
Добавлено: 21.04.04 13:50
Done. Плиз, протестить.
Номер ответа: 14
Автор ответа:
Ra$cal
ICQ: 8068014
Вопросов: 18
Ответов: 817
Web-сайт:
Профиль | | #14
Добавлено: 23.04.04 10:45
Номер ответа: 15
Автор ответа:
Ra$cal
ICQ: 8068014
Вопросов: 18
Ответов: 817
Web-сайт:
Профиль | | #15
Добавлено: 24.04.04 10:32