Здравствуйте, гость ( Вход | Регистрация )

> Декодер | замена текста.
FREEON
сообщение 27.1.2019, 10:52
Сообщение #1


*****

Journeyman
Сообщений: 365
Регистрация: 14.2.2017
Группа: Пользователи
Наличность: 1317
Пользователь №: 18.346
Возраст: 25



Можно ли на базе пилота сделать скрипт который бы заменял текст в файле на нужный?
К примеру есть текстовый документ test.txt, в нем находится набор символов которые нечитаемы, но разделены к примеру запятой(или пробелом или ещё каким символом).
Код
1,2,3,4,5,11,27

Мы знаем и делаем условие что 1 это привет, 2 допустим имя Максим и так далее. Нужно чтобы пилот сканировал текст и менял символы на нужные слова и результат сохронял в нужном месте.
Примеры, готовые скрипты:
qwerty перевод на русский: Hfcrkflrf -> Раскладка

Готовый скрипт конвертирует набранный текст в неверной раскладке клавиатуры. Владение методом слепого набора, уменьшает эту вероятность, но неприятности иногда случаются. Также данный метод можно использовать для кодирования своих сообщений или легкого запоминания своих паролей.
Например:
Цитата
$GfHjKm$_Dfvgbh >>> ;ПаРоЛь;_Вампир

Код

--lua
-- Скрипт для перевода английской раскладки в русскую
-- Hfcrkflrf -> Раскладка
local file= io.open([[C:\123.txt]], "r")          -- файл с текстом
local result_file = io.open([[C:\456.txt]], "w")  -- куда сохранить результат

local t={}
t["a"]="ф"  t["b"]="и"  t["c"]="с"  t["d"]="в"  t["e"]="у"  t["f"]="а"
t["g"]="п"  t["h"]="р"  t["i"]="ш"  t["j"]="о"  t["k"]="л"  t["l"]="д"
t["m"]="ь"  t["n"]="т"  t["o"]="щ"  t["p"]="з"  t["q"]="й"  t["r"]="к"
t["s"]="ы"  t["t"]="е"  t["u"]="г"  t["v"]="м"  t["w"]="ц"  t["x"]="ч"
t["y"]="н"  t["z"]="я"  t["`"]="ё"  t["["]="х"  t["]"]="ъ"  t[";"]="ж"
t["'"]="э"  t[","]="б"  t["."]="ю"  t["/"]="."  t["A"]="Ф"  t["B"]="И"
t["C"]="С"  t["D"]="В"  t["E"]="У"  t["F"]="А"  t["G"]="П"  t["H"]="Р"
t["I"]="Ш"  t["J"]="О"  t["K"]="Л"  t["L"]="Д"  t["M"]="Ь"  t["N"]="Т"
t["O"]="Щ"  t["P"]="З"  t["Q"]="Й"  t["R"]="К"  t["S"]="Ы"  t["T"]="Е"
t["U"]="Г"  t["V"]="М"  t["W"]="Ц"  t["X"]="Ч"  t["Y"]="Н"  t["Z"]="Я"
t["{"]="Х"  t["}"]="Ъ"  t[":"]="Ж"  t['"']="Э"  t["<"]="Б"  t[">"]="Ю"
t["?"]=","  t["~"]="Ё"  t["@"]='"'  t["#"]="№"  t["$"]=";"  t["^"]=":"
t["&"]="?"

if file and result_file then     -- если файлы открылись
    for v in file:lines() do
        result_file:write(string.gsub(v, ".", t).."\r\n")  -- поиск и замена текста из таблицы 't'
    end

    file:close()
    result_file:close()
else
    log ("Файлы отсутствуют или недоступны для чтения/записи")
end

URL-decoder(декодер): %D0%A2%D0%B5%D0%BA%D1%81%D1%82 -> Текст

URL применяется всеми и везде и стал неотъемлемой частью Интернета и является идентификации ресурсов(сайтов) в браузерах. Стандарт URL использует набор символов US-ASCII. И имеет серьёзный недостаток, поскольку можно использовать лишь латинские буквы, цифры и несколько знаков пунктуации. Все другие символы необходимо перекодировать. Скрипт размещенный ниже, это, инструмент и поможет раскодировать строку, закодированную подобным алгоритмом.
Пример:
Цитата
%D0%9A%D1%83%D0%BF%D0%B8%D1%82%D1%8C >>> Купить

Код

--lua
log "clear"   log "mode compact"

local s="Вставить свой код URL"   -- << Для декодирования вставить url-код между ""
log(s)

local t={}
t["%D0%90"]="А" t["%D0%91"]="Б" t["%D0%92"]="В" t["%D0%93"]="Г" t["%D0%94"]="Д" t["%D0%95"]="Е" t["%D0%81"]="Ё" t["%D0%96"]="Ж" t["%D0%97"]="З" t["%D0%98"]="И" t["%D0%99"]="Й"
t["%D0%9A"]="К" t["%D0%9B"]="Л" t["%D0%9C"]="М" t["%D0%9D"]="Н" t["%D0%9E"]="О" t["%D0%9F"]="П" t["%D0%A0"]="Р" t["%D0%A1"]="С" t["%D0%A2"]="Т" t["%D0%A3"]="У" t["%D0%A4"]="Ф"
t["%D0%A5"]="Х" t["%D0%A6"]="Ц" t["%D0%A7"]="Ч" t["%D0%A8"]="Ш" t["%D0%A9"]="Щ" t["%D0%AA"]="Ъ" t["%D0%AB"]="Ы" t["%D0%AC"]="Ь" t["%D0%AD"]="Э" t["%D0%AE"]="Ю" t["%D0%AF"]="Я"
t["%D0%B0"]="а" t["%D0%B1"]="б" t["%D0%B2"]="в" t["%D0%B3"]="г" t["%D0%B4"]="д" t["%D0%B5"]="е" t["%D1%91"]="ё" t["%D0%B6"]="ж" t["%D0%B7"]="з" t["%D0%B8"]="и" t["%D0%B9"]="й"
t["%D0%BA"]="к" t["%D0%BB"]="л" t["%D0%BC"]="м" t["%D0%BD"]="н" t["%D0%BE"]="о" t["%D0%BF"]="п" t["%D1%80"]="р" t["%D1%81"]="с" t["%D1%82"]="т" t["%D1%83"]="у" t["%D1%84"]="ф"
t["%D1%85"]="х" t["%D1%86"]="ц" t["%D1%87"]="ч" t["%D1%88"]="ш" t["%D1%89"]="щ" t["%D1%8A"]="ъ" t["%D1%8B"]="ы" t["%D1%8C"]="ь" t["%D1%8D"]="э" t["%D1%8E"]="ю" t["%D1%8F"]="я"

for v in pairs(t) do   -- добавление ключей в таблицу, если был "%D0%9A", то добавляется "%d0%9a"
    t[v:lower()]=t[v]
end

for i=32, 127 do t["%" .. string.format("%X", i)]=string.char(i) end   -- добавление ключей в таблицу, все символы ascii с 32 по 127

s=s:gsub("%%[Dd][01]%%%x%x", t)   -- замена кириллицы
s=s:gsub("%%..", t)               -- замена спецсимволов
log(s)                            -- результат

Текст задом наперед. Reverser : Зеркальный код. -> .док йыньлакреЗ

Зеркальный код использовал да Винчи в эпоху Возрождения, он в зеркальном стиле писал свои заметки, а также картины. Возможно он подсмотрел эту технику у арабов...кто знает (IMG:style_emoticons/default/smile.gif)
Данный скрипт позволяет отзеркалить текст в одну или в обратную сторону.
Пример:
Цитата
Не только Леонардо да Винчи пишет задом наперед! >>> !дерепан модаз тешип ичниВ ад одраноеЛ окьлот еН

Код

--lua
log "clear"  log "mode compact"
local s="Текст который нужно отзеркалить."
log (s)
log (s:reverse())

Азбука морзе: Morse to text -> -- --- .-. ... . - --- - . -..- -

Код Морзе, «Морзянка» — способ кодирования букв алфавита, цифр, знаков препинания и других символов при помощи длинных и коротких сигналов, так называемых «точек» и «тире».
Конвертирует латиницу в код морзе и обратно. Пример:
Цитата
Text <<->> - . -..- -

Код

--lua
log "clear"  log "mode compact"
-- Скрипт для конвертерования текста(ЛАТИНИЦА)в Азбуку Морзе или наоборот.
local text=[[Text or - . -..- -]]-- << Введите исходный текст на латинице или код Морзе и запустите скрипт.

log(text)

local t, t1, temp = {}, {}, {}
t["A"]=".-"     t["B"]="-..."   t["C"]="-.-."   t["D"]="-.."    t["E"]="."      t["F"]="..-."   t["G"]="--."
t["H"]="...."   t["I"]=".."     t["J"]=".---"   t["K"]="-.-"    t["L"]=".-.."   t["M"]="--"     t["N"]="-."
t["O"]="---"    t["P"]=".--."   t["Q"]="--.-"   t["R"]=".-."    t["S"]="..."    t["T"]="-"      t["U"]="..-"
t["V"]="...-"   t["W"]=".--"    t["X"]="-..-"   t["Y"]="-.--"   t["Z"]="--.."
for v in pairs(t) do temp[string_lower(v)]=t[v] end
for v in pairs(temp) do t[v]=temp[v] end
t["1"]=".----"  t["2"]="..---"  t["3"]="...--"  t["4"]="....-"  t["5"]="....."  t["6"]="-...."  t["7"]="--..."
t["8"]="---.."  t["9"]="----."  t["0"]="-----"  t["."]="......" t[":"]="---..." t[";"]="-.-.-." t["("]="-.--.-"
t[")"]="-.--.-" t["'"]=".----." t['"']=".-..-." t["-"]="-....-" t["/"]="-..-."  t["?"]="..--.." t["!"]="--..--"
t[","]=".-.-.-"
for v in pairs(t) do t1[t[v]]=v end   -- таблица для дешифровки, копия 't' только ключи и значения ключей поменяны местами

local x=0
for v in text:gmatch("[%.%- ]") do x=x+1 end  -- подсчёт точек, тире и слешей в строке

if x > #text*50/100 then   -- если их больше 50%, считаем что передана шифрованная строка
    text=string.gsub((text .. " "):gsub("(.-) ", t1), "  ", " ")    -- дешифруем
else
    text=string.gsub(text:gsub("(.)", "%1 "), "[^ ]", t)  -- иначе шифруем
end
log (text)

Конвертирует кириллицу в код морзе и обратно. Пример:
Цитата
Текст<<->> - . -.- ... -

Код

--lua
log "clear"  log "mode compact"

-- Скрипт для конвертирования текста(КИРИЛЛИЦА)в Азбуку Морзе или наоборот.
local text=[[Текст или - . -.- ... -]]-- << Введите исходный текст на кириллице или код Морзе и запустите скрипт.

log(text)

local t, t1, temp = {}, {}, {}
t["А"]=".-"     t["Б"]="-..."   t["В"]=".--"    t["Г"]="--."    t["Д"]="-.."    t["Е"]="."    t["Ё"]="."
t["Ж"]="...-"   t["З"]="--.."   t["И"]=".."     t["Й"]=".---"   t["К"]="-.-"    t["Л"]=".-.." t["М"]="--"
t["Н"]="-."     t["О"]="---"    t["П"]=".--."   t["Р"]=".-."    t["С"]="..."    t["Т"]="-"    t["У"]="..-"
t["Ф"]="..-."   t["Х"]="...."   t["Ц"]="-.-."   t["Ч"]="---."   t["Ш"]="----"   t["Щ"]="--.-" t["Ь"]="-..-"
t["Ъ"]="-..-"   t["Ы"]="-.--"   t["Э"]="..-.."  t["Ю"]="..--"   t["Я"]=".-.-"
for v in pairs(t) do temp[string_lower(v)]=t[v] end
for v in pairs(temp) do t[v]=temp[v] end
t["1"]=".----"  t["2"]="..---"  t["3"]="...--"  t["4"]="....-"  t["5"]="....."  t["6"]="-...."  t["7"]="--..."
t["8"]="---.."  t["9"]="----."  t["0"]="-----"  t["."]="......" t[":"]="---..." t[";"]="-.-.-." t["("]="-.--.-"
t[")"]="-.--.-" t["'"]=".----." t['"']=".-..-." t["-"]="-....-" t["/"]="-..-."  t["?"]="..--.." t["!"]="--..--"
t[","]=".-.-.-"
for v in pairs(t) do t1[t[v]]=v end   -- таблица для дешифровки, копия 't' только ключи и значения ключей поменяны местами

local x=0
for v in text:gmatch("[%.%- ]") do x=x+1 end  -- подсчёт точек, тире и слешей в строке

if x > #text*50/100 then   -- если их больше 50%, считаем что передана шифрованная строка
    text=string.gsub((text .. " "):gsub("(.-) ", t1), "  ", " ")    -- дешифруем
else
    text=string.gsub(text:gsub("(.)", "%1 "), "[^ ]", t)  -- иначе шифруем
end
log (text)


Выражаю огромную благодарность в написании скриптов нашему великому гуру cirus .
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
 
Ответить в эту темуОткрыть новую тему
Ответов
cirus
сообщение 18.11.2021, 14:53
Сообщение #2


**********

Elder
Сообщений: 3.480
Регистрация: 18.8.2014
Группа: Пользователи
Наличность: 26745
Пользователь №: 16.971
Возраст: 29



Путь с пробелами должен быть в кавычках.
Код
--lua
log 'clear' log 'mode compact'
local OldName = "C:\\test.txt"
local NewName = "C:\\Русский текст.txt"

log ( NewName )
log ( string.format("%q", NewName) )

filerename (string.format("%q", OldName) , string.format("%q", NewName))


Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

Сообщений в этой теме
FREEON   Декодер | замена текста.   27.1.2019, 10:52
cirus   --lua local file= io.open([[C:...   27.1.2019, 11:44
FREEON   [code]--lua local file= io.open([[C...   27.1.2019, 13:12
NoName212   на php обычно такое делают) в дивел студио 3.0...   27.1.2019, 12:24
DarkMaster   Ну так добавляйте в правила выше:   27.1.2019, 13:28
FREEON   Ну так добавляйте в правила выше: добавил t...   27.1.2019, 13:43
cirus   Нужно регулярку менять, там разделитель запятая. ...   27.1.2019, 13:38
FREEON   Пример нужен. Как символы отличать? .- = А - 2 ...   27.1.2019, 14:31
cirus   Второй параметр, это шаблон регулярного выражения...   27.1.2019, 14:04
FREEON   Есчо вопрос... Можно ли к примеру делать перекодир...   27.1.2019, 16:18
cirus   [code]--lua log "clear" log "mode com...   27.1.2019, 16:25
FREEON   [spoiler=Перевод текста в Азбуку Морзе в бинарном...   27.1.2019, 17:44
cirus   Пример приведите что не работает.   27.1.2019, 18:26
FREEON   Пример приведите что не работает. ну в обратном ...   27.1.2019, 18:40
cirus   Причём тут точки и тире, они используются как про...   27.1.2019, 19:14
FREEON   Набросал по шаблону скрипт для перевода текста рас...   27.1.2019, 20:10
cirus   --lua local s1 = '"Hello!"' -...   27.1.2019, 20:27
cirus   t["<"]="Б" t[...   27.1.2019, 21:02
DarkMaster   local s4 = [====['"Hello!"...   27.1.2019, 21:08
FREEON   Помогите создать маску для url-декодера... :unsure...   28.1.2019, 1:16
cirus   --lua log "clear" log "mode compact...   28.1.2019, 4:24
FREEON   --lua log "clear" log "mode compact...   28.1.2019, 6:38
FREEON   А можно ли скриптом сделать зеркальный текст? Что ...   28.1.2019, 14:39
cirus   --lua log "clear" log "mode compact...   28.1.2019, 15:27
FREEON   Возник вопрос решил допилить генератор морзянки......   28.1.2019, 16:09
cirus   Работает только с латиницей. Используйте: string_...   28.1.2019, 16:20
FREEON   Работает только с латиницей. Используйте: [code]s...   28.1.2019, 17:00
cirus   --lua log "clear" log "mode compact...   28.1.2019, 17:11
FREEON   Ну да так и получается что многие серверы хитрят с...   28.1.2019, 20:51
cirus   for v in pairs(t) do -- добавление ключе...   28.1.2019, 21:18
FREEON   for v in pairs(t) do -- добавление ключ...   28.1.2019, 21:29
cirus   Либо делать 2 таблицы. Одна для кириллицы, другая...   28.1.2019, 21:50
FREEON   Либо делать 2 таблицы. Одна для кириллицы, другая...   28.1.2019, 22:04
cirus   А пробел как при этом кодируется? Как отличать пр...   28.1.2019, 22:39
FREEON   А пробел как при этом кодируется? Как отличать пр...   28.1.2019, 23:01
cirus   --lua log "clear" log "mode compact...   29.1.2019, 0:50
FREEON   [code]--lua log "clear" log "mode co...   29.1.2019, 1:18
cirus   Нет. А для чего нужен?   29.1.2019, 1:43
FREEON   Нет. А для чего нужен? для разделения вместо кры...   29.1.2019, 1:46
cirus   То строку разделяете на элементы, то массив выводи...   29.1.2019, 3:02
FREEON   То строку разделяете на элементы, то массив вывод...   29.1.2019, 11:47
FREEON   Lua такой гибкий язык и компактный, а такую прост...   29.1.2019, 12:27
sutra   Понимаю одно, не вникая ничего не понимаю. Даже то...   29.1.2019, 4:02
DarkMaster   Лучше не использовать. Используйте next - он шуст...   29.1.2019, 13:10
cirus   --lua log "clear" log "mode compact...   29.1.2019, 13:27
FREEON   Какая маска для декодера CP1251 в UTF-8 --lua log...   23.4.2019, 22:34
FREEON   Есть два файла текстового формата. Нужно сперва в...   29.10.2019, 16:14
Fors1k   Еще раз проверил, все работает. File1 File2 Fi...   30.10.2019, 13:09
FREEON   Еще раз проверил, все работает. File1 File2 Fi...   30.10.2019, 13:30
Fors1k   Взял идентичный скрипт calc c:/2/file2_new.txt ...   30.10.2019, 13:35
FREEON   У меня в скрипте нет обращения к элементу массива...   30.10.2019, 13:48
Fors1k   сбрось свой скрипт из пилота. Код прям с форума. ...   30.10.2019, 14:46
FREEON   Код прям с форума. mg8zuB4na2c даж не знаю в че...   30.10.2019, 15:41
FREEON   даж не знаю в чем дело... у тя работает у меня не...   30.10.2019, 18:15
Fors1k   Но с моими файлами работать по прежнему не хочет ...   31.10.2019, 8:04
FREEON   Ну ты пришли свои файлы для теста, что хорошо бы ...   31.10.2019, 9:33
Fors1k   [b]#i_1.txt меняем * на " и </tr> , ...   31.10.2019, 15:49
FREEON   Кидай в следующий раз сразу файлы для примера, та...   1.11.2019, 1:26
Fors1k   Есть два файла текстового формата. Нужно сперва ...   30.10.2019, 1:59
FREEON   [/quote] С командой indexOf еще не сталкивался. П...   30.10.2019, 11:27
cirus   --lua local file= io.open([[C:...   30.10.2019, 12:46
cirus   На луа скрипт работает?   31.10.2019, 1:26
FREEON   На луа скрипт работает? Да работает на lua. Каже...   31.10.2019, 7:04
cirus   --lua local file = io.open([[C:...   31.10.2019, 11:37
FREEON   Столкнулся с проблемой при работе скипта для транс...   18.11.2021, 14:36


Ответить в эту темуОткрыть новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

- Текстовая версия | Версия для КПК Сейчас: 28.4.2024, 2:40
Designed by Nickostyle