AkelPad Forum Index AkelPad
Support forum
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Нюансы Vbs скриптинга в AkelPad`e
Goto page Previous  1, 2
 
Post new topic   Reply to topic    AkelPad Forum Index -> Discussion (Russian)
View previous topic :: View next topic  
Author Message
Egor



Joined: 26 Nov 2011
Posts: 30

PostPosted: Wed Nov 30, 2011 6:01 pm    Post subject: Reply with quote

...

(3). В топике, где выкладывают скрипты для AkelPad, подавляющее большинство скриптов написано на JS, но для WSH (как мне казалось) обычно пишут на VBS, это какое-то религиозное предпочтение? Просто лично я не люблю JS, у него смнтаксис тупой какой-то, в коде разобраться трудно.
Back to top
View user's profile Send private message Send e-mail
Fr0sT



Joined: 24 Jul 2007
Posts: 876

PostPosted: Thu Dec 01, 2011 6:02 am    Post subject: Reply with quote

(3) Есть несколько скриптов на VBS, а так да, основной - JS, видимо, потому, что похож на С Smile
Back to top
View user's profile Send private message
FeyFre



Joined: 07 Aug 2007
Posts: 2033
Location: Vinnitsa, Ukraine

PostPosted: Thu Dec 01, 2011 9:15 am    Post subject: Reply with quote

Quote:
обычно пишут на VBS
Обычно делают то что умеют лучше. В данном случае большинство народа лучше всего умеют писать на ECMA262, так как он более распространен(ибо развелось школоты аля программисты - веб программисты). Как только WSH научится Lua я перейду на него. А если научится С++ - тем более.
Back to top
View user's profile Send private message AIM Address Yahoo Messenger MSN Messenger
opk44



Joined: 16 Jan 2010
Posts: 320

PostPosted: Thu Dec 01, 2011 2:50 pm    Post subject: Reply with quote

Egor(3).
Кроме синтаксиса есть и иные различия. Пусть и малозаметные, но иногда "вдруг" становящиеся важными.
Например в списке методов AkelPad есть начинающиеся с символа подчеркивания: _TCHAR, _TSTR, _TSIZE, _X64. В VBS такие имена недопустимы, поэтому если такие методы вам в скрипте понадобятся, то очевидно, что этот скрипт будет написн на JS. А когда что-то кем-то ранее написано на JS, то логичнее не изобретать велосипед на VBS, а просто "подворовывать" из имеющегося. Но с другой стороны, в Jscript нет, например, полного аналога паре Asc()/Chr() из VBScript (если возникает необходимость работать не с юникодом, а именно с байтовыми кодировками), поэтому отказываться от VBScript окончательно ни к чему.
Back to top
View user's profile Send private message
Egor



Joined: 26 Nov 2011
Posts: 30

PostPosted: Thu Dec 01, 2011 6:15 pm    Post subject: Reply with quote

opk44 wrote:
В списке методов AkelPad есть начинающиеся с символа подчеркивания: _TCHAR, _TSTR, _TSIZE, _X64. В VBS такие имена недопустимы, поэтому если такие методы вам в скрипте понадобятся, то очевидно, что этот скрипт будет написн на JS

Понятно. А почему они начинаются именно с "_" — это какая-то неизбежная необходимость или просто разрабам "так захотелось"?
Back to top
View user's profile Send private message Send e-mail
Serge Yolkin



Joined: 27 Jul 2010
Posts: 247

PostPosted: Thu Dec 01, 2011 7:24 pm    Post subject: Reply with quote

Egor
Вы исключаете вероятность тьго, что "разрабы" не знают Васика и ограничений его синтаксиса?

(Я не знаю)
Back to top
View user's profile Send private message
Infocatcher



Joined: 06 Aug 2007
Posts: 1592

PostPosted: Thu Dec 01, 2011 7:33 pm    Post subject: Reply with quote

Так, вроде, открытым текстом написано:
Code:
  'VBScript deny names start with (_) underscope
  if AkelPad.IsOldWindows() then
    TCHAR="A"
    TSIZE=1
    TSTR=0
  else
    TCHAR="W"
    TSIZE=2
    TSTR=1
  end if

(Scripts-Rus.txt)

А вот аналога для _X64 что-то не видать.

P.S. И да, underscore Smile
Back to top
View user's profile Send private message
FeyFre



Joined: 07 Aug 2007
Posts: 2033
Location: Vinnitsa, Ukraine

PostPosted: Thu Dec 01, 2011 10:03 pm    Post subject: Reply with quote

Quote:
А почему они начинаются именно с "_" — это какая-то неизбежная необходимость или просто разрабам "так захотелось"?
А почему у нас правостороннее дорожное движение, а у японцев и англичан левостороннее?
В общем легенда такая.
Заметили что эти константы имеют общее? А именно: _T
Так такая вот комбинация символов используется в Microsoft SDK для унификации структуры приложений которые должны быть совместимы на разных версиях оболочки: на ANSI-версиях и на UNICODE-версиях. Ну а так как это довольно таки удобно, то почему бы его тут не сделать?
Back to top
View user's profile Send private message AIM Address Yahoo Messenger MSN Messenger
Egor



Joined: 26 Nov 2011
Posts: 30

PostPosted: Fri Dec 02, 2011 6:10 pm    Post subject: Reply with quote

Я все-таки так и не понял: когда разрабы создавали AkelPad и его объектную модель, они были _вынуждены_ использовать символ "_" в начале некоторых констант, или они просто решили, что это типа прикольно ("похоже на C++")? Я не программист и не имею ни малейшего представления, как там WSH прикручен к AkelPad, я рассуждаю, наверное, тупо, но: если плагин Scripts основан на WSH, а под WSH пишут либо на JS, либо на VBS, то почему произошло так, что VBS применительно к AkelPad претерпел "расовую дискриминацию":)?
Back to top
View user's profile Send private message Send e-mail
FeyFre



Joined: 07 Aug 2007
Posts: 2033
Location: Vinnitsa, Ukraine

PostPosted: Fri Dec 02, 2011 7:28 pm    Post subject: Reply with quote

Egor
Также у программистов принято начинать с символа _ или называть только символом _ переменные либо функции, которые не имеют значения для процесса решения прикладной задачи(служебные) либо вообще не нужны. Например, код для обмена двух переменных значениями:
Code:
int supernumberone = 55;
int supernumbertwo = 66;
// меняем используя временную пременную
int _temp = supernumberone;
supernumberone = supernumbertwo;
supernumbertwo = _temp;

В этом примере переменная _temp не играет никакой полезной прикладной роли в отличии от supernumberone и supernumbertwo, а потому её назвали с подчеркиванием в голове. Конечно могли назвать и temp, но тогда при обилии таки временных переменных среда разработки засоряла бы список подсказки на слова начинающиеся с temp, и вместо того что-бы сразу же подсказать например какого-нибудь temperature_last_known, оно засорит его temp1,temp2,temp2, и т.д. и вся польза от подсказки улетучится.
Второй пример:
Code:
const _TCHAR* format = _T("Super format string %s%s%s");
_tprintf(format,_T("Hello"),_T(", "),_T("World!\n"))

В этом примере макросы _T, _TCHAR и _tprintf - служебныу макросы, суть которых знать не обязательно, ибо прикладной задачи не несут. Потому оформлены с _. Так удобно, ибо программист знает что полезной прикладной функции они не несут.
Back to top
View user's profile Send private message AIM Address Yahoo Messenger MSN Messenger
Fr0sT



Joined: 24 Jul 2007
Posts: 876

PostPosted: Mon Dec 05, 2011 10:07 am    Post subject: Reply with quote

FeyFre
но все же надо признать, что это фича в основном сишная. И как большинство сишного, неинтуитивная (а ведь есть еще и двойное "_" ...)
Back to top
View user's profile Send private message
FeyFre



Joined: 07 Aug 2007
Posts: 2033
Location: Vinnitsa, Ukraine

PostPosted: Mon Dec 05, 2011 10:49 am    Post subject: Reply with quote

Fr0sT, игнорируя свою практику, говорю: судя по тому чего напринимали в ISO/IEC 14882:201 (известен как C++11) то нам понадобятся не только _T но и хз ещё что.
Back to top
View user's profile Send private message AIM Address Yahoo Messenger MSN Messenger
Display posts from previous:   
Post new topic   Reply to topic    AkelPad Forum Index -> Discussion (Russian) All times are GMT
Goto page Previous  1, 2
Page 2 of 2

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


SourceForge.net Logo Powered by phpBB © 2001, 2005 phpBB Group