Компьютерный форум
Правила
Вернуться   Компьютерный форум > Форум программистов > Программирование под Windows > C++ Builder
Перезагрузить страницу Работа с функцией isatty куда вставить строчку Edit1 Text
Ответ
 
Опции темы Опции просмотра
  (#1 (permalink)) Старый
Mickthompson Mickthompson вне форума
Новичок
 
Сообщений: 4
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 13.05.2010
По умолчанию Работа с функцией isatty куда вставить строчку Edit1 Text - 13.05.2010, 16:14

У меня есть пример использования функции isatty. Но возникает проблема. Куда Мне вставить строчку Edit1->Text, чтобы введёный дескриптор считывался с поля Edit1?


Код:
#include <vcl.h>
#include<io.h>
#include<stdio.h>
#include "Unit6.h"
//---------------------------------------------------------------------------
#pragma hdrstop
#pragma package(smart_init)
#pragma resource "*.dfm"
TIsatty *Isatty;
//---------------------------------------------------------------------------
__fastcall TIsatty::TIsatty(TComponent* Owner)
                : TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TIsatty::Button1Click(TObject *Sender)
{
int handle;
handle=_fileno(stdout);
if (isatty(handle)!=0)
{
result->Caption = "Дескриптор относится к устройству" + isatty(handle);
}
else
{
result->Caption = "Дескриптор не относится к устройству" + isatty(handle);
}
}
//---------------------------------------------------------------------------
 
void __fastcall TIsatty::eFileNameChange(TObject *Sender)
{
Button1->Enabled = !(Edit1->Text.IsEmpty());
}
//---------------------------------------------------------------------------
Ответить с цитированием
  (#2 (permalink)) Старый
FataLL FataLL вне форума
Member
 
Аватар для FataLL
 
Сообщений: 1,783
Сказал(а) спасибо: 2
Поблагодарили 25 раз(а) в 25 сообщениях
Регистрация: 04.11.2004
По умолчанию 13.05.2010, 16:46

Интересно, как ты собрался вводить хэндл в Edit1? Чисто вот так, цифирками? Функция требует хэндл, значит надо этот хэндл сначала получить. Смотри CreateFile
Ответить с цитированием
  (#3 (permalink)) Старый
Mickthompson Mickthompson вне форума
Новичок
 
Сообщений: 4
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 13.05.2010
По умолчанию 13.05.2010, 16:53

Можете подробней объяснить? А то что-то недогоняю. Я на Билдере 4-5 день всего...
Ответить с цитированием
  (#4 (permalink)) Старый
Mickthompson Mickthompson вне форума
Новичок
 
Сообщений: 4
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 13.05.2010
По умолчанию 13.05.2010, 17:49

Вроде понял в чём вся суть. Вот только не пойму, почему при открытии файла с шлешки - выдаёт, что Дескриптор не относится к устройству?

Код:
#include <vcl.h>
#include<io.h>
#include<stdio.h>
#include<fcntl.h>
#include<share.h>
#include "Unit6.h"
//---------------------------------------------------------------------------
#pragma hdrstop
#pragma package(smart_init)
#pragma resource "*.dfm"
TIsatty *Isatty;
//---------------------------------------------------------------------------
__fastcall TIsatty::TIsatty(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TIsatty::Button1Click(TObject *Sender)
{
int handle;
handle=_rtl_open(Edit1->Text.c_str(), O_RDONLY);
if (FileExists(Edit1->Text.c_str())==0)
{
result->Caption = "Отсутствует доступ к файлу";
}
else
{
        if (isatty(handle)!=0)
        {
        result->Caption = "Дескриптор относится к устройству" + isatty(handle);
        }
        else
        {
        result->Caption = "Дескриптор не относится к устройству" + isatty(handle);
        }
        _close(handle);
}
}
//---------------------------------------------------------------------------

void __fastcall TIsatty::Edit1Change(TObject *Sender)
{
Button1->Enabled = !(Edit1->Text.IsEmpty());
}
//---------------------------------------------------------------------------
Ответить с цитированием
  (#5 (permalink)) Старый
Alexiski Alexiski вне форума
Любитель давать советы
 
Сообщений: 4,228
Сказал(а) спасибо: 25
Поблагодарили 49 раз(а) в 49 сообщениях
Регистрация: 16.10.2005
По умолчанию 13.05.2010, 17:54

А можно поподробнее объяснить, что именно Вы хотите сделать? И где в Билдере Вам нужно искать терминал?
Ответить с цитированием
Ads.
  (#6 (permalink)) Старый
Mickthompson Mickthompson вне форума
Новичок
 
Сообщений: 4
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 13.05.2010
По умолчанию 13.05.2010, 18:19

судя по заданию - я должен, открыв файл, узнать, относится ли полученный дескриптор к устройству...
Ответить с цитированием
  (#7 (permalink)) Старый
Alexiski Alexiski вне форума
Любитель давать советы
 
Сообщений: 4,228
Сказал(а) спасибо: 25
Поблагодарили 49 раз(а) в 49 сообщениях
Регистрация: 16.10.2005
По умолчанию 13.05.2010, 20:45

Давайте по порядку. Это учебное задание? В нем явно предписано пользоваться isatty ? И обязательно под Бильдером? Тут просто какая-то нестыковка, в которой я пытаюсь разобраться.
Ответить с цитированием
  (#8 (permalink)) Старый
FataLL FataLL вне форума
Member
 
Аватар для FataLL
 
Сообщений: 1,783
Сказал(а) спасибо: 2
Поблагодарили 25 раз(а) в 25 сообщениях
Регистрация: 04.11.2004
По умолчанию 14.05.2010, 02:38

Mickthompson
Для начала надо было прочитать хэлп по isatty, чтобы не хотеть того, чего эта функция не делает. Там предельно ясно написано
Цитата:
isatty determines whether handle is associated with any one of the following character devices:
  • a terminal
  • a console
  • a printer
  • a serial port
Т.е., имеются в виду устройства посимвольного ввода/вывода, а совсем не флэшки, дискетки и прочие драйвы.
Ответить с цитированием
Ads
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ограничение нажатия клавиш в Edit1 alexu C++ Builder 1 30.12.2011 21:15
Работа в ,знаю что не в тему, но не знаю куда поместить Света1992 Работа 0 02.11.2011 23:39
Вставить строчку в таблицу Ruslan123 SQL 5 16.03.2010 13:08
Работа с функцией internetautodial SmolBars Delphi 2 29.05.2008 17:11
Работа с функцией как правильно работать -=GriFon=- С/С++ 8 05.05.2008 20:20
Работа со Static Text программно Rickert Visual C++ 9 11.10.2007 22:30
Есть ли разница между Memo1.Text и Memo1.Lines.Text Виталик 1 Delphi 2 25.03.2007 04:20
Как организовать INSERT с Edit1.Text в DELPHI TSV Delphi 2 18.11.2005 12:57
Как вывести массив в HEX в EDIT1 emergenter C++ Builder 1 15.11.2005 00:03
Работа с ODBC Text Driver формирование базы данных Umka_ SQL 1 03.09.2005 15:37
Как Вставить в ADODataSet пустую строчку Spider_Den C++ Builder 4 10.11.2004 12:44
Куда вставить repaint чтоб отображало в IE alt7 Java 8 01.08.2003 14:03



Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Нardforum.ru - компьютерный форум и программирование, форум программистов