![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Проблема с получением данных с COM порта [D6, NT4]
dim- © (2004-03-19 01:29:00)Помогите решить проблемму
Пользуюсь компонентой CommPortDriver при получении данных делаю:
procedure TForm2.CommPortDriver1ReceiveData(Sender: TObject;
DataPtr: Pointer; DataSize: Cardinal);
var i: integer;
s: string;
begin
// Convert incoming data into a string
s := StringOfChar( ' ', DataSize );
ShowMessage(s);
move( DataPtr^, pchar(s)^, DataSize );
// Exit if s is empty. This usually occurs when one or more NULL characters
// (chr(0)) are received.
while pos( #0, s ) > 0 do
delete( s, pos( #0, s ), 1 );
if s = '' then
exit;
// Remove line feeds
i := pos( #10, s );
while i <> 0 do
begin
delete( s, i, 1 );
i := pos( #10, s );
end;
i := pos( #13, s );
while i <> 0 do
begin
delete( s, i, 1 );
i := pos( #13, s );
end;
ShowMessage(s);
Edit1.Text:= s;
end;
В результате получаю какую то фигню, а пример (фрагмент скопирован от туда)работает нормально, правда там в ричедит выводиться
dim- (2004-03-19 15:11:00) [1]Говорю, это фрагмент рабочей программы, только в ней это работает, а у меня нет
Reindeer Moss Eater (2004-03-19 09:11:00) [2]В результате получаю какую то фигню
move( DataPtr^, pchar(s)^, DataSize );
Пишешь фигню - фигню и получаешь.
pchar(s)^ - что это и главное где?
Reindeer Moss Eater (2004-03-19 08:53:00) [3]procedure TForm2.CommPortDriver1ReceiveData(Sender: TObject;
DataPtr: Pointer; DataSize: Cardinal);
var i: integer;
s: string;
begin
SetLength(s,DataSize);
StrLCopy(PChar(s),PChar(DataPtr),DataSize);
....
Германн (2004-03-19 03:31:00) [4]Вопросы по поводу сторонних компонент лучше всего адресовать их авторам, а не "всем прочим"!
Ну, не использую я, и вообще не знаю такой компонент! И что в таком случае я могу понять из вышеописанного текста?