Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Как из адреса прочитать? / 6 сообщений из 6, страница 1 из 1
31.10.2002, 15:22
    #32063667
Seryoga
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как из адреса прочитать?
в хелпе написанно -

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
BOOL ReadFile(

    HANDLE hFile,	// handle of file to read 
    LPVOID lpBuffer,	// address of buffer that receives data  
    DWORD nNumberOfBytesToRead,	// number of bytes to read 
    LPDWORD lpNumberOfBytesRead,	// address of number of bytes read 
    LPOVERLAPPED lpOverlapped 	// address of structure for data 
   );



что, на сколько я понимаю, означает - результат идет по адресу Buf, длинна - Size... И как его оттуда, Ы?
...
Рейтинг: 0 / 0
01.11.2002, 12:51
    #32063966
Gold
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как из адреса прочитать?
Привет.
А куда ты его хочеш оттуда, если всё уже и так там :).
Если копировать - попробуй Move, только вот зачем???
...
Рейтинг: 0 / 0
01.11.2002, 21:14
    #32064270
Seryoga
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как из адреса прочитать?
спасибо, я уже въехал... просто описание функции поначалу не осмыслил %)))
кстати, вот еще вопрос (может не успею разобраться, подскажете)

сделал я эту всю ерунду на таймер, он у меня всё это дело читает, НО! пока не придет нечто на комм - он висит на этой самой readfile и ни туды ни сюды. Как написать условие из серии "если на комм чё-то пришло - тогда readfile его, иначе - скип его тудыть"?

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
    isbn := '';
    i:=  1 ;
    CharArray[ 0 ] := '#';
    while CharArray[i- 1 ]<> chr( 13 ) do
      begin
       ReadFile(hCom, CharArray[i],  1 , dwRead, nil);
       inc(i);
      end;
    for j:=  1  to i- 2  do isbn := isbn + CharArray[j];  
    edISBN.Text := isbn;


всё это безобразие смотрится именно так, дебагер дальше readfile не идет пока на комм не приходит сигнал.
Заранее спасибо! %)
...
Рейтинг: 0 / 0
04.11.2002, 07:28
    #32064404
Mich
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как из адреса прочитать?
Hi!
Подобные проблемы решаются следующим образом: в ReadFile последним параметром указывается структура OVERLAPPED с соответствующим EVENT , а затем используется WaitForSingleObjectEx . Можно попробовать ReadFileEx , там есть параметр lpCompletionRoutine , может поможет. В общем надо долго читать хелп :)
Второй вариант - копать в сторону SetCommMask/GetCommState/WaitCommEvent и т.д.
А самый лучший вариант - плюнуть на все это и писать драйвер. Ибо по идеологии системы подобными вещами должен заниматься именно драйвер. Что я в свое время и сделал. Чего и Вам желаю.
_______
...
Рейтинг: 0 / 0
04.11.2002, 08:32
    #32064412
Mich
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как из адреса прочитать?
Hi!
Подобные проблемы решаются следующим образом: в ReadFile последним параметром указывается структура OVERLAPPED с соответствующим EVENT , а затем используется WaitForSingleObjectEx . Можно попробовать ReadFileEx , там есть параметр lpCompletionRoutine , может поможет. В общем надо долго читать хелп :)
Второй вариант - копать в сторону SetCommMask/GetCommState/WaitCommEvent и т.д.
А самый лучший вариант - плюнуть на все это и писать драйвер. Ибо по идеологии системы подобными вещами должен заниматься именно драйвер. Что я в свое время и сделал. Чего и Вам желаю.
_______
...
Рейтинг: 0 / 0
04.11.2002, 14:27
    #32064582
Seryoga
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как из адреса прочитать?
Во-вторых - а поподробнее хоть один из способов никто не знает? Ну, например, пример использования оверлэпа никто не может кинуть?
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Как из адреса прочитать? / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]