Страница 1 из 1
Delphi 7 ComPort library
Добавлено: Сб дек 03, 2016 16:02:55
kotriks
Господа кто в делфи 7 мучил библу
http://sourceforge.net/projects/comport/ Терминал сам легко создать, получать данные с него, отправлять, но как получить данные с терминала в буфер и сохранением данных в файл, кто то может реализовывал подскажите? Вроде это делается через функцию.
Код: Выделить всё
procedure TForm1.ComPort1RxChar(Sender: TObject; Count: Integer);
var
Str: String;
begin
ComPort1.ReadStr(Str, Count);
// do something with Str variable
end;
Может ошибаюсь, помогите .
Re: Delphi 7 ComPort library
Добавлено: Сб дек 03, 2016 16:55:22
minakan
Рабочая либа. Там есть примеры, все рабочее. Надо еще чтобы в обжект инспекторе выставить, чтоб был вызов этой штуки on_rx или как там оно.
Re: Delphi 7 ComPort library
Добавлено: Сб дек 03, 2016 17:41:30
kotriks
Там нет примеров с сохранением лога с порта на ПК, я бы не интересовался как это осуществить!
Re: Delphi 7 ComPort library
Добавлено: Сб дек 03, 2016 23:41:39
minakan
А че тут сложного?
Код: Выделить всё
procedure Ttonarm_label.ComPortRxChar(Sender: TObject; Count: Integer);
var
S : String;
buf : byte;
res : integer;
begin
comport.read(Buf, 1);
blockwrite(f,buf,1,res);
end;
Ну тут у меня шло побайтно. Получили и скинули в файл.
У вас построчно, т.е. файл надо открыть другой, текстовый.
Файл надо открыть там, где вы открываете порт, и закрыть там, где вы закрываете программу.
Re: Delphi 7 ComPort library
Добавлено: Вс дек 04, 2016 06:53:35
kotriks
Может тогда так
Код: Выделить всё
procedure TFMComunication.comportRxChar(Sender: TObject; Count: Integer);
var
S, Buf : String;
f: file;
begin
AssignFile(f, SaveDialog1.FileName);
Rewrite(f);
comport.ReadStr(S, Count);
Buf := Buf + S;
blockwrite(f,Buf,1,Count);
CloseFile(f);
end;
тока я не понимаю как вызывается процедура comportRxChar, вот добавил кнопку она появилась слева в трее в окне а этой функции нет, как её вызвать или она автоматом прикручивается или как то эту процедуру на кнопку надо кидать?
Добавлено after 2 hours 27 minutes 31 second:
Так наверное будет лучше прикреплю исходник терминала и эмулятор протеуса с виртуальным ком.
Re: Delphi 7 ComPort library
Добавлено: Вс дек 04, 2016 16:48:55
minakan
Нет. Эта процедура вызывается когда приходит каждая посылка....
Т.е. вы каждый раз открываете файл и закрывается.
На второй раз винда вывалит месягу, что такое файло такое уже есть, и так на каждую посылку, заколдобитесь эти месаджбоксы закрывать...
Файл надо открывать, когда вы вызываете если прошло успешноComPortOpen, и закрывать, там, где ComPortClose...
Зы. Посмотрю проект.
Если надо только логить данные может терратерм про поставить?
Re: Delphi 7 ComPort library
Добавлено: Вс дек 04, 2016 23:22:27
kotriks
Дело в том что я свой терминал пишу, так бы мне конечно теры хватило бы.