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

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


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


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

Выпуск № 132
от 12.05.2003, 00:00

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


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

DoS@
Статус: Начальный
Общий рейтинг: 132.14
[Подробней >>]
Bill
Статус: Начальный
Общий рейтинг: 187.5
[Подробней >>]
Sensey
Статус: Профессиональный
Общий рейтинг: 121.7
URL: Страничка рассылки по Паскалю
Телефон: +38 (0572) 41-76-04 д.
[Подробней >>]
 
Lynx
Статус: Доверительный
Общий рейтинг: 140
[Подробней >>]
Byter
Статус: Опытный
Общий рейтинг: 124.85
[Подробней >>]
Tigran K. Kalaidjian
Статус: Опытный
Общий рейтинг: 115.57
URL: Методы оптимизации работы ПК
[Подробней >>]
 
Tancho
Статус: Опытный
Общий рейтинг: 148.38
[Подробней >>]
Zloy
Статус: Профессиональный
Общий рейтинг: 107.22
URL: Pascal - Web - Site
[Подробней >>]
Shurik
Статус: Начальный
Общий рейтинг: 134.14
[Подробней >>]
 
Ayl
Статус: Профессиональный
Общий рейтинг: 118.98
[Подробней >>]
Pin
Статус: Доверительный
Общий рейтинг: 126.59
[Подробней >>]
_vt
Статус: Начальный
Общий рейтинг: 116.66
[Подробней >>]
 
Andy
Статус: Начальный
Общий рейтинг: 123.07
[Подробней >>]


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

Вопрос № 218. Доброго времени суток всем! Я снова насчёт подключения компилятора из паскаля: прошу прощения, что н... (ответов: 8)
Вопрос № 219. привет Значит написал я прогу - работа с файлом - потом пишет мне файл не найден, ладно создаю в до... (ответов: 9)
Вопрос № 220. hELLO как в Досе создать Файл католог - это md имя_каталога... (ответов: 8)
Вопрос № 221. привет хАкЕрАм(шутка ) вопрос: при начальном этапе резработки программы на Паскале у меня "прис... (ответов: 4)

Вопросов: 4, ответов: 29


 Вопрос № 218

Доброго времени суток всем!
Я снова насчёт подключения компилятора из паскаля: прошу прощения, что неправильно сформулировал вопрос, пробема не в тоом чтобы вызывать из паскаля tasm (вызвать через exec мне труда не составит), мне необходимо сделать так чтобы можно было наблюдать результаты компиляции. Когда я вызываю просто tasm он мелькает на экране и ничего заметить нельзя :(. Можно ли сделать паузу после выполнения программы чтобы просмотреть результаты? Или любой другой способ с помощью которого можно это релизовать...



Вопрос отправлен: 08.05.2003, 01:25
Отправитель: Jens

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

Отвечает DoS@

Здравствуйте, Jens!
Если запускаешь tasm.exe и не можешь наблюдать процес компиляции делай следуещее:
В свойствах tasm.exe на владке Программа убери галочку
около надписи Закрывать окно по завершении работы!


Ответ отправлен: 08.05.2003, 20:21
Отправитель: DoS@


Отвечает Bill

Доброе время суток, Jens!
Самое простое решение - это создать .bat файл, и его вызывать. В нем написать
в строке после
tasm %1 > tasmres.txt
if errorlevel 1 goto Error
...
:Error
echo Ошибка трансляции
pause
goto Exit
...
:Exit
Результаты трансляции будут записаны в файл "tasmres.txt",
который можно прочитать даже из Паскаля
Если возникут проблемы, пиши bsurin@mail.ru - вышлю пример


Ответ отправлен: 08.05.2003, 10:00
Отправитель: Bill


Отвечает Sensey

Здравствуйте, Jens!
Можно использовать вариант Billa, но если тебе нужно именно из Паскаля, то так:
...
SwapVectors;
exec(...);
SwapVectors;
readkey;{пауза до нажатия}
case DosError of{анализ возвращенного результата выполнения}
...
end;


Ответ отправлен: 08.05.2003, 11:01
Отправитель: Sensey


Отвечает Lynx

Здравствуйте, Jens!
Помоему через bat файл можно, или перенаправь вывод в файл. Скажем так: tasm.exe prog.asm >translat.log и читай log на здоровье.


Ответ отправлен: 08.05.2003, 12:36
Отправитель: Lynx


Отвечает Byter

Доброе время суток, Jens!
Exec(...);{ компилятор ассемблера }
Readln;{ Задержка экрана }

Ответ отправлен: 08.05.2003, 13:26
Отправитель: Byter


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

Доброе время суток, Jens!
Пауза реализуется на Паскале в виде одного или нескольких READLN;
На ассемблере:
mov ah, 00h
int 16h
В результате выполнения каждой из этих конструкции программа будет ожидать нажатия какой-либо клавиши.

Ответ отправлен: 08.05.2003, 15:04
Отправитель: Tigran K. Kalaidjian


Отвечает Tancho

Здравствуйте, Jens!
Если я тебе правильно понял, то тебе нужно нещо в роде:
1) ...
if Not KeyPressed then ReadKey;
... и прогу ждеть ввода символа из клаву(можна любой) и он НЕ выходить надисплей,
или :
2)...
ReadLn; - ждеть ввода символ( Не воспринимаеть служебные символы такие как Alt, Shift, NumLock и т.д.),
символ выходить на дисплей!;
....
или
3) ...
asm
xor ax,ax
int 16h
end;
...


Ответ отправлен: 08.05.2003, 18:07
Отправитель: Tancho


Отвечает Zloy

Добрый день, Jens!
например вызови readln.

Ответ отправлен: 09.05.2003, 09:29
Отправитель: Zloy


 Вопрос № 219

привет
Значит написал я прогу - работа с файлом - потом пишет мне
файл не найден, ладно создаю в досе файл - потом пишет - нет доступа к файлу(но ведь RESET у меня естть )



Вопрос отправлен: 08.05.2003, 10:13
Отправитель: _hf

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

Отвечает Shurik

Здравствуйте, _hf!
Перепроверьте все пути и доступ к файлу - он также выставляется


Ответ отправлен: 11.05.2003, 20:01
Отправитель: Shurik


Отвечает Bill

Добрый день, _hf!
Созданный файл закрыл? Из редактора вышел? Файл используется редактором и
и никто больше не имеет права его открывать - доступ запрещен.
Простая ситуация: одна программа пишет в файл, а другая удаляет. Что должна
делать система?
Если закрыт, а ошибка есть, то надо смотреть код.

Ответ отправлен: 08.05.2003, 10:28
Отправитель: Bill


Отвечает Ayl

Добрый день, _hf!
Блин, ну что за привычка описать проблему и не привести пример кода. Гаданием на кофейной гуще заниматься очень трудно.

Ответ отправлен: 08.05.2003, 10:36
Отправитель: Ayl


Отвечает Sensey

Приветствую Вас, _hf!
А прога где? >:-(
Нету... Тогда производим гадание на кофейной гуще :)
Assign, потом Reset?
Ничем файл не занят? Другой прогой, например редактором, в котором ты его создавал...
Прогу в студию!


Ответ отправлен: 08.05.2003, 11:04
Отправитель: Sensey


Отвечает Byter

Доброе время суток, _hf!
Может каке-нибудь приложение занимает файл.


Ответ отправлен: 08.05.2003, 13:29
Отправитель: Byter


Отвечает Pin

Добрый день, _hf!
1) Файл может быть уже открыт.
2) Стоят атрибуты типа Hidden, System.
3) Вы ошиблись в пути.


Ответ отправлен: 08.05.2003, 13:58
Отправитель: Pin


Отвечает Tancho

Здравствуйте, _hf!
Ну если ты хочешь кто то тебе наистину помог давай код
прогу о коя идеть реч, а иначе все пустое дело!
Можеть тыишчешь файл не там где он находиться если во
истине создал, а может и неправилно написал в прогу
путь или имя файла?

Ответ отправлен: 08.05.2003, 15:36
Отправитель: Tancho


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

Здравствуйте, _hf!
reset у меня тоже есть (кнопочка такая на корпусе) =). Пришли программу, а то ничего не понятно. И что имеется ввиду под "создал в ДОСе файл"?
работа с файлами производится по следующему алгоритму
var f: text;{пример для текстовых файлов}
...
assign(f, 'name.txt');
reset(f);
{здесь работаем с файлом}
Close(f);


Ответ отправлен: 08.05.2003, 18:39
Отправитель: Tigran K. Kalaidjian


Отвечает Lynx

Добрый день, _hf!
Ну ты хотя бы этот кусок кода прилепил бы... А то "пальцем в небо" получается. :)


Ответ отправлен: 09.05.2003, 11:35
Отправитель: Lynx


 Вопрос № 220

hELLO
как в Досе создать Файл
католог - это md имя_каталога



Вопрос отправлен: 08.05.2003, 10:34
Отправитель: _hf

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

Отвечает Shurik

Приветствую Вас, _hf!
Именно этой командой и создать.


Ответ отправлен: 11.05.2003, 20:02
Отправитель: Shurik


Отвечает Ayl

Добрый день, _hf!
Код в приложении создает файл нулевой длины с заданным именем в текущей директории. Это если в Паскале. Если просто в DOS'е, то можно так:
type con >file.tmp
После этого можешь вводить строки до нажатия комбинации Ctrl+Z
Еще можно вот так:
echo '' >file.tmp
Можно также скопировать какой-нибудь файл:
copy oldfile.ext newfile.tmp


Приложение:

Ответ отправлен: 08.05.2003, 10:52
Отправитель: Ayl


Отвечает Bill

Доброе время суток, _hf!
Не ясно, файл или каталог... . Создать каталог:
Из командной строки DOS: > md RRR,
Из Norton Commander - F7.
Создать файл:
Из командной строки DOS: > COPY какой-то текст > fff.txt
Из Norton Commander: Shift + F4 и в окне вводищь имя файла
Или нужно программно?


Ответ отправлен: 08.05.2003, 11:53
Отправитель: Bill


Отвечает Lynx

Доброе время суток, _hf!
Команда copy con <имя файла>, затем вводишь текст файла, после ввода жмёшь Ctrl+Z. И всё. ;)


Ответ отправлен: 08.05.2003, 12:39
Отправитель: Lynx


Отвечает _vt

Доброе время суток, _hf!
1 способ: copy con имя_файла , далее можно вводить его содержание с клавиатуры, для того чтобы закончить, нужно ввести символ конца файла (нажать F6 или Ctrl+Z)и Enter. Например, создать пустой файл с именем text.txt -
copy con text.txt[enter][F6][enter]
2 способ: создать его в любой файловой оболочке (Shift+F4) и т. д. Способов море...


Ответ отправлен: 08.05.2003, 12:40
Отправитель: _vt


Отвечает Pin

Здравствуйте, _hf!
Можно copy con <имя файла>
Ввод с клавы. Чтобы его закончить используйте CTRL+Z, ENTER.

Ответ отправлен: 08.05.2003, 13:56
Отправитель: Pin


Отвечает Tancho

Приветствую Вас, _hf!
В MS DOS - 1)создаешь каталог , за знак промпта,
C:>md kat('kat' имя католога ) и надо
появиться снова знак промпрта(c:>);
2)c:>cd kat - надо входить в созданый каталог;
2)За знак промпта (C:kat>) вводишь
COPY con>'primer.dan'(здесь 'primer' - имя файла, 'dan' -его рассширении, а '.'-разделитель, потом вводиш из клавиатуру что тебе угодно, в конце CTRL+Z,
а потом и все будеть в файле;
3) У твою прогу на pascal'е надо открыть файл -
Open(f,'c:katprimer.dan'), а потом установить указатель
reset(f), f - описатель типа файла(файловый указатель).
P.S. Я полагаю, что в начале ты находишься на диск 'C' и
в основном каталоге, поетому пишу C:> ... и так дале!


Ответ отправлен: 08.05.2003, 16:00
Отправитель: Tancho


Отвечает DoS@

Здравствуйте, _hf!
Смотри приложение!

Приложение:

Ответ отправлен: 08.05.2003, 20:12
Отправитель: DoS@


 Вопрос № 221

привет хАкЕрАм(шутка )
вопрос: при начальном этапе резработки программы на Паскале у меня "присутствует" динамическая память после компиляции
statik memory - поясните как происходит переход от одной памяти к другой(по подробнее )
или я вообще несу полную чущь
Заранее благодерен
Ваш слуга Hi-Fi........



Вопрос отправлен: 08.05.2003, 19:31
Отправитель: _hf (_hf@tut.by)

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

Отвечает Shurik

Добрый день, _hf!
Память резервируется в зависимости от того, как вы это напишете. Ничего больше.


Ответ отправлен: 11.05.2003, 20:03
Отправитель: Shurik


Отвечает Andy

Приветствую Вас, _hf!
> вопрос: при начальном этапе резработки программы на
> Паскале у меня "присутствует" динамическая память после
> компиляции statik memory - поясните как происходит
> переход от одной памяти к другой
1. что вы понимаете под "присутствует динамическая память"?
2. что значит как происходит переход? все что вы описываете как переменные (массивы стринги интегеры и пр.) является статикой и под это просто выделяется память. Динамической памятью называется то что выделяется под себя программой уже после запуска (например динамические списки или деревья) и ни в какую static memory оно не переходит.
Andy


Ответ отправлен: 08.05.2003, 21:39
Отправитель: Andy


Отвечает Bill

Добрый день, _hf!
Конечно, вопрос интересный ..., но:
статическая память - это то, что занято "обычными" переменными Паскаля, то есть объявлены в разделе VAR A:Integer; B:Array[1..50] of real.
Обращение к нем происходит по имени: B[5]:=1.02E-4; или с помощью указателей (pointer). Но программе выделяется еще память динамическая или "куча" (heap). Обращение к ней возможно только с помощью указателей (или с помощью операторов-массивов MEM).
В принципе, динамическая память вся Ваша, но лучше предупреждать операционную систему о том, что Вы разместили в этой памяти что-то (GetMem или New (см. стандартный пример по GetMem)). Это важно в DOS, где другая программа (резидентная, в частности) также может разместить в этой же области памяти свои данные, и "затереть" Ваши! Закончив работу, нужно сказать ОС, что память Вам больше не нужна (FreeMem или Dispose). Если пишите на Паскале для DOS, а запускаете в Windows, то последнее не обязательно делать. А вот в "чистой" DOS ...


Ответ отправлен: 11.05.2003, 12:35
Отправитель: Bill


Отвечает _vt

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


Ответ отправлен: 09.05.2003, 01:44
Отправитель: _vt



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

Внимание!
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+ или отправлять вопросы с сайта по адресу: http://rusfaq.ru/cgi-bin/Message.cgi.

(C) 2002-2003 Команда RusFAQ.ru.

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

Ваше имя:

Ваш e-mail:

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


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

Ваш вопрос:


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


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


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

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

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




Задать вопрос | Регистрация эксперта | Поиск в базе | Чат | Форумы | Новости
Проект экспертов RusFAQ.ru | Фотоальбом | Virus.RusFAQ.ru | Администрирование


Яндекс цитирования
© 2003 Россия, Москва. Авторское право: RusFAQ.ru

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

В избранное