Перейти к содержанию
Авторизация  
Razi

[Cheat Engine] Можно CE научить понимать русские буквы в имени файла?

Рекомендуемые сообщения

Добрый день. Можно CE научить понимать русские буквы в имени файла или в пути? Например: сделана программа, которая открывает файлы для редактирования, но если в названии файла есть русские буквы или в пути к файлу, тогда СЕ при попытке открыть этот файл говорит, что такого файла нет. Можно с помощью языка Луа это исправить?

Изменено пользователем Razi

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А ты пробовал преобразовать путь в UTF8?  У CE есть такая функция преобразования

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
3 часа назад, MasterGH сказал:

А ты пробовал преобразовать путь в UTF8?  У CE есть такая функция преобразования

 

Эта функция ansiToUtf8(string) ? Куда ее надо вставить?

Спойлер

function fsize(fl)
 fl, err = io.open(fl, "r")
 if fl then
 local current = fl:seek()
 local size = fl:seek("end")
 fl:seek("set", current)
 fl:close()
 size = round(size, 2)
 stringsize = string.format(size)
 end
 return stringsize
end

function openFile(fs)
load_dialog = createOpenDialog(self)
load_dialog.InitalDir = os.getenv('%USERPROFILE%')
load_dialog.execute()
local path = load_dialog.FileName
--path = ansiToUtf8(path)
 fileSize = fsize(path)
 fileSize = tonumber(fileSize)
  if fileSize == fs then
  openFileAsProcess(path, r)
  end
end

 

 

Изменено пользователем Razi

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вот так заработало (из utf8 в ansi)

 

Если не будет работать тогда проверить путь. 

local pathRU = "C:\\Текстовый фaйл.txt"
local utf8Path = utf8ToAnsi(pathRU)
local file, error = io.open(utf8Path)
print (file, error)

Одинарные символы "\" заменить на "\\". Если и это не поможет, то в текстовым файле (справочнике CE Lua) есть классы для работы с файлами на чтение и запись.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
1 час назад, MasterGH сказал:

local utf8Path = utf8ToAnsi(pathRU)

 

Открывает файл, но не считывает значения с смещений. Значения равны nil.

 

1 час назад, MasterGH сказал:

в текстовым файле (справочнике CE Lua) есть классы для работы с файлами на чтение и запись.

Там есть readRegionFromFile, writeRegionToFile

 

 

Изменено пользователем Razi

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
4 часа назад, Razi сказал:

utf8Path

Я перепутал название переменной)

 

Так все же работает. Пошаговый Lua отладчик в помощь

Спойлер

Lua IO.png

 

Спойлер

function round(x)
  return x>=0 and math.floor(x+0.5) or math.ceil(x-0.5)
end

function fsize(fl)
 fl, err = io.open(fl, "r")

 if fl then
   local current = fl:seek()
   local size = fl:seek("end")
   fl:seek("set", current)
   fl:close()

   size = round(size, 2)
   stringsize = string.format(size)
 end

 return stringsize
end

function openFile(fs)

  load_dialog = createOpenDialog(self)
  load_dialog.InitalDir = os.getenv('%USERPROFILE%')
  load_dialog.execute()

  local path = load_dialog.FileName

  path = utf8ToAnsi(path)

  fileSize = fsize(path)

  if fileSize == nil then
    print('fileSize is nil')
    return
  end

  fileSize = tonumber(fileSize)
  print(fileSize)

  if fileSize == fs then
    openFileAsProcess(path, r)
    print('openFileAsProcess')
  end

end

openFile(100)

 

 

Вообще не очень понятно, зачем открывать файл как процесс,  подсчитав его размер. Я бы эту строчку закомментировал.

Если надо открывать файл редактором, то можно текстовым или своим на Lua сделанным

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
1 час назад, MasterGH сказал:

Вообще не очень понятно, зачем открывать файл как процесс,

Можно так например пропатчить какой нибудь exe файл и сохранить потом, при этом используя функции для работы с памятью процесса, очень удобно по моему 😀

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
15 часов назад, MasterGH сказал:

Вообще не очень понятно, зачем открывать файл как процесс,  подсчитав его размер.

 

Это редактор магазина игры: Shop Editor. Достаем спец. прогой файл из диска Playstation 1. Открываем нашей программой, редактируем все что нам нужно и сохраняем. Размер файла подсчитывается, потому что у Региона Pal и региона NTSC файлы идентичны, но имеют разный размер и соответственно значения находятся по разным смещениям.

Как процесс открывается, потому что на форуме CE нашел только одну тему как открыть файл. Нужно открыть файл и помнить все сделанные изменения, до записи значений в файл. И потом только один раз нажать на Apply Changes. Такая программа есть для NTSC и PC версий игры. Сделал такую же программу для Pal версии и заодно для NTSC и PC версий игры. 

Скриншоты:

Спойлер

2Upun.jpg

 

2Upup.jpg

 

2Upuq.jpg

 

 

MasterGH : Да и еще раз хотел сказать спасибо, за помощь в создании трейнера в прошлом.

Скриншоты:

Спойлер

2S47m.jpg

 

2S47n.jpg

 

2S47p.jpg

 

2S47q.jpg

 

2S47r.jpg

 

2S47s.jpg

 

2S47t.jpg

 

2S47u.jpg

 

2S4bT.jpg

 

2S4bU.jpg

 

2S4bV.jpg

 

2S4bW.jpg

 

2S4bY.jpg

 

Изменено пользователем Razi
  • Понравилось 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация  

×

Важная информация

Находясь на нашем сайте, Вы автоматически соглашаетесь соблюдать наши Условия использования.