Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - Space

Pages: [1] 2
1
Понятно.

Сбой произошел довольно, давно, около года назад. То что за это время пытался пересохранить файл изменяя кодировку, отрицать не могу, т.к. этот файл на рабочем столе, и хоть и не часто, но был нужен. Но обнаружил еще 3 похожих файла, скорее всего в момент сбоя, происходило перемещение папки с этими файлами. Все файлы в этой папке записаны в кодировке ANSI. С уверенностью 99.99%, кодировку в этих файлах не изменял. В этих файлах та-же история.

А бэкап иногда делаю, но когда файл действительно ценен)

«Имея – не ценим, а потерявши, плачем»

Спасибо!

2
Поврежденный файл в кодировке ANSI

открыл текст в 16-ричном редакторе HxD, появились однотипные строки с кодом 20.

20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 и т.д.

Кроме кода 20 редактор к сожалению ничего не увидел

3

Чтобы не быть голословным - пробую сюда отправить маленький кусок из текста, объемом меньше 1 кб в текстовом файле.

Пишет: Папка upload заполнена. Попробуйте файл меньшего размера или свяжитесь с администратором.

Пробовал упаковать в rar и отправить, все равно пишет: Папка upload заполнена.

Да уж.
     

4
Описываю подробно проблему:

- текстовый файл дополнялся впечатыванием с помощью клавиатуры или методом копирования, постоянно сохранялся в кодировке Юникод. В какое-то время, текстовый файл был открыт и дополнялся, произошел сбой системы (отошел контакт в разъеме соединителя жесткого диска).
После перезагрузки системы, другие текстовые файлы открываются в блокноте как и прежде, а проблемный, видимо не правильно закрылся во время сбоя системы, объемом 1137кб, открывается с 2-х секундной задержкой как чистый лист.

Командой "выделит все" происходит выделение, но текста не видно.
Для экспериментов с открытием, сделал копированием дубль файла. Затем в дубле файла, пробовал изменить кодировки с помощью команды "сохранить как" на ANSI, Юникод Big Endian, UTF-8 и сново открыть в блокноте, но  безрезультатно (изменялся только объем файла). 
   
Открыв дубль файла в программе Notepad++, и методом "тыка" пробовал включить разные кодировки, иногда в общей строке появлялись точки, иногда null null null, в общем безрезультатно.
Система Windows 7

5
Ура!!! Работает как надо!  Спасибо!!!

6
Здравствуйте.
Такой вопрос:
- нужно чтобы с каждым  приходом новой координаты каждая переменная принимала значение на этаж выше стоящей переменной.
С появлением новой координаты это значение присваивалось переменной $k1. Переменной $k2 присваивалось предыдущие значение  $k1, переменной $k3 присваивалось предыдущие значение  $k2 и т.д.?

Мало знаний и опыта. Долго искал по форуму какой нибудь подходящий шаблон, но увы не повстречал.
Code: (clickermann) [Select]
    print("===================")


$k1 = RND(700, 770)// имитация координат по вертикали

inc($n)

if($n=1)
$k2=$k1
end_if

if($n=2)
$k3=$k2
end_if

if($n=3)
$k4=$k3
end_if

if($n=4)
$k5=$k4
$n=0
end_if

print($k1)// очередная координата
print($k2)// здесь будут вычисления
print($k3)// здесь будут вычисления
print($k4)// здесь будут вычисления
print($k5)// здесь будут вычисления
   print("===================")
wait(2)
   

7
Общие вопросы / Re: Отслеживание цвета
« on: April 21, 2019, 01:46:24 PM »
За пояснения и оптимизацию - БЛАГОДАРЮ. В Firefoxе обновления блокировал, но раздражало постоянное выскакивающие предложение обновить. Это мешает если сильно уменьшить окно браузера. Поэтому обновился, но откатится могу назад старая версия сохранилась.

"точно, а ещё встроенную автоматическую коробку скоростей на голосовом управлении и питании от солнечных батарей, через USB."

Сарказм понятен - это как целый набор ардуино   ;D

8
Общие вопросы / Отслеживание цвета
« on: April 21, 2019, 11:07:39 AM »
Здравствуйте! С праздником всех православных!
Если будет свободное время - растолкуйте.

1) PXL не может работать отдельно без применения GETSCREEN?

2) Для GETSCREEN возможно задать координаты только так (1179,166, 1179,222) по X,Y- верх, X,Y- низ, или возможен и такой вариант (1179,166) X,Y- в 1 пиксель.
Хотя известно, что GETSCREEN работает и без координат, но для облегчения - оптимизации работы в целом, нужно понять как уменьшить объем работ для процессора.

3) Даны координаты двух разных пикселей с любым цветом. Цель - при изменении цвета в любой из заданных координат выдать разрешение выполнения дальнейшей программы. Программа выполнилась, сново циклично проверять изменение цвета и при изменении сново выполнить основную программу.
После долгого разгребания каши в голове, мне удалось выполнить задачу, за исключением некоторых вопросов - все отлично работает.
Второй скрипт это неудачная попытка оптимизировать.

4) Какой нибудь легкий браузер не посоветуете, имею всего 2 гб озу и не быстрый процессор.  Этот Firefox портабл обновился и процессор грузит со своими примочками (а, если их три - все начинает подвисать), да и опера портабл чуть меньше. Для Windows 7?
Было-б хорошо чтобы Clickermann имел свой встроенный и легкий браузер :)
Code: (clickermann) [Select]
// Работает

GETSCREEN (1179,166, 1179,222)
$clrV1 = PXL(1179,166)  // Возвращает код цвета для заданного пикселя.
$clrN1 = PXL(1179,222)
print($clrV1,"ВЕРХ"$clrN1," НИЗ") // для проверки работы
 WAITMS(20)
 DEFINE($clrV2, $clrV1) //
 DEFINE($clrN2, $clrN1) //
IF($clrV1 =  $clrV2)
   ELSE 
   SOUND("Hardware.wav") // для контроля работы
   $clrV2 =  $clrV1
END_IF
 WAITMS(100)
IF($clrN1 =  $clrN2)
   ELSE 
   SOUND("Hardware.wav") //
   $clrN2 =  $clrN1
END_IF
 WAITMS(100)

================================================

 // Неудачная попытка оптимизировать

GETSCREEN (1179,166, 1179,222)
$clrV1 = PXL(1179,166)  // Возвращает код цвета для заданного пикселя.
$clrN1 = PXL(1179,222)  //
print($clrV1,"ВЕРХ"$clrN1," НИЗ") // для проверки работы
 WAITMS(20)
 DEFINE($clrV2, $clrV1) //
 DEFINE($clrN2, $clrN1) //
IF($clrV1 =  $clrV2)&($clrN1 =  $clrN2)
   ELSE 
   SOUND("Hardware.wav") // для контроля работы
   $clrV2 =  $clrV1
   $clrN2 =  $clrN1
END_IF
 WAITMS(100)

9
Варианты от dramster все хороши. Проверив один из вариантов, сразу решил поблагодарить человека.
Чем больше на форуме находишься, тем больше поражаешься находчивостью и кратким решением задач  - завсегдатаев форума.  Спасибо!
Так-же благодарю Oraven, за оригинальные подсказки. Этот вариант с применением STRREPLACE о котором упоминал выше dramster работает быстрее!

10
Все отлично вычисляет! Спасибо!
Скрипт - проверка работы вычисления

Code: (clickermann) [Select]
TOCLIP("")    // Очистить буфер

///////  копирование  /////

      LCLICK(1253,82)  // жм.кн. перекл.
      WAITMS(100)

      LCLICK(1173,224)// жм.кн. -G
      WAITMS(150)

      LCLICK(1217,172)     //  копируем
      WAITMS(50)           //
      KEYDOWN(#CTRL) //
      WAITMS(50)           //
      KEYPRESS(#a)       //
      WAITMS(50)           //
      KEYPRESS(#c)       //
      WAITMS(50)           //
      KEYUP (#CTRL)      //
      WAITMS(50)
      DEFINE($h1, FROMCLIP()) // DEFINE Объявляет переменную и присваивает ей значение из FROMCLIP который возвращает строку, находящуюся в буфере обмена
      WAITMS(50)

      LCLICK(1173,166) //жм.кн -R
      WAITMS(50)

      LCLICK(1217,172)    // копируем
      WAITMS(50)           //
      KEYDOWN(#CTRL) //
      WAITMS(50)           //
      KEYPRESS(#a)       //
      WAITMS(50)           //
      KEYPRESS(#c)       //
      WAITMS(50)           //
      KEYUP (#CTRL)      //
      WAITMS(50)           //   
      DEFINE($h2, FROMCLIP()) //
      WAITMS(50)
     
      LOGWRITE($h1, " - $h1 до преобразования зпт в тчк")
      LOGWRITE($h2, " - $h2 до преобразования зпт в тчк") 

////////  преобразование зпт в тчк  /////////    

$pos = STRPOS ($h1, ",")// Возвращает позицию начала искомой подстроки во входной строке.
IF($pos > 1)
   $h1 = STRFILTER ($h1, ",", 0)// Возвращает строку, из которой удаляются определенные символы.
   $h1 = STRCONCAT(STRCUT2($h1,1,$pos-1),".",STRCUT2($h1,$pos, STRLEN ($h1)))// STRCONCAT Возвращает объединенную строку, состоящую из других строк.STRCUT Возвращает подстроку из входной строки. STRLEN Возвращает длину входной строки в символах

END_IF
 
IF($pos > 1)
   $pos = STRPOS ($h2, ",")
   $h2 = STRFILTER ($h2, ",", 0)
   $h2 = STRCONCAT(STRCUT2($h2,1,$pos-1),".",STRCUT2($h2,$pos, STRLEN ($h1)))
END_IF

      LOGWRITE($h1, " - $h1 до вычисления- ")
      LOGWRITE($h2, " - $h2 до вычисления- ")
      WAITMS(100)

      $q=($h1+$h2)/2+0.1 // вычисления
     

      WAITMS(50)
      LOGWRITE(" --- ", $q, " --РЕЗУЛЬТАТ--- ")
 
      HALT

11
Спасибо! Варианты попробую.

12
Копируются два числа с запятыми  123,45 и 678,91
После назначения двух переменных командами DEFINE из буфера, два числа остаются также с запятыми. Нужно выполнить арифметическое действие (123,45+678,91)/2
Если вместо запятой изначально стоит точка, то вычисление произойдет. А так как копируется только с запятой, то и вычисление не происходит.
==========================================
с запятой копированные из браузера

лог файлы
19:10:54 123,45 - h1 переменная
19:10:54 678,91 - h2 переменная
19:10:54  --- ("123,45"+"678,91")/2 -- результат---
=============================================
если назначаем переменные из заранее подготовленных чисел, но с ТОЧКОЙ

лог файлы
19:10:54 123.45 - h1 переменная
19:10:54 678.91 - h2 переменная
19:10:54 401.18 -- результат---
===========================================
если назначаем переменные из заранее подготовленных чисел, но с ЗАПЯТОЙ
также вычисляет, причем в переменной запятая становится точкой

скрипт $h1 = 123,45
скрипт $h2 = 678,91  //  заранее подготовленные с !запятой

лог 19:17:14 123.45 - h1 переменная до вычисления    !с точкой
лог 19:17:14 678.91 - h2 переменная до вычисления    !с точкой
скрипт      $E=($h1+$h2)/2+0.1 // вычисления
лог 19:17:14 401.28 -- результат---
лог 19:17:14 123.45 --после вычисления h1 переменная
лог 19:17:14 678.91 --после вычисления h2 переменная

 А с копированием из браузера - не становится точкой
============================================
Не могу разобраться, как решить эту головоломку? Изначально пробовал прибавлением времени, т.к. весь скрипт пролетает за 1 сек. Но оказалось не там копал и после расстановки по цепочке этажерки из команд -  LOGWRIT понял, что дело кроется в запятой.
Или как заменить запятую на точку?

13
БЛАГОДАРЮ!!!

14
Работает отлично, согласно алгоритму!!! При появившемся цвете жмет кнопку, воспроизводит звук и делает конспект. Еще раз СПАСИБО!
Но в алгоритме я не сделал подробного пояснения (сам виноват).
Сейчас, при появившемся цвете, (а цвет может задержаться на долго) он делает многократное включение блока Y, равно как и блока N, а нужно однократное включение. Например появился цвет А - однократно нажал кн."YES" только один раз проиграл звук и один раз записал текст.
Появился цвет А - 1 раз включил блок Y, появился цвет В - 1 раз включил блок N, снова появился цвет А и снова 1 раз включил блок Y и т.д.
Пробовал увеличить временную задержку в блоках но это приводит к нестабильной работе.

15
Оо! Большое СПАСИБО!!! Я уже начал городить целую неработающую этажерку, а тут все так коротко и просто или все гениальное просто! :) Теперь попробую разобраться как все работает по отдельности и вместе, подписывая для себя комментарии. Это как первый детекторный приемник - сам долго собираешь и не работает, в итоге бросаешь это занятие. А при помощи опытного человека все настраивается и усиливается интерес к электроники.

Pages: [1] 2