Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

подскажите мне пож-ста использую Comportlibraru ver. 2.60


ah ©   (2002-04-27 19:49:00) 

- железяка выдает поток информации ( 240 байт )
procedure Tf1.cp1RxChar(Sender: TObject; Count: Integer);
var
str:string;
b1,b2:byte;
begin
cp1.ReadStr(str,count);
end;
что нужно сделать чтобы поток оказался в str -инге целиком, получается сначала где то около 8 байт , а остальные 232 - после...
можно конечно так

...
...
M1.Text := M1.Text + Str;
...
...
но мне нужно отследить момент, когда все будет прочитано ?


bo   (2002-04-29 10:50:00) [1]

Я давно наткнулся на эти грабли, задавал подобный вопрос, но как то ни кто не ответил, наверно ни кто не занимался этим воросом. Я говорю о том, как получить стринг, в режиме пакета не пробовал. Если что то олучится, дай знать, если не влом будет, потому, что для меня этот вопрос весьма актуален! С уважением bo. mailto:piter_bo@astrum.spb.ru


kis28   (2002-04-29 09:31:00) [2]

Я делаю так (вроде работает):

var ScanStr: string;
...
procedure TfmCom.CP1RxChar(Sender: TObject; Count: Integer);
var s: string;
begin
with CP1 do begin
ReadStr(s,count);
ScanStr := ScanStr + s;
if CP1.InputCount = 0 then begin
ScanRead; {или что-то свое}
ScanStr := "";
end;
end;
end;


bo   (2002-04-29 09:18:00) [3]

Я давно наткнулся на эти грабли, задавал подобный вопрос, но как то ни кто не ответил, наверно ни кто не занимался этим воросом. Я говорю о том, как получить стринг, в режиме пакета не пробовал. Если что то олучится, дай знать, если не влом будет, потому, что для меня этот вопрос весьма актуален! С уважением bo. mailto:piter_bo@astrum.spb.ru


ah   (2002-04-28 08:12:00) [4]

что то никто мне не подскажет - я тут сам ковырялся и что заметил:
как уж говорил в режиме теста поток состоит из последовательности байтов идущих от железки от 0 и до 240 , если нулевой байт идет - то у меня пропадает 8 байт . Пробовал передвинуть байт = 0 с начала пакета в другое место , так же теряется 8 байт. Почему так происходит , где моя ошибка ?


ah   (2002-04-27 21:50:00) [5]

еще вдобавок вопрос -
просто для теста железка мне дает последовательность от 0 и так далее. Я что заметил, длина всего потока почему то когда первым подается байт,равный 0 , равна 232 , стоит его поменять на другое отличное от нуля, длина становится равным 240 .
Что выполняет eventchar в свойствах, я раньше применял данный компонент, но только в режиме пакета, ограниченный опр. символами и определенной длиной, но в данном случае , у меня могут совпасть некоторые байты с признаком начала или конца пакета - и не хочется усложнять ..


Наверх

Титульная страница Поиск, карта сайта Написать письмо