Автор Тема: Разработка скриптов (вопросы)  (Прочитано 162310 раз)

0 Пользователей и 4 Гостей просматривают эту тему.

Оффлайн djek-ural

  • Модератор
  • *****
  • Сообщений: 1223
  • Фильмов много не бывает.
Re: Разработка скриптов (вопросы)
« Ответ #15 : 06 Декабря 2008, 11:30:28 »
Я уже поднимал тему возможности добавления нескольки файлов к 1 фильму , что если сделать проше , можно ли сделать скрипт который бы работал как сканер файлов но заполнял пользовательские поля , и еще сколько максимум пользовательских полей можно добавить в новой ветке 0.9.9.x

Оффлайн djek-ural

  • Модератор
  • *****
  • Сообщений: 1223
  • Фильмов много не бывает.
Re: Разработка скриптов (вопросы)
« Ответ #16 : 06 Января 2009, 13:54:13 »
Вопрос к Ностра , такой связанный с модификацией скрипта от NewSky ;
вылезает сообшение в логе

06.01.2009 17:44:55: Could not compile script: kino.psf
[Hint] (664:10): Variable 'Result' never used
[Error] (688:9): Syntax error
[Error] (688:9): Syntax error

на строке под номером 688 , записано следуюшее
pri := `` ;
переменная типа WideString
У меня есть описание ошибок для Турбо Паскаля , но там номера этой ошибки нет
Добавил:
С ней вроде бы разобрался , удалил эту строку , вылезает следуюшая

06.01.2009 19:57:18: Could not compile script: kino.psf
[Hint] (664:10): Variable 'Result' never used
[Error] (715:13): Type mismatch

копия 715 строки
    pri := Tmp(i) ;
соблюдена полная орфография
« Последнее редактирование: 06 Января 2009, 17:39:23 от djek-ural »

Оффлайн nostra

  • Администратор
  • *****
  • Сообщений: 2749
    • Personal Video Database
Re: Разработка скриптов (вопросы)
« Ответ #17 : 06 Января 2009, 19:40:56 »
Что это за ф-ция такая Tmp() ??? Если pri - WideString, то ф-ция Tmp должна возвращать WideString, чего она очевидно не делает...
Мы уже работаем над постановлением по углублению конструктивных мер, принятых в результате консолидации

Оффлайн djek-ural

  • Модератор
  • *****
  • Сообщений: 1223
  • Фильмов много не бывает.
Re: Разработка скриптов (вопросы)
« Ответ #18 : 06 Января 2009, 20:39:47 »
Привожу пример части программы , что бы разобраться можно было , а также еще одну подпрограмму которая используется:
Для справки моя подпрограмма берет значение длительности в строковом типе , формата " 96 мин" , преобразует его в цифры , вычисляет часы и минуты , и переводит обратно в строковый формат "01:36:00" , подпрограмма вся написана , но не проходит стадию компиляции...

// Удаляет из строки все, что не является цифрой
function CheckNum(s: widestring): widestring;
var
 st: widestring;
 i: integer;
begin
 if pos('€', s) > 0 then
  delete(s, 1, 7);
 if pos('¥', s) > 0 then
  delete(s, 1, 6);
 for i := 1 to length(s) do
   if (s >= '0') and (s <= '9') then
     st := st + s;
 result := st;
end;

function CorrectTime ( Tmp : WideString ) : WideString ;
Var
 stime , pri : WideString;
 prim : Char;
 i , tm , hour , min , data : Integer;
 raz1 , raz2 , raz3 : Boolean ;
 begin
 i := 0 ;
 tm := 0 ;
 hour := 0 ;
 min := 0 ;
 raz1 := False ;
 raz2 := False ;
 raz3 := False ;
 Tmp := CheckNum (Tmp);
  if length(Tmp) = 3 then
   begin
    raz1 := True ;
    raz2 := True ;
    raz3 := True ;
   end ;
    if length(Tmp) = 2 then
     begin
     raz2 := True ;
     raz3 := True ;
    end ;
     if length(Tmp) = 1 then
      begin
       raz3 := True ;
      end ;
  begin
  for i := 1 to length(Tmp) do
   if raz1 then
    begin
   prim := Tmp(i) ;
     case prim of
      `0`: tm := tm + 0 ;
      `1`: tm := tm + 1*100 ;
« Последнее редактирование: 06 Января 2009, 20:46:27 от djek-ural »

Оффлайн nostra

  • Администратор
  • *****
  • Сообщений: 2749
    • Personal Video Database
Re: Разработка скриптов (вопросы)
« Ответ #19 : 07 Января 2009, 09:00:05 »
prim имеет тип Char, значит в выделенной строчке вероятно должно быть:
prim := Tmp; //Квадратные скобки
Мы уже работаем над постановлением по углублению конструктивных мер, принятых в результате консолидации

Оффлайн Aig

  • Гуру
  • ****
  • Сообщений: 298
Re: Разработка скриптов (вопросы)
« Ответ #20 : 08 Января 2009, 14:03:19 »
[Error] (688:9): Syntax error
[Error] (688:9): Syntax error
на строке под номером 688 , записано следуюшее
pri := `` ;
переменная типа WideString
У меня есть описание ошибок для Турбо Паскаля , но там номера этой ошибки нет
Давненько не брал я в руки шашек... На дельфе уже не программирую, но в паскале по-моему не было таких кавычек - `. По крайней мере я не видел, чтобы их использовали. Попробуй заменить ` на нормальные - ' .
PVD 1.0.2.7 - пробная эксплуатация, 0.9.9.29 в резерве.

Оффлайн nostra

  • Администратор
  • *****
  • Сообщений: 2749
    • Personal Video Database
Re: Разработка скриптов (вопросы)
« Ответ #21 : 08 Января 2009, 17:44:39 »
Цитировать
Попробуй заменить ` на нормальные - ' .

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

Оффлайн djek-ural

  • Модератор
  • *****
  • Сообщений: 1223
  • Фильмов много не бывает.
Re: Разработка скриптов (вопросы)
« Ответ #22 : 08 Января 2009, 18:31:02 »
Цитировать
Попробуй заменить ` на нормальные - ' .

Да, действительно кавычки не те.

Да с кавычками я действительно обложался , в книге написано было выделять апострофом , вот и подумал что тот который был в строке рядом с цифрами , где буква Ё .
Огромное спасибо Aig за подсказку :) :) :)

Оффлайн Alik

  • Новичок
  • *
  • Сообщений: 7
Re: Разработка скриптов (вопросы)
« Ответ #23 : 09 Января 2009, 12:36:40 »
To: djek-ural

Во первых несколькими постами выше указана неправильная функция CheckNum
Правильно так:

// Удаляет из строки все, что не является цифрой
function CheckNum(s: widestring): widestring;
var
 st: widestring;
 i: integer;
begin
 if pos('&#8364;', s) > 0 then
  delete(s, 1, 7);
 if pos('&#165;', s) > 0 then
  delete(s, 1, 6);
 for i := 1 to length(s) do
   if (s[i] >= '0') and (s[i] <= '9') then
     st := st + s[i];
 result := st;
end;
Обратите внимание на квадратные скобки после переменной s, в которых указан индекс символа.

Во вторых сделать преобразование времени в нужный формат можно проще:

// Возвращает число, переведенное в текст. Преобразует значения вида Х в значение вида 0Х
// То есть, например, заменяет 1 на 01.
Function Zero(I: Integer): WideString;
Var
 S: String;
Begin
 S := IntToStr(I);
 If Length(S) = 1 Then S := '0' + S;
 result := S;
End;

// Функция перевода времени из формата ХХХ мин в формат ХХ:ХХ:ХХ
Function CorrectTime(Time: WideString): WideString;
Var
 Tmp: Integer;
Begin
 Tmp := StrToInt(CheckNum(Time));
 Result := Zero(Tmp Div 60)+':'+Zero(Tmp Mod 60)+':00'; // Два нуля в конце - это секунды, можно убрать
End;

Я не тестил, но 99% код рабочий.
« Последнее редактирование: 09 Января 2009, 12:38:37 от Alik »
http://forexgb.ru мои статьи о финансах

Оффлайн djek-ural

  • Модератор
  • *****
  • Сообщений: 1223
  • Фильмов много не бывает.
Re: Разработка скриптов (вопросы)
« Ответ #24 : 09 Января 2009, 12:57:22 »
To: djek-ural

Во первых несколькими постами выше указана неправильная функция CheckNum
Правильно так:

// Удаляет из строки все, что не является цифрой
function CheckNum(s: widestring): widestring;
var
 st: widestring;
 i: integer;
begin
 if pos('&#8364;', s) > 0 then
  delete(s, 1, 7);
 if pos('&#165;', s) > 0 then
  delete(s, 1, 6);
 for i := 1 to length(s) do
   if (s[i] >= '0') and (s[i] <= '9') then
     st := st + s[i];
 result := st;
end;
Обратите внимание на квадратные скобки после переменной s, в которых указан индекс символа.

Во вторых сделать преобразование времени в нужный формат можно проще:

// Возвращает число, переведенное в текст. Преобразует значения вида Х в значение вида 0Х
// То есть, например, заменяет 1 на 01.
Function Zero(I: Integer): WideString;
Var
 S: String;
Begin
 S := IntToStr(I);
 If Length(S) = 1 Then S := '0' + S;
 result := S;
End;

// Функция перевода времени из формата ХХХ мин в формат ХХ:ХХ:ХХ
Function CorrectTime(Time: WideString): WideString;
Var
 Tmp: Integer;
Begin
 Tmp := StrToInt(CheckNum(Time));
 Result := Zero(Tmp Div 60)+':'+Zero(Tmp Mod 60)+':00'; // Два нуля в конце - это секунды, можно убрать
End;

Я не тестил, но 99% код рабочий.


Спасибо большое за подсказку , я так то прогрммировал на Бейсике , и это моё первое творение на Паскале , возможно что некоторых функций процедур я еще не знаю...
Последнеяя моя редакция также была немного оптимизирована , за счет выведения нескольки строк кода в разряд процедур...

Оффлайн djek-ural

  • Модератор
  • *****
  • Сообщений: 1223
  • Фильмов много не бывает.
Re: Разработка скриптов (вопросы)
« Ответ #25 : 12 Января 2009, 07:44:34 »
А вот как работать с новыми функциями , можно создать процедуру

Wait(2000); //ждёт 3 секунды
Для добавления изобраыжения передавать путь к нему вот так:
AddImageURL(0, 'http://www.test.com/test.jpg'); //первый параметер: 0 - Poster, 1 - Screenshot, 2 - Front cover, 3 - CD Cover

пример....
 procedura DownloadPoster(.......)
 (обьявляем переменные)
 begin
 парсим страницу и ишем адрес изображения
 передаем её функции
 AddImageURL(0, 'http://www.test.com/test.jpg')
 проверяем если конец списка изображений то все иначе парсим дальше
 end

ну и по аналогии для других типов изображения.


Хотелось бы услышать по подробнее об этих функциях , особенно последней , например можно ли с помошью последней функции реализовать в скриптах множественную загрузку изображений с окном выбора , но скорее всего нет так как нет процедуры которая собирала адреса превьюшек для отображения ....
Ну или можно просто организвать загрузку всех изображений

Оффлайн nostra

  • Администратор
  • *****
  • Сообщений: 2749
    • Personal Video Database
Re: Разработка скриптов (вопросы)
« Ответ #26 : 12 Января 2009, 12:13:43 »
Цитировать
например можно ли с помошью последней функции реализовать в скриптах множественную загрузку изображений с окном выбора

с окном выбора - Нет

Цитировать
Ну или можно просто организвать загрузку всех изображений

Да, вызвав ф-цию AddImageURL для каждого постера
Мы уже работаем над постановлением по углублению конструктивных мер, принятых в результате консолидации

Оффлайн djek-ural

  • Модератор
  • *****
  • Сообщений: 1223
  • Фильмов много не бывает.
Re: Разработка скриптов (вопросы)
« Ответ #27 : 14 Января 2009, 14:34:58 »
Ну и самый главный вопрос.
при вызове данной процедуры актуально ли правило что нужно вызывать её в последнюю очередь , или можно сделать так допустим загрузил страницу постеров пропарсил адреса картинок , загрузил картинки , далее загружаем страницу скриншотов парсим и загружаем картинки скриншотов .

Оффлайн nostra

  • Администратор
  • *****
  • Сообщений: 2749
    • Personal Video Database
Re: Разработка скриптов (вопросы)
« Ответ #28 : 14 Января 2009, 14:39:34 »
можно вызывать когда угодно.

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

Оффлайн djek-ural

  • Модератор
  • *****
  • Сообщений: 1223
  • Фильмов много не бывает.
Re: Разработка скриптов (вопросы)
« Ответ #29 : 09 Февраля 2009, 15:43:38 »
Требуется помощь , пишу скрипт и понадобилась функция задержки , только не разобрался в каком формате там написано время...
Цитировать
Wait(2000); //ждёт 3 секунды
может имелось в виду 2000 - 2 секунды , или я не понял в каком виде записан формат времени
это пока к неспеху , примерно написано 5 % кода , до пробного запуска еще далеко