SASGIS

Веб-картография и навигация

Язык скриптов SAS - есть где-нибудь описание?

программа для загрузки и просмотра спутниковых снимков Земли, Луны, Марса предоставленных сервисами Google Maps и Космоснимки. Возможность работы с GPS приёмником.

Модератор: Tolik

Язык скриптов SAS - есть где-нибудь описание?

Сообщение PechalnikU » 09 май 2010, 00:02

Собственно, мне надо сгенерировать ссылку на отсутствующую в стандартном комплекте карту, а для этого нужно знать язык скриптов. Его описания на сайте я не нашёл, к сожалению... Может, конечно, плохо искал... В readme к программе написано только, что скрипты, цитирую: "пишутся на обычном pascal". (У меня версия SAS 100330) А что именно за Pascal? Какие модули поддерживаются, какие вообще соглашения по написанию скрпитов, что вообще за процедуры/функции поддерживаются и т.д? В readme как-то уж больно коротко. Мне, собственно, нужно Base64 кодирование, для генерации ссылки. Но хотелось бы на будущее просто более подробное описание языка скриптов.
PechalnikU
Новичок
 
Сообщения: 1
Зарегистрирован: 08 май 2010, 23:50
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Re: Язык скриптов SAS - есть где-нибудь описание?

Сообщение feya » 09 май 2010, 10:31

Код: Выделить всё
function Encode(S: string): string;
var i,a,x,b: Integer;
   Codes64:string;
begin
Codes64:='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';
for i:=1 to length(s) do
  if ord(s[i]) mod 2 = 0 then S[i]:=chr(ord(s[i])+1)
                         else S[i]:=chr(ord(s[i])-1);
Result:='';
a:=0;
b:=0;
for i := 1 to Length(s) do
  begin
   x:=Ord(s[i]);
   b:=b*256+x;
   a:=a+8;
   while a >= 6 do
    begin
     a := a-6;
     x := b div (1 shl a);
     b := b mod (1 shl a);
     Result := Result + Codes64[x + 1];
    end;
  end;
if a>0 then Result:=Result+Codes64[(b shl (6-a))+1];
end;
http://sasgis.org | SAS.Планета | SASPlanet
Аватара пользователя
feya
Гуру
 
Сообщения: 2034
Зарегистрирован: 13 июл 2008, 10:45
Благодарил (а): 5 раз.
Поблагодарили: 32 раз.

Re: Язык скриптов SAS - есть где-нибудь описание?

Сообщение vdemidov » 10 май 2010, 19:55

PechalnikU писал(а):В readme к программе написано только, что скрипты, цитирую: "пишутся на обычном pascal". (У меня версия SAS 100330) А что именно за Pascal?

Ну если вам поможет, то используется RemObjects Pascal Script
Чтобы понять программу, вы должны стать одновременно и машиной, и программой.
Аватара пользователя
vdemidov
Гуру
 
Сообщения: 1687
Зарегистрирован: 12 дек 2008, 13:10
Откуда: Киев
Благодарил (а): 191 раз.
Поблагодарили: 136 раз.

Re: Язык скриптов SAS - есть где-нибудь описание?

Сообщение ultraduv » 16 авг 2010, 10:51

Еще бы Decode добавить и полезность поста возрасла б :!:
ultraduv
Новичок
 
Сообщения: 5
Зарегистрирован: 13 авг 2010, 14:50
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Re: Язык скриптов SAS - есть где-нибудь описание?

Сообщение zed » 16 авг 2010, 12:30

А поискать в инете и попробовать стандартную функцию для делфи?
Код: Выделить всё
function Decode64(S: string): string;
const
  Codes64 = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz+/';
var
  i: Integer;
  a: Integer;
  x: Integer;
  b: Integer;
begin
  Result := '';
  a := 0;
  b := 0;
  for i := 1 to Length(s) do
  begin
    x := Pos(s[i], codes64) - 1;
    if x >= 0 then
    begin
      b := b * 64 + x;
      a := a + 6;
      if a >= 8 then
      begin
        a := a - 8;
        x := b shr a;
        b := b mod (1 shl a);
        x := x mod 256;
        Result := Result + chr(x);
      end;
    end
    else
      Exit;
  end;
end;
zed
Гуру
 
Сообщения: 2888
Зарегистрирован: 16 авг 2008, 20:21
Благодарил (а): 89 раз.
Поблагодарили: 525 раз.

Re: Язык скриптов SAS - есть где-нибудь описание?

Сообщение Papazol » 17 авг 2010, 08:20

Недавно тоже озадачился этой проблемой (Base64). Изучив всё, что нашёл, написАл кодек. Но обнаружил, что алгоритмы в разных случаях несколько отличаются. В частности, стандартный алгоритм предусматривает добавление нулей в конец сообщения (чтобы количество байт выровнять) и последующее кодирование количества этих нулей. А алгоритм, используемый в zmp для DG, этого не содержит. Отсюда неоднозначность при кодировании/декодировании.
Аватара пользователя
Papazol
Гуру
 
Сообщения: 2069
Зарегистрирован: 04 дек 2009, 01:39
Откуда: Рязань
Благодарил (а): 74 раз.
Поблагодарили: 606 раз.


Вернуться в SAS.Планета

Кто сейчас на конференции

Сейчас этот форум просматривают: Google [Bot] и гости: 21