Перейти к содержанию

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


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

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

Изменено пользователем Razi
Ссылка на комментарий
Поделиться на другие сайты

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
Ссылка на комментарий
Поделиться на другие сайты

×
×
  • Создать...

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

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