Author Topic: Спасите! Помогите!  (Read 3783 times)

0 Members and 1 Guest are viewing this topic.

Hito

  • Герой форума
  • *****
  • Posts: 1212
    • View Profile
Re: Спасите! Помогите!
« Reply #15 on: March 14, 2022, 08:10:37 PM »
В общем тему можно считать пройденной. Вот рабочий код, если кому интересно...

Code: (clickermann) [Select]
$max_screens_stories = 70



SUB(screen, $folder, $x1scr,$y1scr, $x2scr,$y2scr)
   IF(FExists($folder)=0)
      FCREATE ($folder)
   END_IF
   
   $var = 0
   GETFILELIST ($arr, STRCONCAT($folder,"\*.bmp"))
   IF(ARRSIZE($arr) > 0)
      $name = $arr[ARRSIZE($arr)-1]
      strseparate($name, ".", $ass)
      $name = $ass[0]
      UNDEFINE($ass)
     
      FOR($i=1,$i<strlen($name)+1)
         IF(STRCUT($name, $i, 1) ! 0)
            $var = STRCUT ($name, $i, strlen($name)-$i+1)
            $i=strlen($name)+1
         END_IF
      END_CYC
      INC($var, 1)
      $n = strlen($var)
      FOR($i=1,$i<strlen($name)-$n+1)
         $var = STRCONCAT("0",$var)
      END_CYC
      $name = $var
     
      WHILE(ARRSIZE($arr) >= $max_screens_stories)
          FDELETE (STRCONCAT($folder,"\",$arr[0]))
          UNDEFINE($arr)
          GETFILELIST ($arr, STRCONCAT($folder,"\*.bmp"))
      END_CYC
   else
      $name="0000000000"
   END_IF
   UNDEFINE($arr)
   
   SCREENSHOTFIX($x1scr,$y1scr, $x2scr,$y2scr, STRCONCAT($folder,"\",$name,".bmp"), 0)
END_SUB



screen("скрины\история", 0,0, $_xmax,$_ymax)



HALT
Я не ду... Потому и не бу...

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile


Hito

  • Герой форума
  • *****
  • Posts: 1212
    • View Profile
Re: Спасите! Помогите!
« Reply #17 on: March 15, 2022, 09:25:23 AM »
http://crapware.aidf.org/forum/index.php?topic=5367.msg35239#msg35239

http://crapware.aidf.org/forum/index.php?topic=5367.msg35249#msg35249

А к чему это?  ??? Я как бы не против, но я не понимаю - к чему? Я там не нашел того, что сделано тут...
Я не ду... Потому и не бу...

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: Спасите! Помогите!
« Reply #18 on: March 15, 2022, 09:50:00 AM »
А к чему это?  ??? Я как бы не против, но я не понимаю - к чему? Я там не нашел того, что сделано тут...
Это я к твоему сообщению, что этот способ неправильно не работает для добавления незначащих нулей.
Ааа... Сейчас почетче взглянул на твой вариант и понял, что после 0000000000009 будет не 0000000000010, а 00000000000010.
Всё там работает правильно.

Добавить незначащие нули в имя файла при записи и удалении очень просто, для этого не нужно громадных решений. И это же предложил в самом первом ответе.


Hito

  • Герой форума
  • *****
  • Posts: 1212
    • View Profile
Re: Спасите! Помогите!
« Reply #19 on: March 15, 2022, 10:49:31 AM »
А к чему это?  ??? Я как бы не против, но я не понимаю - к чему? Я там не нашел того, что сделано тут...
Это я к твоему сообщению, что этот способ неправильно не работает для добавления незначащих нулей.
Ааа... Сейчас почетче взглянул на твой вариант и понял, что после 0000000000009 будет не 0000000000010, а 00000000000010.
Всё там работает правильно.

Добавить незначащие нули в имя файла при записи и удалении очень просто, для этого не нужно громадных решений. И это же предложил в самом первом ответе.

Ну, как бы, вот твой пример:
Code: (clickermann) [Select]
WHILE(STRLEN($t) < 2)
   $t = STRCONCAT("0", $t)
END_CYC
А вот мой кусок кода, выполняющий ту же самую задачу:
Code: (clickermann) [Select]
FOR($i=1,$i<strlen($name)-$n+1)
   $var = STRCONCAT("0",$var)
END_CYC
И вот мой код, который я тут более суток лепил:
Code: (clickermann) [Select]
$max_screens_stories = 70

SUB(screen, $folder, $x1scr,$y1scr, $x2scr,$y2scr)
   IF(FExists($folder)=0)
      FCREATE ($folder)
   END_IF
   
   $var = 0
   GETFILELIST ($arr, STRCONCAT($folder,"\*.bmp"))
   IF(ARRSIZE($arr) > 0)
      $name = $arr[ARRSIZE($arr)-1]
      strseparate($name, ".", $ass)
      $name = $ass[0]
      UNDEFINE($ass)
     
      FOR($i=1,$i<strlen($name)+1)
         IF(STRCUT($name, $i, 1) ! 0)
            $var = STRCUT ($name, $i, strlen($name)-$i+1)
            $i=strlen($name)+1
         END_IF
      END_CYC
      INC($var, 1)
      $n = strlen($var)
      FOR($i=1,$i<strlen($name)-$n+1)
         $var = STRCONCAT("0",$var)
      END_CYC
      $name = $var
     
      WHILE(ARRSIZE($arr) >= $max_screens_stories)
         FDELETE (STRCONCAT($folder,"\",$arr[0]))
         UNDEFINE($arr)
         GETFILELIST ($arr, STRCONCAT($folder,"\*.bmp"))
      END_CYC
   else
      $name="0000000000"
   END_IF
   UNDEFINE($arr)
   
   SCREENSHOTFIX($x1scr,$y1scr, $x2scr,$y2scr, STRCONCAT($folder,"\",$name,".bmp"), 0)
END_SUB

screen("скрины\история", 0,0, $_xmax,$_ymax)

HALT
И ты считаешь, что все, что я слепил, умещается в те три строчки, что ты дал мне в пример...?

Ааа... Сейчас почетче взглянул на твой вариант и понял, что после 0000000000009 будет не 0000000000010, а 00000000000010.
Всё там работает правильно.

Добавить незначащие нули в имя файла при записи и удалении очень просто, для этого не нужно громадных решений. И это же предложил в самом первом ответе.

Vint, ну ты-то хоть меня не разочаровывай...



Я не ду... Потому и не бу...

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: Спасите! Помогите!
« Reply #20 on: March 15, 2022, 12:43:58 PM »
Я отвечал на конкретный пост, где ты писал, что так не пойдёт и кол-во нулей получается неправильным. Я лишь написал, что там всё правильно и указал что этому решению уже несколько лет. Весь твой код я не разбирал, мне это незачем.


Hito

  • Герой форума
  • *****
  • Posts: 1212
    • View Profile
Re: Спасите! Помогите!
« Reply #21 on: March 15, 2022, 01:30:16 PM »
Я отвечал на конкретный пост, где ты писал, что так не пойдёт и кол-во нулей получается неправильным.
Ну, так оно так и есть! Ты скрины-то видишь? Запусти этот код у себя и будет то же самое!
А мой код нули добавляет так!
0001
0010
А в том примере так!
0001
00010
Ты разницу ощущаешь вообще...?
Я не ду... Потому и не бу...

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: Спасите! Помогите!
« Reply #22 on: March 15, 2022, 03:20:50 PM »
Ну, так оно так и есть! Ты скрины-то видишь? Запусти этот код у себя и будет то же самое!
А мой код нули добавляет так!
0001
0010
А в том примере так!
0001
00010
Ты разницу ощущаешь вообще...?

Я разницу вижу. Что в коде не так?



А вот ты комменты в коде не читаешь
Code: (clickermann) [Select]
// нужный размер (длина) $name Нужно указать количество символов. Ты не указал.

можно так
Code: (clickermann) [Select]
$newlen = 4        // нужный размер (длина) $name
$name = strconcat(strcut("0000",1,$newlen-strlen($name)), $name)

можно так
Code: (clickermann) [Select]
$name = strconcat(strcut("0000", 1, 4-strlen($name)), $name)
а можно и так если не хочешь следить за двумя местами в коде
Code: (clickermann) [Select]
$template = "0000"   // шаблон
$name = strconcat(strcut($template,1, STRLEN($template)-strlen($name)), $name)
« Last Edit: March 15, 2022, 03:22:23 PM by Vint »


Hito

  • Герой форума
  • *****
  • Posts: 1212
    • View Profile
Re: Спасите! Помогите!
« Reply #23 on: March 15, 2022, 04:07:22 PM »
Я разницу вижу. Что в коде не так?
Vint, ты мне моцк что ль выстегнуть решил?  ;D Ты мне предьявил за один код:

Ааа... Сейчас почетче взглянул на твой вариант и понял, что после 0000000000009 будет не 0000000000010, а 00000000000010.
Всё там работает правильно.

Добавить незначащие нули в имя файла при записи и удалении очень просто, для этого не нужно громадных решений. И это же предложил в самом первом ответе.

А прессуешь за другой...  ;D Ппц... Кто пьяный-то? Ты, или я...?  ;D
Я не ду... Потому и не бу...

Hito

  • Герой форума
  • *****
  • Posts: 1212
    • View Profile
Re: Спасите! Помогите!
« Reply #24 on: March 15, 2022, 04:16:45 PM »
Элементарно же лидирующие нолики добавляются.
Code: (clickermann) [Select]
$name="1"         // куда добавлять нолики
$newlen=5        // нужный размер (длина) $name
$name=strconcat(strcut("000000000000",1,$newlen-strlen($name)),$name)
// "1" => "00001"

Элементарно же лидирующие нолики добавляются.
Code: (clickermann) [Select]
$name="1"         // куда добавлять нолики
$newlen=5        // нужный размер (длина) $name
$name=strconcat(strcut("000000000000",1,$newlen-strlen($name)),$name)
// "1" => "00001"
Я знал, что на трезвую голову намного лучше!  ;D Где ж ты вчера был...? ))) Ну, в принципе и сегодня норм, но я уже вроде как на своем варианте остановился...)))
Ааа... Сейчас почетче взглянул на твой вариант и понял, что после 0000000000009 будет не 0000000000010, а 00000000000010. Не анализировал пока - как это скажется на дальнейшей работе скрипта (возможно никак - я опять бухаю  :) ), но вот такая штука получается...))

Ааа... Сейчас почетче взглянул на твой вариант и понял, что после 0000000000009 будет не 0000000000010, а 00000000000010.
Всё там работает правильно.

Добавить незначащие нули в имя файла при записи и удалении очень просто, для этого не нужно громадных решений. И это же предложил в самом первом ответе.



Vint, ну ты-то хоть меня не разочаровывай...







Я разницу вижу. Что в коде не так?



А вот ты комменты в коде не читаешь
Code: (clickermann) [Select]
// нужный размер (длина) $name Нужно указать количество символов. Ты не указал.

можно так
Code: (clickermann) [Select]
$newlen = 4        // нужный размер (длина) $name
$name = strconcat(strcut("0000",1,$newlen-strlen($name)), $name)

можно так
Code: (clickermann) [Select]
$name = strconcat(strcut("0000", 1, 4-strlen($name)), $name)
а можно и так если не хочешь следить за двумя местами в коде
Code: (clickermann) [Select]
$template = "0000"   // шаблон
$name = strconcat(strcut($template,1, STRLEN($template)-strlen($name)), $name)
Я не ду... Потому и не бу...

Hito

  • Герой форума
  • *****
  • Posts: 1212
    • View Profile
Re: Спасите! Помогите!
« Reply #25 on: March 15, 2022, 05:00:56 PM »
В общем я понял... На моих скринах всего три ноля почему-то... Потому он и вывел
0001
00010
И я с пьяной головы на эти три ноля внимания не обратил...
Я не ду... Потому и не бу...

Hito

  • Герой форума
  • *****
  • Posts: 1212
    • View Profile
Re: Спасите! Помогите!
« Reply #26 on: March 15, 2022, 05:03:42 PM »
За то со мной форум оживился... ;D
Я не ду... Потому и не бу...

JacsoN

  • Активный участник
  • ***
  • Posts: 152
  • извините но мне нужны полнейшие обяснения
    • View Profile
Re: Спасите! Помогите!
« Reply #27 on: March 15, 2022, 08:50:37 PM »
За то со мной форум оживился... ;D
ух...сильно ты пропал  да форум ожил )
если  есть  возможность  объясни  по  скайпу  что  да  как

Hito

  • Герой форума
  • *****
  • Posts: 1212
    • View Profile
Re: Спасите! Помогите!
« Reply #28 on: March 15, 2022, 09:06:50 PM »
За то со мной форум оживился... ;D
ух...сильно ты пропал  да форум ожил )
1 - я женился 5 лет назад )))

2 - заболел раком прошлым летом.
Как-то вот так и пропал...
Я не ду... Потому и не бу...