Суббота, 20 Апреля 2024, 05:10

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Форум игроделов » Программирование » Delphi/Pascal/Object Pascal » Pascal u ncurses
Pascal u ncurses
camacДата: Понедельник, 10 Июня 2019, 15:44 | Сообщение # 1
был не раз
Сейчас нет на сайте
Нигде не нашел информации об использовании ncurses в паскале. Есть малость для Си. Но это для меня сложно.
Есть ли где-то какая-нибудь информация именно для паскаля?


Никто не знает столько, сколько не знаю я.
martukДата: Понедельник, 10 Июня 2019, 16:18 | Сообщение # 2
заслуженный участник
Сейчас нет на сайте
Вот информация об использовании ncurses в паскале. Точнее в freePascal'e. (Паскаль сам по себе уже давно мертв и что то искать по нему уже нет смысла)
+ вот примеры
camacДата: Вторник, 11 Июня 2019, 09:36 | Сообщение # 3
был не раз
Сейчас нет на сайте
Это я видел. Но на этой страничке информации 0.
За примеры спасибо. Просмотрю.

PS. И таки да. FreePascal. В Linux.

Добавлено (11 Июня 2019, 09:44)
---------------------------------------------
Взял один из примеров и сразу же получил неизменный результат:

Любая попытка подключить ncurses завершается одинаково. Поэтому и пытаюсь найти хоть что-то, что укажет - как же это мерзость пользовать.


Никто не знает столько, сколько не знаю я.

Сообщение отредактировал camac - Вторник, 11 Июня 2019, 09:45
afqДата: Вторник, 11 Июня 2019, 16:40 | Сообщение # 4
Разработчик
Сейчас нет на сайте
camac, ну ncursesw это для широких символов. Вы точно хотите использовать ncursesw? Может просто ncurses? На си надо подключить заголовок
Код
include <ncurses.h>
, и при компиляции задать библиотеку. У вас же пишет что не найдены библиотеки. Вам надо их подключить.

Добавлено (11 Июня 2019, 16:45)
---------------------------------------------
Видимо может быть такое, что достаточно в коде написать использование библиотек. Тогда может вы не установили ncurses на компьютер.

Код

sudo apt install libncurses5-dev
sudo apt install libncursesw5-dev
sudo apt install ncurses-doc
drcrackДата: Вторник, 11 Июня 2019, 17:53 | Сообщение # 5
старожил
Сейчас нет на сайте
попробуй передать линкеру параметр --verbose и посмотри где конкретно он ищет либы

PS afq, мощный пост! тс хочет подключить ncursesw в паскале, ты ему обьясняешь как подключить ncurses в си :D
afqДата: Вторник, 11 Июня 2019, 19:03 | Сообщение # 6
Разработчик
Сейчас нет на сайте
drcrack, так я ему написал чтобы он установил эти библиотеки. И если не может найти ncursesw, то значит ncursesw скорее всего не установлена. Если у него в коде ncursesw стоит, то надо поменять на ncurses и убедиться что ncurses библиотека установлена на компьютер. Скорее всего у него просто эти библиотеки не установлены. А искать эти либы он должен в нужном месте.

Добавлено (11 Июня 2019, 21:28)
---------------------------------------------
А я понел что ты имеешь ввиду. Да сишные либы советую установить, а у него паскаль. Ну может там обёртка есть. Ну я щас посмотрю, как раз устанавливаю паскаль.

camacДата: Вторник, 11 Июня 2019, 21:39 | Сообщение # 7
был не раз
Сейчас нет на сайте
В данном непосредственном случае я просто совершил очепятку. Нужно было ncurses. И только сейчас заметил, что в файлике, который я пытался есть еще и uses menu;. Файлик называется menu_demo.pp из примеров.
Завтра попробую нормально.
А вот про ncursesw не знал. Можно подробней? Что за "широкие символы"?


Никто не знает столько, сколько не знаю я.
afqДата: Вторник, 11 Июня 2019, 21:53 | Сообщение # 8
Разработчик
Сейчас нет на сайте
camac, широкие символы это значит что один символ для отображения занимает два байта. Если английский символ занимает один байт
Код

man ascii

То русская буква занимает два байта. Это и есть широкий символ. Русские буквы будут видны и в ncurses, просто не посчитать правильно количество букв, если одна буква один байт, другая два байта. Да и кстати, если писать в широких символах, то английская буква тоже будет занимать два байта, только первый байт будет равен нулю вроде, или второй нулю.

Добавлено (11 Июня 2019, 22:00)
---------------------------------------------
camac, советую тебе изучить си язык. Для него очень много библиотек в линуксе. Можешь даже задавать мне вопросы по си, я может быть тебе отвечю. Прочитай книгу кернигана ритчи. Там вроде 300 страниц. Когда знаешь несколько языков, будет классно. Хочешь писать на pascal, пиши, захотел использовать либы, которых нет в паскаль, пишешь на си. В основном пишут библиотеки и всё прочее на си. Потом из-за этого можно использовать сишные функции в других языках. Так например на gtk можно писать на других языках. Правда gtk сложная либа, если самому виджет делать. Но си простой язык. Даже c++ не нужен. Если хочешь объектно-ориентированности, то выбирай c++. Например в c# и java есть ограничения в наследовании, хотя языки вроде бы не плохие, но разработчики не смогли сделать множественное наследование.

drcrackДата: Вторник, 11 Июня 2019, 23:42 | Сообщение # 9
старожил
Сейчас нет на сайте
Цитата
но разработчики не смогли сделать множественное наследование.

чето орнул
щаз pixeye придет прочитает, вообще из-под стола не вылезет
afqДата: Среда, 12 Июня 2019, 02:11 | Сообщение # 10
Разработчик
Сейчас нет на сайте
drcrack, кстати да, смешно.

Добавлено (12 Июня 2019, 04:58)
---------------------------------------------
camac, почитай его книгу https://gcup.ru/blog/kniga_put_v_programmisty/2019-06-10-1619. Только курс не покупай. Язык вполне можно самостоятельно освоить. Он как раз в книге советует изучать программирование на си. А этот язык довольно стойкий. На нём написаны ос. Линукс например написан на си. Это значит что си никогда не умрёт. Куча gnu софта написана на си. Я например даже в ядре линукса создавал свою api фукнцию, но не мог из си вызвать её, а через ассемблер получилось вызвать и получить результат. Вот например ты хочешь работать с изображением, мне для этого надо скачать нужные библиотеки. А как дела в pascal? Например новый формат появиться видео или изображения, они будут доступны только для си или c++, но скорее всего на си, а на c++ сделают обёртку ( чтобы работать было удобнее ). Я когда-то учил delphi и немного программировал. Но даже в то время на delphi уже трудно было найти работу в моём городе, а это был 2008 год. Да и на си конечно не найдешь, но ты сможешь создать для себя любую программу, если хватит сил, но библиотек тебе точно ( наверное ) хватит. Си как и паскаль, стуктурный а не объектно ориентированный. deal
Вот например программа на паскаль.

Код

program simple;
var
  x: integer;
begin
  a := 3;
  writeln ( 'a: ', a );
end.

В pascal переменные объявляются только в var или вроде в глобальной области видимости ( уже не помню ). В си же ты можешь объявить переменную в любом месте в коде, но только до его использования.
Например в pascal надо использовать
Код

uses ncurses;

А в си тоже не так сложно. Просто подключаешь заголовки функций. Этот заголовок
Код

#include <ncurses.h>

содержит в себе названия функций. Чтобы ими пользоваться, они должны быть объявлены. Также в си есть точка входа, это значит что в программе должна быть объявлена функция, с которой всё начинается. В си эта функция называется main. И вот получается код.
Код

#include <ncurses.h>

int main ( )
{
  int a;
  a = 3;
  printf ( "a: %d\n", a );
  initscr ( );
}
camacДата: Среда, 12 Июня 2019, 15:04 | Сообщение # 11
был не раз
Сейчас нет на сайте
Бодрого дня.
Сразу расставлю все запятые над буквой зю. Программирование я начал пытаться изучать недавно. И в очень сильно не молодом возрасте. Так сказать, чтоб было, чем на пенсии заняться. И, при этом, я гуманитарий (в прямом смысле этого слова).
Занимаюсь по различной литературе, какую смогу найти. Нормальной ничтожно мало. В основном - макулатура.
Начинал как раз с Си. Результат - стойкое отвращение. Ужасный, бардачный и абсолютно не логичный язык программирования. А вот паскаль пошел просто на ура.
Ну разве объявление переменных, где приспичит или взбредет, это нормально?

Так, с лирикой покончили. Как говорится - на том его и порешили.

По теме. Сегодня попробовал подключить снова ncurses - все нормально. Подключилось. Теперь бы еще понять, как это пользовать. А вот про ncurses ругается -
Цитата
qwerty.pas(2,6) Fatal: Can't find unit ncursesw used by qwerty

Но, вроде бы, установлено.


Никто не знает столько, сколько не знаю я.
martukДата: Среда, 12 Июня 2019, 15:28 | Сообщение # 12
заслуженный участник
Сейчас нет на сайте
Цитата camac ()
Ну разве объявление переменных, где приспичит или взбредет, это нормально?

Для этого есть паттерны программирования. А то, что паскаль требует объявлять их заранее в некой "шапке" - тот еще бред и гемор. Сам довольно долго раньше писал на фри паскале и я знаю о чем говорю. На моей памяти нет более лаконичного, логичного, удобного, продуманного языка чем си-образный язык.


Сообщение отредактировал martuk - Среда, 12 Июня 2019, 15:29
camacДата: Среда, 12 Июня 2019, 17:21 | Сообщение # 13
был не раз
Сейчас нет на сайте
Да, у нас с Вами разные взгляды. И это правильно.
Сколько людей - столько и заблуждений.


Никто не знает столько, сколько не знаю я.
drcrackДата: Среда, 12 Июня 2019, 18:37 | Сообщение # 14
старожил
Сейчас нет на сайте
Цитата
Да, у нас с Вами разные взгляды. И это правильно.
Сколько людей - столько и заблуждений.

Когда чел с 10-летним опытом обьясняет новичку, в чем тот ошибается, это не разные взляды, это просто второму не хватает пока опыта самому все это понять.
Ничего страшного в принципе, рано или поздно ты сам к этому придешь

Цитата
Так сказать, чтоб было, чем на пенсии заняться.

Лазить по форумам в надеждах что где-то еще остались люди которые что-то помнят про технологии 20-летней давности и смогут помочь решить твою очередную проблему?
Сомнительное удовольствие, особенно для пенсионера

Самое главное (для начинающего) в языке/технологии это его коммьюнити
Выбери любой живой язык (python например) и дело пойдет быстрее раз в 5


Сообщение отредактировал drcrack - Среда, 12 Июня 2019, 18:38
afqДата: Среда, 12 Июня 2019, 19:46 | Сообщение # 15
Разработчик
Сейчас нет на сайте
Цитата
Начинал как раз с Си. Результат - стойкое отвращение.

camac, у меня такое отвращение к php, но я всё равно иногда пытаюсь его изучить. Просто в нашем городе без образования только в веб программировании можно найти работу. Вот я иногда вдохновляюсь и пытаюсь учить веб программирование. Но учить надо много. html, css, javascript, php. Раньше учил php, щас думаю, надо же всё таки научиться делать страницы сначала, ну там на html, css. Потом когда научусь делать красивые страницы, появиться вдохновение делать какой нибудь функционал, и тогда я думаю возьмусь за php уже серьезней.
Я в подростковом возрасте начал изучать программирование, но из-за проблем с памятью ( которые я испытывал ) я забросил изучение. Очень долго гулял на улице. Дома редко бывал. И так я прогулял аж до 2012 года. Почти не работал, учиться, доучился, но егэ не сдал. Начал дома сидеть. Вот уже прошло 7 лет. А я даже и не знаю чем всё это время занимался. Вроде бы изучал си, но программ мало написал за такой то срок. Короче когда я работал мог заработать несколько тысяч всего рублей. А это мало. У меня есть последний шанс это научиться программировать и заработать на этом. Только так я получу удовольствие от работы ( наверное ). Когда можно из дома писать софт. Ну или ходить на работу, но программистом. В общем только программистом я смогу заработать больше 20 тыс рублей без образования.

Добавлено (12 Июня 2019, 19:58)
---------------------------------------------
camac, я кстати писал на ncurses программу. https://github.com/xverizex/rfcreader
Там навигация по документам rfc. Очень классно сделана программа. Жаль видео нет, раньше было. Там меню двигается. В коде может ничего и не разобрать, но я прекратил поддержку, когда всё довёл до конца. Единственной проблемой, которую не решил, так это я распаковываю архив с помощью консольной команды tar. Так как не осилил распаковку в программировании. Там вроде zlib нужна, а может и нет. В общем сделал проще, но работает. Например надо посмотреть документы по ip. Пишешь ip, после каждого нажатия подбираются совпадния по ключевому слову. Написал ip, выбрал вверх вниз нужный документ и нажал enter и читаешь документ.

Добавлено (12 Июня 2019, 20:21)
---------------------------------------------
camac, я тут записал видео, правда видео ещё загружается, но к тому времени как ты посмотришь это видео, оно уже будет загружено. Я сделал на ncurses программу давно и чтобы было понятней как она работает, записал видео. Скоро оно будет доступно.


Добавлено (12 Июня 2019, 20:46)
---------------------------------------------
camac сможешь такую на pascal сделать?

Добавлено (13 Июня 2019, 00:18)
---------------------------------------------
camac, если линукс, то там все команды ncurses.

Код

man ncurses
man color

Надо чтобы ncurses-doc был установлен.


Сообщение отредактировал afq - Среда, 12 Июня 2019, 20:51
camacДата: Четверг, 13 Июня 2019, 13:56 | Сообщение # 16
был не раз
Сейчас нет на сайте
По поводу Си. Его бардачности и прочая..
Взял классику - Керниган и Ричи. Книжки в разных форматах и с разных сайтов.
И повсюду разнобой. Уже на первых же примерах:
- у одних ВСЁ заглавными:
Код

MAIN()
    {
            PRINTF("HELLO, ");
            PRINTF("WORLD");
            PRINTF("\N");
    }

кстати эта самая \N вызывает предупреждение
Цитата

gcc -Wall -o "proba" "proba.c" (в каталоге: /opt)
proba.c:3:1: warning: return type defaults to ‘int’ [-Wimplicit-int]
main ()
^~~~
proba.c: In function ‘main’:
proba.c:7:10: warning: unknown escape sequence: '\N'
printf("\N");
^~~~
Сборка прошла успешно.

и печатает эту самую N: Hello, worldN
- у других:
Цитата

#include ‹stdio.h›

main()
{
printf("Hello, ");
printf("world");
printf('\n');
}

та же \n в одинарных кавычках, что вызывает ошибку
Цитата

gcc -Wall -o "proba" "proba.c" (в каталоге: /opt)
proba.c:3:1: warning: return type defaults to ‘int’ [-Wimplicit-int]
main ()
^~~~
proba.c: In function ‘main’:
proba.c:7:10: warning: passing argument 1 of ‘printf’ makes pointer from integer without a cast [-Wint-conversion]
printf('\n');
^~~~
In file included from proba.c:1:0:
/usr/include/stdio.h:318:12: note: expected ‘const char * restrict’ but argument is of type ‘int’
extern int printf (const char *__restrict __format, ...);
^~~~~~
proba.c:7:3: warning: format not a string literal and no format arguments [-Wformat-security]
printf('\n');
^~~~~~
Сборка прошла успешно.

и при попытке выполнить (Сборка, ведь, прошла успешно) получаем:
Цитата

Segmentation fault (core dumped)

- у третьих дано printf("\n");, что дает, наконец-то, нужный результат.
Но в большинстве литературы упорно пишут printf('\n');, вводя людей в заблуждение. И так практически почти по всем примерам.
По Си стОящей литературы фактически еще меньше, чем по Паскалю.


Никто не знает столько, сколько не знаю я.

Сообщение отредактировал camac - Четверг, 13 Июня 2019, 13:57
afqДата: Четверг, 13 Июня 2019, 20:53 | Сообщение # 17
Разработчик
Сейчас нет на сайте
Цитата
По Си стОящей литературы фактически еще меньше, чем по Паскалю.

camac, ну это если в инете скачивать, да и то можно догодаться как правильно писать, вы же догадались. Я например по этой книге учился, по кернигану ритчи. Ну ещё я вот по этой книге учился. http://padabum.com/d.php?id=202686

Добавлено (13 Июня 2019, 20:54)
---------------------------------------------
Эта книга, которую ссылку я привёл, там всё нормально с текстом и интересно всё пишут. Это была моя первая книга по си, которую я прочитал всю.

Добавлено (14 Июня 2019, 00:03)
---------------------------------------------
camac, на си например можно делать утилиты, которые упрощают работу. Но заработать на си сложно. Потому что помимо языка нужны ещё знания. Но если утилиты для себя делать, то си вполне хватит. Меня не раз спасал си, когда нужно было программу написать, чтобы она нужным способом сделала что надо. Но чтобы заработать деньги, надо ещё что-то знать. Я например пытаюсь освоить веб разработку. Будет классно если у меня получиться. Java хоть и знаю язык и в линуксе есть openjdk, то компании вроде используют oracle-jvm. Блин java классный язык вроде, даже на игрушечный похож. Но книги для java очень дорогие, и технологий надо много знать, чтобы писать, а я пока английский ещё учу, не смогу в документации нарыть нужную информацию. Поэтому выбор пал на php. Есть вакансии, где можно устроиться удаленно разработчиком. Это вообще супер. Проснулся, попил кофе, сел за свой компьютер и работаешь. Захотел, прилёг полежал. Да и без образования берут на работу, это вообще супер. Если я справлюсь, то до пенсии, а может и на пенсии, я обеспечю себя заработком. Правда я не знаю что такое работать программистом каждый день. Ну посмотрим.

Добавлено (14 Июня 2019, 01:35)
---------------------------------------------
Блин, что-то не получается у меня учить этот php. Я думаю что лучше прокачивать свои знания в си программировании. И продолжать делать задачи, которые для меня сложны.

martukДата: Пятница, 14 Июня 2019, 08:55 | Сообщение # 18
заслуженный участник
Сейчас нет на сайте
camac, нужно просто знать:
Переменные начинаются всегда с маленькой буквы. Пример: printn, printN
Функции (методы) - то же что и переменные.
Классы - всегда с большой. Пример: Myclass, MyClass.
Константы - всегда большими. Пример: MY_CONSTANT.

Ты можешь не придерживаться данных негласных правил, но тогда будет реально уже бардак.
А если увидишь в примерах функцию аля PRINTF, то плюй автору в лицо и переходи к другой книжке, вот и все. (если этот язык не JS)


Сообщение отредактировал martuk - Пятница, 14 Июня 2019, 08:56
Форум игроделов » Программирование » Delphi/Pascal/Object Pascal » Pascal u ncurses
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг