Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Работа с сетью в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.05.2007, 11:58   #11
Vovick
 
Регистрация: 11.12.2006
Сообщений: 6
По умолчанию

А почему когда я создаю новый Application, то при создании процедуры обработки нажатия кнопки
var
T:Text;
procedure TForm1.Button1Click(Sender: TObject);
begin
Assign(T,'C:\Text.txt');
ReWrite(T);
WriteLn(T,'fdfsdf');
end;

после компиляции выдает ошибку на строке Assign
[Error] Unit1.pas(30): Incompatible types: 'TPersistent' and 'Text'
Хотя в консольном варианте работает без проблем.
Vovick вне форума Ответить с цитированием
Старый 04.05.2007, 12:15   #12
НЕ_АЙС
Форумчанин
 
Регистрация: 18.04.2007
Сообщений: 135
По умолчанию

попробуй AssignFile
НЕ_АЙС вне форума Ответить с цитированием
Старый 04.05.2007, 12:26   #13
Vovick
 
Регистрация: 11.12.2006
Сообщений: 6
По умолчанию

Спасибо, но я уже сам понял ошибку и работает сейчас попробую соединить с комом.
Vovick вне форума Ответить с цитированием
Старый 04.05.2007, 12:40   #14
Квэнди
Старожил
 
Аватар для Квэнди
 
Регистрация: 13.12.2006
Сообщений: 3,859
По умолчанию

f:textfile;
...
assignfile
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи
Квэнди вне форума Ответить с цитированием
Старый 04.05.2007, 13:18   #15
Vovick
 
Регистрация: 11.12.2006
Сообщений: 6
По умолчанию

Следующая конструкция
var T:textfile;
procedure TForm1.Button1Click(Sender: TObject);
begin
AssignFile(T,'COM1');
Rewrite(T);
WriteLn(T,'fff');
CloseFile(T);
end;
После компиляции и нажатия на соответствующую кнопку выдает окно File Access denied, если закоментировать Rewrite(), то выдастся сообщение Error I/O 103. Как с этим бороться?
Vovick вне форума Ответить с цитированием
Старый 04.05.2007, 13:22   #16
Квэнди
Старожил
 
Аватар для Квэнди
 
Регистрация: 13.12.2006
Сообщений: 3,859
По умолчанию

как вы себе представляете процедуру rewrite в аспекте COM порта ?
reset
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи
Квэнди вне форума Ответить с цитированием
Старый 04.05.2007, 14:28   #17
Vovick
 
Регистрация: 11.12.2006
Сообщений: 6
По умолчанию

Попробовал reset, но результат тот же: File access denied
Vovick вне форума Ответить с цитированием
Старый 04.05.2007, 16:35   #18
НЕ_АЙС
Форумчанин
 
Регистрация: 18.04.2007
Сообщений: 135
По умолчанию

держи юнит

unit Unit1;

interface

uses
Windows;

type
TComPort = class
private
hFile: THandle;
public
constructor Create;
destructor Destroy; override;
function InitCom(BaudRate, PortNo: Integer; Parity: Char;
CommTimeOuts: TCommTimeouts): Boolean;
procedure CloseCom;
function ReceiveCom(var Buffer; Size: DWORD): Integer;
function SendCom(var Buffer; Size: DWORD): Integer;
function ClearInputCom: Boolean;
end;

implementation

uses
SysUtils;

constructor TComPort.Create;
begin
inherited;
CloseCom;
end;

destructor TComPort.Destroy;
begin
CloseCom;
inherited;
end;

function TComPort.InitCom(BaudRate, PortNo: Integer; Parity: Char;
CommTimeOuts: TCommTimeouts): Boolean;
var
FileName: string;
DCB: TDCB;
PortParam: string;
begin
result := FALSE;
FileName := 'Com' + IntToStr(PortNo); {имя файла}
hFile := CreateFile(PChar(FileName),
GENERIC_READ or GENERIC_WRITE, 0, nil,
OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);
if hFile = INVALID_HANDLE_VALUE then
exit;

//установка требуемых параметров
GetCommState(hFile, DCB); //чтение текущих параметров порта
PortParam := 'baud=' + IntToStr(BaudRate) + ' parity=' + Parity +
' data=8 stop=1 ' +
'octs=off';
if BuildCommDCB(PChar(PortParam), DCB) then
begin
result := SetCommState(hFile, DCB) and
SetCommTimeouts(hFile, CommTimeOuts);
end;
if not result then
CloseCom;
end;

procedure TComPort.CloseCom;
begin
if hFile < > INVALID_HANDLE_VALUE then
CloseHandle(hFile);
hFile := INVALID_HANDLE_VALUE;
end;

function TComPort.ReceiveCom(var Buffer; Size: DWORD): Integer;
var
Received: DWORD;
begin
if hFile = INVALID_HANDLE_VALUE then
raise Exception.Create('Не открыта запись в Com порт');
if ReadFile(hFile, Buffer, Size, Received, nil) then
begin
Result := Received;
end
else
raise Exception.Create('Ошибка приема данных: ' + IntToStr(GetLastError));
end;

function TComPort.SendCom(var Buffer; Size: DWORD): Integer;
var
Sended: DWORD;
begin
if hFile = INVALID_HANDLE_VALUE then
raise Exception.Create('Не открыта запись в Com порт');
if WriteFile(hFile, Buffer, Size, Sended, nil) then
begin
Result := Sended;
end
else
raise Exception.Create('Ошибка передачи данных: ' + IntToStr(GetLastError));
end;

function TComPort.ClearInputCom: Boolean;
begin
if hFile = INVALID_HANDLE_VALUE then
raise Exception.Create('Не открыта запись в Com порт');
Result := PurgeComm(hFile, PURGE_RXCLEAR);
end;

end.
НЕ_АЙС вне форума Ответить с цитированием
Старый 21.08.2007, 22:17   #19
KORT
Вот я и
Форумчанин
 
Аватар для KORT
 
Регистрация: 07.04.2007
Сообщений: 501
По умолчанию

Цитата:
Сообщение от Квэнди Посмотреть сообщение
В XP работать не будет
Квэнди, я с тобой не согласен, еще как работает и в универе, и дома...Я соединил комп и ноут...
Цитата:
Сообщение от Квэнди Посмотреть сообщение
Без "желания" клиента ничего вы не выведите.
А вот с этим согласен на 95%....5%-хакерам...
Исходники программ - http:\\www.kort.3dn.ru
KORT вне форума Ответить с цитированием
Старый 22.08.2007, 08:57   #20
Квэнди
Старожил
 
Аватар для Квэнди
 
Регистрация: 13.12.2006
Сообщений: 3,859
По умолчанию

Цитата:
Квэнди, я с тобой не согласен, еще как работает и в универе, и дома...Я соединил комп и ноут...
Это не универсально, все зависит от конфигурации сети.
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи
Квэнди вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Отправить запрос kommunist Общие вопросы .NET 4 30.06.2008 00:47
Ethernet . 'поток E1' ? Artem25 Свободное общение 0 09.10.2007 17:44
как отправить сообщения на Асю (icq) Ermak Работа с сетью в Delphi 8 19.09.2007 19:57
Помогите отправить SMS на мегафон =LeonZone= Работа с сетью в Delphi 17 27.08.2007 19:12
работа с Ethernet пакетами kdaemonv Работа с сетью в Delphi 4 06.02.2007 13:37