Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на языке Pascal


Информационный Канал Subscribe.Ru


RusFAQ.ru: Программирование на языке Pascal

Выпуск № 106
от 02.04.2003, 07:00

Администратор:
Имя: Sensey
URL: Информационный ресурс
ICQ: 105679124
Украина, Харьков
О рассылке:
Задано вопросов: 176
Отправлено ответов: 532
Активность: 302.2 %
[Задать вопрос >>][Регистрация эксперта >>]
[Поиск в базе][Обсудить на форуме]


 Список экспертов, ответы которых опубликованы в данном выпуске

X-RayMan
Статус: Доверительный
Общий рейтинг: 141.97
[Подробней >>]
Tigran K. Kalaidjian
Статус: Начальный
Общий рейтинг: 110.81
[Подробней >>]
Tancho
Статус: Опытный
Общий рейтинг: 146.78
[Подробней >>]
 
Igoryk
Статус: Профессиональный
Общий рейтинг: 125.71
URL: IgorykSoft
[Подробней >>]
Zloy
Статус: Профессиональный
Общий рейтинг: 107.7
URL: Pascal - Web - Site
[Подробней >>]
Sensey
Статус: Профессиональный
Общий рейтинг: 121.12
URL: Страничка рассылки по Паскалю
Телефон: +38 (0572) 41-76-04 д.
[Подробней >>]


 Краткий перечень вопросов

Вопрос № 170. как в турбо паскале с помощью ассемблерных вставок запрограммировать LPT порт , чтобы к нему подключ... (ответов: 2)
Вопрос № 173. Плиз объясните!(ламерский вопрос) Есть файл internet.txt, как его прочитать. Кучу литературы перелоп... (ответов: 6)

Вопросов: 2, ответов: 8


 Вопрос № 170

как в турбо паскале с помощью ассемблерных вставок запрограммировать LPT порт , чтобы к нему подключить восемь выключателей для управления программой.Сама программа представляет собой счетчик времени для восьми объектов в здании.Принцип такой,включили свет,замкнулись контакты и через порт включили один из восьми счетчиков. Приношу извинения если что нескладно изложил.Надеюсь на Вашу помощь.Заранее благодарен.
Антон.



Вопрос отправлен: 29.03.2003, 09:23
Отправитель: anton (oven_mars@rambler.ru)

[Следующий вопрос >>] [Список вопросов]

Отвечает X-RayMan

Здравствуйте, anton!
Проще всего это сделать так - перевести порт в режим приема, постоянно принимать данные. Для этого всего лишь надо подключить к 2-9 ногам порта сигнальные линии.
Перевести порт в режим приема - записать в 5 бит регистра управления "1".
378h - адрес регистра данных, его можно посмотреть в настройках системы. Адрес регистра управления (37Ah) - адрес регистра данных + 2. 378h+2h=37Ah
Примерная прога в приложении.

Приложение:

Ответ отправлен: 29.03.2003, 13:37
Отправитель: X-RayMan


Отвечает Tigran K. Kalaidjian

Приветствую Вас, anton!
Это делается с помощью всего 2 процедур
Посылка в порт:
------------------------------------------------------------
procedure ToLpt (a: Byte); assembler;
asm
MOV DX, 378H
MOV AL, a
OUT DX, AL
end;
------------------------------------------------------------
Принятие из порта:
------------------------------------------------------------
function FromLpt: byte;
var a: byte;
begin
asm
MOV DX, 379H
IN AL, DX
MOV a, AL
end;
fromlpt:=a;
end;
------------------------------------------------------------
Из порта принимается байт, а затем раскладывается на биты и осуществляется проверка замыкания (т.е. единичные биты).
С удовольствием отвечу на Ваши вопросы по почте - kalaidjian@pochtamt.ru. Могу предложить свои замечания и программы.
Устройствами сопряжения с ПК (включение света в помещении, принятие сигналов, датчики, черепашки и прочие самопальные приборы) я занимаюсь около года, поэтому могу поделиться большим количеством документов и исходников на эту тему.

Ответ отправлен: 29.03.2003, 12:23
Отправитель: Tigran K. Kalaidjian


 Вопрос № 173

Плиз объясните!(ламерский вопрос)
Есть файл internet.txt, как его прочитать.
Кучу литературы перелопатил, но ни чего не смог сделать.
Может что-то упустил.



Вопрос отправлен: 29.03.2003, 21:10
Отправитель: Кирилл

[Следующий вопрос >>] [Список вопросов]

Отвечает Tigran K. Kalaidjian

Приветствую Вас, Кирилл!
Смотря что значит прочитать ?
Уточните, пожалуйста.
Если вы хотите производить чтение файла по строкам, то используйте план(см. приложение).
Вообще же АФАИР информация по обработке файлов содержится во всех книгах по паскалю...


Приложение:

Ответ отправлен: 30.03.2003, 13:40
Отправитель: Tigran K. Kalaidjian


Отвечает Tancho

Здравствуйте, Кирилл!
Если я правилно понял тебе, то не вижу ничево
сложного:
1)Откроешь текстовой файл;
2)Читаешь его символ о символ, пока доедеть конец файла,
путемь выводишь символый екраном;
3)Закрываешь файл( Это не обезателно для входных файлов,
но для хороший стиль програмирования это обезательно;
Ну смотри маленький примерчик.

Приложение:

Ответ отправлен: 31.03.2003, 19:19
Отправитель: Tancho


Отвечает X-RayMan

Здравствуйте, Кирилл!
Да... Так вот... :)
Для начала надо объявить переменную для файла. В разделе var надо написать что-то типа:
var
_file: Text;
Где _file - имя переменной, Text - тип(в данном случае у нас текстовый файл, можно еще file of где вместо указать тип данных).
Потом надо связать файловую переменную с физическим файлом на диске: Assign(_file,'c:autoexec.bat');
Потом, если хочешь считать данные, надо использовать команду Reset(_file);
Потом есть функция EOF(End Of File) Она указывает достигнут ли конец файла. Ее синтаксис eof(): Boolean;
Например считаем всю информацию из файла:
while not eof(_file) do { пока не достигнут конец файла }
begin
ReadLn(_file,s); { считать строку из файла в строковую переменную s }
WriteLn(s); {думаю понятно}
end;
В конце файл надо обязательно закрыть: Close(_file);
Если хочешь записать инфу в файл:
Rewrite(_file) - если файл существует, стирает из него все и открывает для записи, если не существует - создает и тоже открывает для записи.
Append(_file) - Открывает файл для дозаписи и устанавливает указатель в конец файла.
Write(_file,), WriteLn(_file,) - записать в файл.
Смотри приложение.

Приложение:

Ответ отправлен: 30.03.2003, 00:11
Отправитель: X-RayMan


Отвечает Igoryk

Приветствую Вас, Кирилл!
Сначала файл связывается, а затем читается:
var F:Text;
S:String;
begin
Assign(F,'internet.txt');
while eof(F) do
begin
readln (S); {Читаем}
writeln (S); {Выводим}
end;
end.

Ответ отправлен: 01.04.2003, 17:43
Отправитель: Igoryk


Отвечает Zloy

Добрый день, Кирилл!
видно не там копал.


Приложение:

Ответ отправлен: 31.03.2003, 08:34
Отправитель: Zloy


Отвечает Sensey

Здравствуйте, Кирилл!
Объявляешь переменную
f:text;
s:string;
потом связываешь файл
assign(f,'internet.txt');
потом открываешь для чтения:
reset(f);
читаешь
readln(f,s)
как-нить обрабатываешь...

Ответ отправлен: 31.03.2003, 15:53
Отправитель: Sensey



Форма отправки вопроса

Внимание!
Форма может работать некорректно в почтовых программах "Microsoft Outlook" и "Microsoft Outlook Express". В программе The Bat! подобные формы не работают вообще!
После нажатия на кнопку "Отправить", будет открыто второе окно. Заметьте, что в некоторых браузерах могут стоять запреты на открытие других окон, а также "чрезмерное" кэширование данных, при этом факт отправки Вашего вопроса стоит под сомнением.
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+ или отправлять вопросы с сайта по адресу: http://rusfaq.ru/cgi-bin/Message.cgi.

© 2002 Команда RusFAQ.ru.

 Персональные данные

Ваше имя:

Ваш e-mail:

Опубликовать мой e-mail в рассылке


 Вопрос и дополнение

Ваш вопрос:


Приложение (если необходимо):


Получить ответов:


 Выбор рассылки

Программисту
Assembler (35)
C / C++ (27)
Perl (6)
Delphi (16)
Pascal (19)
Basic / VBA (9)
Java / JavaScript (8)
PHP (5)
MySQL / MSSQL (6)
Пользователю
Windows 95/98/Me (30)
Windows NT/2000/XP (22)
"Железо" (28)
Поиск информации (15)
Администратору
Windows NT/2000/XP (10)
Linux / Unix (12)
Юристу
Гражданское право (9)
Семейное право (5)
Трудовое право (5)
КоАП (6)

Отправить вопрос всем экспертам выбранной рассылки.




Яндекс цитирования

© 2002 Россия, Москва. Авторское право: RusFAQ.ru

http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное