Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.07.18;
Скачать: CL | DM;

Вниз

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

 
ah ©   (2002-04-27 19:49) [0]

- железяка выдает поток информации ( 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;
...
...
но мне нужно отследить момент, когда все будет прочитано ?


 
ah ©   (2002-04-27 21:50) [1]

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


 
ah ©   (2002-04-28 08:12) [2]

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


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

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


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

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

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 10:50) [5]

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



Страницы: 1 вся ветка

Текущий архив: 2002.07.18;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.016 c
1-58172
alex-ran
2002-07-05 13:31
2002.07.18
Запуск проги с параметрами


1-58109
BlackSun
2002-07-08 15:18
2002.07.18
Как управлять IExplore


6-58249
Hub
2002-05-06 01:06
2002.07.18
Как узнать адрес broadcast?


3-57983
Givelerop
2002-06-26 17:18
2002.07.18
Как программно в QuickRep отобразить содержимое StringGrid?


1-58206
Jmenya
2002-07-06 14:42
2002.07.18
Уважаемые Мастера .....