Последняя версия DataExpress 3 beta от 11 августа 2018 года. Скачать. Энциклопедия DX. Форум на Develop-Soft

Помогите пожалуйста где мои ошибки

Все о том как сделать что-то с помощью скриптов.
Abrorbek
Интересующийся
Сообщения: 172
Зарегистрирован: Сб сен 16, 2017 8:31 am

Re: Помогите пожалуйста где мои ошибки

Сообщение Abrorbek » Чт ноя 16, 2017 9:10 am

уважаемый YurAnt вы помните первый раз я послал в форум посторонний модуль я с скриптами его составил новую функцию но там дали ошибки в некоторых строках после исправлении ошибки не найдено в строки 1,1 там написана begin experted not found пытайтесь исправить это модуля если возможно после того я сам исправлю на узбекскую язык подобно это модуль поможет и на другой язык образовать модуль выражение сумма прописью
Плохо понимаю по-русски. Работаю через переводчик.

Аватара пользователя
YurAnt
Эксперт
Сообщения: 3361
Зарегистрирован: Чт апр 13, 2017 8:57 am
Контактная информация:

Re: Помогите пожалуйста где мои ошибки

Сообщение YurAnt » Чт ноя 16, 2017 9:18 am

Вы наверное легких путей не ищите. Та функция, которую Вы скинули содержит методы неподдерживаемые в DataExpress и пока нет времени с ней разбираться...

Abrorbek
Интересующийся
Сообщения: 172
Зарегистрирован: Сб сен 16, 2017 8:31 am

Re: Помогите пожалуйста где мои ошибки

Сообщение Abrorbek » Чт ноя 16, 2017 9:25 am

смотрите компилияция завершена но это неправильная работа

Код: Выделить всё

{@function
OrigName=Chislopropis
Name=Chislopropis
Args=vv
Result=s
Group=chislo
Description=<b>
@}

{function ChisloPropis(n: int64): string;
{const Chislo1000: array[1..6, 0..2] of string = (('тысяча', 'тысячи', 'тысяч'),
         ('миллион', 'миллиона', 'миллионов'),
         ('миллиард', 'миллиарда', 'миллиардов'),
         ('триллион', 'триллиона', 'триллионов'),
         ('квадриллион', 'квадриллиона', 'квадриллионов'),
         ('квинтиллион', 'квинтиллиона', 'квинтиллионов'));
      Chislo100: array[1..9] of string = ('сто', 'двести', 'триста',
         'четыреста', 'пятьсот', 'шестьсот', 'семьсот', 'восемьсот',
         'девятьсот');
      Chislo10: array[2..9] of string = ('двадцать', 'тридцать', 'сорок',
         'пятьдесят', 'шестьдесят', 'семьдесят', 'восемьдесят', 'девяносто');
      Chislo1: array[0..19] of string = ('ноль', 'один', 'два', 'три', 'четыре',
         'пять', 'шесть', 'семь', 'восемь', 'девять', 'десять', 'одиннадцать',
         'двенадцать', 'тринадцать', 'четырнадцать', 'пятнадцать',
         'шестнадцать', 'семнадцать', 'восемнадцать', 'девятнадцать');
      Chislo1_2: array[1..2] of string = ('одна', 'две');
var n1000: byte;
    s, znak: string;

   function Length3(a, n1000: integer): string;
   var b: byte;
       s: string;
   begin
      a:=a mod 1000; //для защиты
      b:=a div 100;
      a:=a mod 100;
      If b>0 then
         Result:=Chislo100[b] else
         Result:='';
      If (a>0) and (Result<>'') then
         Result:=Result+' ';
      If a>=20 then
      begin
         b:=a div 10;
         a:=a mod 10;
         If b>0 then
            Result:=Result+Chislo10[b];
         If a>0 then
         begin
            If Result<>'' then
               Result:=Result+' ';
            s:=Chislo1[a]; //два миллиона
            If (n1000=1) and (a>=1) and (a<=2) then //один или одна (два или две)
               s:=Chislo1_2[a]; //две тысячи
            Result:=Result+s;
         end;
      end else
         If a>0 then
         begin
            s:=Chislo1[a]; //два миллиона
            If (n1000=1) and (a>=1) and (a<=2) then //один или одна (два или две)
               s:=Chislo1_2[a]; //две тысячи
            Result:=Result+s;
         end;
      If (n1000>0) and (Result<>'') then
      begin
         Result:=Result+' ';
         If n1000>High(Chislo1000) then
         begin
            Result:=Format('%s(x 10^%d)', [Result, 3*n1000]);
            Exit;
         end;
         s:=Chislo1000[n1000, 2];
         If a=1 then
            s:=Chislo1000[n1000, 0];
         If (a>=2) and (a<=4) then
            s:=Chislo1000[n1000, 1];
         Result:=Result+s;
      end;
   end;

begin
   Result:='';
   If n<0 then
      znak:='минус ' else
      znak:='';
   n:=Abs(n);
   n1000:=0;
   While n>0 do
   begin
      s:=Length3(n mod 1000, n1000);
      Inc(n1000);
      If s<>'' then
      begin
         If Result<>'' then
            Result:=' '+Result;
         Result:=s+Result;
      end;
      n:=n div 1000;
   end;
   Result:=znak+Result;
   If Result='' then
      Result:=Chislo1[0];
end;
Плохо понимаю по-русски. Работаю через переводчик.

Аватара пользователя
YurAnt
Эксперт
Сообщения: 3361
Зарегистрирован: Чт апр 13, 2017 8:57 am
Контактная информация:

Re: Помогите пожалуйста где мои ошибки

Сообщение YurAnt » Чт ноя 16, 2017 9:32 am

Abrorbek писал(а):смотрите компилияция завершена

И что? Вы написали бессмысленный набор текста... У Вас вообще тут как минимум не вяжется:
{@function
OrigName=Chislopropis
..
Args=vv
..
@}

вот с этим:
Abrorbek писал(а):ChisloPropis(n: int64): string;

Об остальном "синтаксисе" даже не говорю...

Повторю -
YurAnt писал(а):Та функция, которую Вы скинули содержит методы неподдерживаемые в DataExpress и пока нет времени с ней разбираться...

Аватара пользователя
YurAnt
Эксперт
Сообщения: 3361
Зарегистрирован: Чт апр 13, 2017 8:57 am
Контактная информация:

Re: Помогите пожалуйста где мои ошибки

Сообщение YurAnt » Чт ноя 16, 2017 10:01 am

Abrorbek писал(а):один=бир
одинадцать=ун бир
в вашей функции даёт ошибки ..

тута ↓ Подправил:
Replacer.zip
(1.22 КБ) 12 скачиваний

Изображение

Аватара пользователя
YurAnt
Эксперт
Сообщения: 3361
Зарегистрирован: Чт апр 13, 2017 8:57 am
Контактная информация:

Re: Помогите пожалуйста где мои ошибки

Сообщение YurAnt » Чт ноя 16, 2017 10:23 am

Готовые шаблоны перевода:

НИЖЕ ШТУКИ С ПЛЮСИКАМИ - ЭТО СПОЙЛЕРЫ, НАДО НА ЭТИ ПЛЮСИКИ НАЖАТЬ. (ПЛЮСИК - ЭТО КАК КРЕСТИК)

(а мне каково под нексией валяться зимой? тренируйтесь...)

тысяча = one thousand;
тысячи = thousands of;
тысяч = thousand;
миллион = million;
миллиона = million;
миллионов = million;
миллиард = billion;
миллиарда = billion;
миллиардов = billions;
триллион = trillion;
триллиона = trillion;
триллионов = trillion;
квадриллион = quadrillion;
квадриллиона = quadrillion;
квадриллионов = quadrillion;
квинтиллион = quintillion;
квинтиллиона = quintillion;
квинтиллионов = quintillion;
сто = hundred;
двести = two hundred;
триста = three hundred;
четыреста = four hundred;
пятьсот = five hundred;
шестьсот = six hundred;
семьсот = seven hundred;
восемьсот = eight hundred;
девятьсот = nine hundred;
двадцать = twenty;
тридцать = thirty;
сорок = forty;
пятьдесят = fifty;
шестьдесят = sixty;
семьдесят = seventy;
восемьдесят = eighty;
девяносто = ninety;
ноль = zero;
один = one;
два = two;
три = three;
четыре = four;
пять = five;
шесть = six;
семь = seven;
восемь = eight;
девять = nine;
десять = ten;
одиннадцать = eleven;
двенадцать = twelve;
тринадцать = thirteen;
четырнадцать = fourteen;
пятнадцать = fifteen;
шестнадцать = sixteen;
семнадцать = seventeen;
восемнадцать = eighteen;
девятнадцать = nineteen;
одна = one;
две = two
тысяча = тисяча;
тысячи = тисячі;
тысяч = тисяч;
миллион = мільйон;
миллиона = мільйона;
миллионов = мільйонів;
миллиард = мільярд;
миллиарда = мільярда;
миллиардов = мільярдів;
триллион = трильйон;
триллиона = трильйона;
триллионов = трильйонів;
квадриллион = квадрильйон;
квадриллиона = квадрильйона;
квадриллионов = квадрильйонів;
квинтиллион = квінтильйон;
квинтиллиона = квінтильйони;
квинтиллионов = квінтильйонів;
сто = сто;
двести = двісті;
триста = триста;
четыреста = чотириста;
пятьсот = п'ятсот;
шестьсот = шість сотень;
семьсот = сімсот;
восемьсот = вісімсот;
девятьсот = дев'ятсот;
двадцать = двадцять;
тридцать = тридцять;
сорок = сорок;
пятьдесят = п'ятдесят;
шестьдесят = шістдесят;
семьдесят = сімдесят;
восемьдесят = вісімдесят;
девяносто = дев'яносто;
ноль = нуль;
один = один;
два = два;
три = три;
четыре = чотири;
пять = п'ять;
шесть = шість;
семь = сім;
восемь = вісім;
девять = дев'ять;
десять = десять;
одиннадцать = одинадцять;
двенадцать = дванадцять;
тринадцать = тринадцять;
четырнадцать = чотирнадцять;
пятнадцать = п'ятнадцять;
шестнадцать = шістнадцять;
семнадцать = сімнадцять;
восемнадцать = вісімнадцять;
девятнадцать = дев'ятнадцять;
одна = одна;
две = дві;

// соль, перец по вкусу:

рубль = грiвна;
рубля = гривни;
рублей = гривень;
копейка = копiйка;
копейки = копiйки;
копеек = копiйок
тысяча = ming;
тысячи = ming;
тысяч = ming;
миллион = million;
миллиона = million;
миллионов = million;
миллиард = milliard;
миллиарда = millard;
миллиардов = milliard;
триллион = trillion;
триллиона = trillion;
триллионов = trillion;
квадриллион = kvadrillion;
квадриллиона = kvadrillion;
квадриллионов = kvadrillion;
квинтиллион = kvintillion;
квинтиллиона = kvintillion;
квинтиллионов = kvintillion;
сто = bir yuz;
двести = ikki yuz;
триста = uch yuz;
четыреста = to'rt yuz;
пятьсот = besh yuz;
шестьсот = olti yuz;
семьсот = etti yuz;
восемьсот = sakkiz yuz;
девятьсот = to'qqiz yuz;
двадцать = yigirma;
тридцать = o'ttiz;
сорок = qirq;
пятьдесят = ellik;
шестьдесят = oltmish;
семьдесят = etmishta;
восемьдесят = sakson;
девяносто = to'qson;
ноль = nol;
один = bir;
два = ikki;
три = uch;
четыре = to'rt;
пять = besh;
шесть = olti;
семь = etti;
восемь = sakkiz;
девять = to'qqiz;
десять = o'n;
одиннадцать = o'n bir;
двенадцать = o'n ikki;
тринадцать = o'n uch;
четырнадцать = o'n to'rt;
пятнадцать = o'n besh;
шестнадцать = o'n olti;
семнадцать = o'n etti;
восемнадцать = o'n sakkiz;
девятнадцать = o'n to'qqiz;
одна = bir;
две = ikki
тысяча = мың;
тысячи = мыңдаған;
тысяч = мың;
миллион = млн;
миллиона = млн;
миллионов = млн;
миллиард = млрд;
миллиарда = млрд;
миллиардов = миллиардтаған;
триллион = триллион;
триллиона = триллион;
триллионов = триллион;
квадриллион = квадриллион;
квадриллиона = квадриллион;
квадриллионов = квадриллион;
квинтиллион = квинтиллон;
квинтиллиона = квинтиллон;
квинтиллионов = квинтиллон;
сто = жүз;
двести = екі жүз;
триста = үш жүз;
четыреста = төрт жүз;
пятьсот = бес жүз;
шестьсот = алты жүз;
семьсот = жеті жүз;
восемьсот = сегіз жүз;
девятьсот = тоғыз жүз;
двадцать = жиырма;
тридцать = отыз;
сорок = қырық;
пятьдесят = елу;
шестьдесят = алпыс;
семьдесят = жетпіс;
восемьдесят = сексен;
девяносто = тоқсан;
ноль = нөлдік;
один = біреуі;
два = екі;
три = үшеуі;
четыре = төртеуі;
пять = бес;
шесть = алты;
семь = жеті;
восемь = сегіз;
девять = тоғыз;
десять = он;
одиннадцать = он бір;
двенадцать = он екі;
тринадцать = он үш;
четырнадцать = он төрт;
пятнадцать = он бес;
шестнадцать = он алты;
семнадцать = жеті;
восемнадцать = он сегіз адам;
девятнадцать = он тоғызыншы;
одна = біреуі;
две = екі
тысяча = тысяча; тысячи = тысячы; тысяч = тысяч; миллион = мільён; миллиона = мільёны; миллионов = мільёнаў; миллиард = мільярд; миллиарда = мільярды; миллиардов = мільярдаў; триллион = трыльён; триллиона = трыльёна; триллионов = трыльёнаў; квадриллион = квадрыльён; квадриллиона = квадрыльена; квадриллионов = квадрыльёнаў; квинтиллион = квінтыльён; квинтиллиона = квинтиллиона; квинтиллионов = квинтиллионов; сто = сто; двести = дзвесце; триста = трыста; четыреста = чатырыста; пятьсот = пяцьсот; шестьсот = шэсцьсот; семьсот = сямсот; восемьсот = восемсот; девятьсот = дзевяцьсот; двадцать = дваццаць; тридцать = трыццаць; сорок = сорак; пятьдесят = пяцьдзесят; шестьдесят = шэсцьдзесят; семьдесят = семдзесят; восемьдесят = восемдзесят; девяносто = дзевяноста; ноль = нуль; один = адзін; два = два; три = тры; четыре = чатыры; пять = пяць; шесть = шэсць; семь = сем; восемь = восем; девять = дзевяць; десять = дзесяць; одиннадцать = адзінаццаць; двенадцать = дванаццаць; тринадцать = трынаццаць; четырнадцать = чатырнаццаць; пятнадцать = пятнаццаць; шестнадцать = шаснаццаць; семнадцать = семнаццаць; восемнадцать = васемнаццаць; девятнадцать = дзевятнаццаць; одна = адна; две = дзве;

И так далее...

ИзображениеИзображение

Abrorbek
Интересующийся
Сообщения: 172
Зарегистрирован: Сб сен 16, 2017 8:31 am

Re: Помогите пожалуйста где мои ошибки

Сообщение Abrorbek » Ср дек 27, 2017 9:16 am

на узбекском у тебя ошибки kish не надо слово kish ето человек или людей и ikkita не должно там ikki должно быть
Плохо понимаю по-русски. Работаю через переводчик.

Abrorbek
Интересующийся
Сообщения: 172
Зарегистрирован: Сб сен 16, 2017 8:31 am

Re: Помогите пожалуйста где мои ошибки

Сообщение Abrorbek » Ср дек 27, 2017 9:20 am

тысяча = ming;
тысячи = ming;
тысяч = ming;
миллион = million;
миллиона = million;
миллионов = million;
миллиард = milliard;
миллиарда = millard;
миллиардов = milliard;
триллион = trillion;
триллиона = trillion;
триллионов = trillion;
квадриллион = kvadrillion;
квадриллиона = kvadrillion;
квадриллионов = kvadrillion;
квинтиллион = kvintillion;
квинтиллиона = kvintillion;
квинтиллионов = kvintillion;
сто = bir yuz;
двести = ikki yuz;
триста = uch yuz;
четыреста = to'rt yuz;
пятьсот = besh yuz;
шестьсот = olti yuz;
семьсот = etti yuz;
восемьсот = sakkiz yuz;
девятьсот = to'qqiz yuz;
двадцать = yigirma;
тридцать = o'ttiz;
сорок = qirq;
пятьдесят = ellik;
шестьдесят = oltmish;
семьдесят = etmishta;
восемьдесят = sakson;
девяносто = to'qson;
ноль = nol;
один = bir;
два = ikki;
три = uch;
четыре = to'rt;
пять = besh;
шесть = olti;
семь = etti;
восемь = sakkiz;
девять = to'qqiz;
десять = o'n;
одиннадцать = o'n bir;
двенадцать = o'n ikki;
тринадцать = o'n uch;
четырнадцать = o'n to'rt;
пятнадцать = o'n besh;
шестнадцать = o'n olti;
семнадцать = o'n etti;
восемнадцать = o'n sakkiz;
девятнадцать = o'n to'qqiz;
одна = bir;
две = ikki
Плохо понимаю по-русски. Работаю через переводчик.

Abrorbek
Интересующийся
Сообщения: 172
Зарегистрирован: Сб сен 16, 2017 8:31 am

Re: Помогите пожалуйста где мои ошибки

Сообщение Abrorbek » Ср дек 27, 2017 10:40 am

надо подумать на всех языках и подробно написать постараюсь помогать если возможно
Плохо понимаю по-русски. Работаю через переводчик.