IPB
ЛогинПароль:

> 

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

 
 Ответить  Открыть новую тему 
> оболочка к write(), fp
сообщение
Сообщение #1


Человек
*****

Группа: Пользователи
Сообщений: 1 050
Пол: Мужской
Реальное имя: Станислав

Репутация: -  3  +


Добрый день!
Меня интересует следующий вопрос, можна ли создать оболочку к write? Допустим я хочу писать в определенное место на терменале, но все это спрятатьв отдельную процедуру... Честно говоря, учитывая то что я знаю о write, я сомневаюсь что это реализуемо, но, может...

заранее благодарен.


--------------------
Спасибо!
Удачи!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Perl. Just code it!
******

Группа: Пользователи
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

Репутация: -  44  +


Цитата
в определенное место на терменале


что ты имеешь в виду ? Определенное место на экране ? Для это есть gotoXY.


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Человек
*****

Группа: Пользователи
Сообщений: 1 050
Пол: Мужской
Реальное имя: Станислав

Репутация: -  3  +


Цитата(klem4 @ 5.01.2008 21:15) *
что ты имеешь в виду ? Определенное место на экране ? Для это есть gotoXY.
да, но допустим я хочу написать как то так
        x:=wherex(); y:=wherey();
gotoxy(20,20);
write(s); //выводим s
gotoxy(x, y);
и каждый раз такое творить не очень та и хочеться....

Сообщение отредактировано: compiler -


--------------------
Спасибо!
Удачи!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Perl. Just code it!
******

Группа: Пользователи
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

Репутация: -  44  +


ну и в чем трабл ?)

uses crt;

procedure write_and_return(const msg: String; const x, y: Word);
var
return_x, return_y: Word;
begin
return_x := WhereX;
return_y := WhereY;

GoToXY(x, y);
writeln(msg);
GoTOXY(return_x, return_y);
end;

begin
clrscr;

write_and_return('a', 10, 10);
writeln('b');
write_and_return('c', 10, 11);

readln;
end.


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Гость






Цитата
ну и в чем трабл ?)
Вот в этом, вестимо:

var test: integer;
...
write_and_return(test, 10, 10); // <--- Error
...

Что, только переменные одного типа печатаются обычно?

compiler, смотри в сторону Format + array of const
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Человек
*****

Группа: Пользователи
Сообщений: 1 050
Пол: Мужской
Реальное имя: Станислав

Репутация: -  3  +


klem4, прости что ввел в заблуждение названием переменной..
Цитата(volvo @ 5.01.2008 22:07) *
compiler, смотри в сторону Format + array of const
тоесть? как их тут использовать?
может стоит передавать указатель на то что печатаем и переменную перечасляемого типа в которой будет тип, вот...
например, wr(my_point, integer, x, y);, а затем как то это обрабатывать...


--------------------
Спасибо!
Удачи!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Гость






uses sysutils, crt;

procedure write(px, py: integer;
s: string; arrX: array of const);
var x, y: integer;
begin
x := wherex(); y := wherey();
gotoxy(px, py);
system.write(format(s, arrX));
gotoxy(x, y);
end;

var
i: integer;
s: string;
f: double;

begin
clrscr;
s := 'test'; f := 11.45; i := 20;

write(10, 10, '%s', [s]);
write(15, 15, '%d %5.2f', [i, f]);

end.

Можешь не переопределять Write, а дать другое имя процедуре...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Человек
*****

Группа: Пользователи
Сообщений: 1 050
Пол: Мужской
Реальное имя: Станислав

Репутация: -  3  +


Спасибо, то что надо!

system.write(format(s, arrX));
o_O, а можна комментарий?

1)обращение к system. надо для того что бы обратиться к нужной write?
2)что делает format?



Сообщение отредактировано: compiler -


--------------------
Спасибо!
Удачи!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


Гость






Цитата
обращение к system. надо для того что бы обратиться к нужной write?
Если не будет system. - то компилятор посчитает вызов Write рекурсивным, и просто скажет, что не хватает параметров...

Цитата
что делает format?
Форматирует строку по шаблону, переданному первым параметром (printf-ом в Сях пользовался? Что-то очень похожее):
SysUtils: Format
 К началу страницы 
+ Ответить 
сообщение
Сообщение #10


Человек
*****

Группа: Пользователи
Сообщений: 1 050
Пол: Мужской
Реальное имя: Станислав

Репутация: -  3  +


volvo, спасибо! буду разбираться...


--------------------
Спасибо!
Удачи!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 28.09.2020 16:29
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name