![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
подскажите мне пож-ста использую 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 в свойствах, я раньше применял данный компонент, но только в режиме пакета, ограниченный опр. символами и определенной длиной, но в данном случае , у меня могут совпасть некоторые байты с признаком начала или конца пакета - и не хочется усложнять ..