Форум: "Система";
Текущий архив: 2004.04.11;
Скачать: [xml.tar.bz2];
ВнизПроблема с получением данных с COM порта Найти похожие ветки
← →
dim- © (2004-03-19 01:29) [0]Помогите решить проблемму
Пользуюсь компонентой 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 01:29) [0]Помогите решить проблемму
Пользуюсь компонентой 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;
В результате получаю какую то фигню, а пример (фрагмент скопирован от туда)работает нормально, правда там в ричедит выводиться
← →
Германн © (2004-03-19 03:31) [1]Вопросы по поводу сторонних компонент лучше всего адресовать их авторам, а не "всем прочим"!
Ну, не использую я, и вообще не знаю такой компонент! И что в таком случае я могу понять из вышеописанного текста?
← →
Германн © (2004-03-19 03:31) [1]Вопросы по поводу сторонних компонент лучше всего адресовать их авторам, а не "всем прочим"!
Ну, не использую я, и вообще не знаю такой компонент! И что в таком случае я могу понять из вышеописанного текста?
← →
Reindeer Moss Eater © (2004-03-19 08:53) [2]procedure TForm2.CommPortDriver1ReceiveData(Sender: TObject;
DataPtr: Pointer; DataSize: Cardinal);
var i: integer;
s: string;
begin
SetLength(s,DataSize);
StrLCopy(PChar(s),PChar(DataPtr),DataSize);
....
← →
Reindeer Moss Eater © (2004-03-19 08:53) [2]procedure TForm2.CommPortDriver1ReceiveData(Sender: TObject;
DataPtr: Pointer; DataSize: Cardinal);
var i: integer;
s: string;
begin
SetLength(s,DataSize);
StrLCopy(PChar(s),PChar(DataPtr),DataSize);
....
← →
Reindeer Moss Eater © (2004-03-19 09:11) [3]В результате получаю какую то фигню
move( DataPtr^, pchar(s)^, DataSize );
Пишешь фигню - фигню и получаешь.
pchar(s)^ - что это и главное где?
← →
Reindeer Moss Eater © (2004-03-19 09:11) [3]В результате получаю какую то фигню
move( DataPtr^, pchar(s)^, DataSize );
Пишешь фигню - фигню и получаешь.
pchar(s)^ - что это и главное где?
← →
dim- © (2004-03-19 15:11) [4]Говорю, это фрагмент рабочей программы, только в ней это работает, а у меня нет
← →
dim- © (2004-03-19 15:11) [4]Говорю, это фрагмент рабочей программы, только в ней это работает, а у меня нет
Страницы: 1 вся ветка
Форум: "Система";
Текущий архив: 2004.04.11;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.059 c