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

Вниз

Чтение данных из компорта   Найти похожие ветки 

 
pavel_guzhanov   (2004-07-09 14:25) [0]

Подскажите пожалуйста, для чтения данных, пришедших в компорт использую
ReadFile(H,Buf,Size,Total,nil)
Как нужно объявить переменную Buf перед отправкой ее в эту функцию? Может я чтото туплю, но второй день не могу с этим справиться


 
MBo ©   (2004-07-09 14:42) [1]

например, так -
var Buf:array of byte;

SetLength(Buf,1000);
ReadFile(H,Buf[0],Size,Total,nil)


 
AndrewVolkov ©   (2004-07-09 21:06) [2]

Var
   Stat : TComStat;
   Resive:array of char;
   Kols:Integer;
   CommHandle : integer;
   Ovr : TOverlapped;
...
ClearCommError(CommHandle,Errs,@Stat);//Sbrasivajem flag
Kols :=Stat.cbInQue;//uznajem kol-vo bajt voshedshih v port
SetLength(Resive, Kols);//vistavljajem dlinu
ReadFile(CommHandle,Resive[0],Kols,Kols,@Ovr);//Chitajem

Commhandle//handle porta

Da vot vrodje i vsja premudrostj


 
tesseract   (2004-07-10 12:51) [3]

Динамические массивы по ссылке передавать нельзя! лучше пошли pointer потом в цикле разбирай. или обычный массив с размером заведомо большим полученных данных. я так и поступаю.


 
MBo ©   (2004-07-10 12:54) [4]

>Динамические массивы по ссылке передавать нельзя!
Да ну?


 
AndrewVolkov ©   (2004-07-10 13:49) [5]

to tesseract
да не замечал как-то проблем.
А нафига мне каждый раз 10000 к примеру читать, если всего 2 байта к примеру заходит?


 
AndrewVolkov ©   (2004-07-10 14:30) [6]

to tesseract
точнее не читать, а резервировать


 
GanibalLector ©   (2004-07-11 01:38) [7]

Вот тебе(счастье):


function ReadComm(Handle:THandle; var Bfr:AnsiString):Integer;
var
 I,J:DWord;
begin
 Result:=0;
 J:=Length(Bfr);
 repeat
   ReadFile(Handle, Bfr[Result+1], J-DWord(Result), I, nil);
   Inc(Result,Integer(I));
  if DWord(Result)=J then break;
 until I=0;
end;




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

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

Наверх




Память: 0.48 MB
Время: 0.03 c
1-1092114772
Stype
2004-08-10 09:12
2004.08.22
Размер программы...


1-1091624252
Wolfram
2004-08-04 16:57
2004.08.22
Изменение свойств memo в FastReport в runtime.


4-1089349917
Константин
2004-07-09 09:11
2004.08.22
Как отследить нажатие на TMenuItem


3-1091426367
46_55_41_44
2004-08-02 09:59
2004.08.22
Как программно сжать БД MS Access?


9-1083338063
Pirate
2004-04-30 19:14
2004.08.22
ДВИЖОК