Cheat Engine Forum Index Cheat Engine
The Official Site of Cheat Engine
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 


Find Next Word In CEMemo And Unicode

 
Post new topic   Reply to topic    Cheat Engine Forum Index -> Cheat Engine Lua Scripting
View previous topic :: View next topic  
Author Message
Corroder
Grandmaster Cheater Supreme
Reputation: 63

Joined: 10 Apr 2015
Posts: 1553

PostPosted: Tue Jun 11, 2019 9:09 pm    Post subject: Find Next Word In CEMemo And Unicode Reply with quote

Code:
vanban = [[Ốc Nhồi
Bc mẹ sinh ra phận ốc nhồi.
Đm ngy lăn lc đm cỏ hi.
Qun tử c thương th bc yếm.
Xin đừng ng ngoy lỗ trn ti.

Quả Mt
Thn em như quả mt trn cy,
Da n s s, mi n dy.
Qun tử c thương th đng cọc,
Xin đừng mn m nhựa ra tay.
Bc mẹ sinh ra phận ốc nhồi.
Đm ngy lăn lc đm cỏ hi.
Qun tử c thương th bc yếm.
Xin đừng ng ngoy lỗ trn ti.
]]

UDF1.CEMemo1.Lines.Text = vanban
UDF1.CEEdit1.Text = ''
UDF1.CEMemo1.selStart = 234
UDF1.CEMemo1.selLength = 6
--UDF1.CEMemo1.selAttributes.Color = clGreen
UDF1.CEMemo1.HideSelection = false
UDF1.CEMemo1.Font.CharSet = 'VIETNAMESE_CHARSET'
UDF1.CEMemo1.WordWrap = false

function timkimVanBhan()
local x1,x2
x1,x2=string.find(UDF1.CEMemo1.Lines.Text, UDF1.CEEdit1.Text)
if x1 then
  x1=x1-1
  UDF1.CEMemo1.selectText(x1,x2-x1)
end
end

UDF1.show()
UDF1.CEButton1.OnClick = timkimVanBhan


The function 'timkimVanBhan()' meaning 'search text', will highlight the first text found on CEMemo1 if match with input text on CEEdit1.

Questions:
1. How to make the function to find the next matching words on CEMemo1?
2. When using Unicode text (non-English), the search result return text not match with the text to search, how to fix it?

Thanks

_________________
Stealing Code From Stolen Code...
And Admit It.. Hmmm....Typically LOL
Back to top
View user's profile Send private message
Dark Byte
Site Admin
Reputation: 410

Joined: 09 May 2003
Posts: 23619
Location: The netherlands

PostPosted: Wed Jun 12, 2019 12:00 am    Post subject: Reply with quote

1: the 3th find parameter lets you specify the start
string.find(UDF1.CEMemo1.Lines.Text, UDF1.CEEdit1.Text,x1+1)

2:
memo stores text in utf8 format

lua find searches in whatever lua's find searches in

you need to convert either the searchstring or the text to something compatible

_________________
Do not ask me about online cheats. I don't know any and wont help finding them.

Like my help? Join me on Patreon so i can keep helping
Back to top
View user's profile Send private message MSN Messenger
Corroder
Grandmaster Cheater Supreme
Reputation: 63

Joined: 10 Apr 2015
Posts: 1553

PostPosted: Wed Jun 12, 2019 1:06 am    Post subject: Reply with quote

Thank DB for the answer.

No.2,
Then I need to make a function to translate UNICODE to UTF-8 or compatible to UTF-8 for both text on CEEdit1 and CEMemo1.

No.1,

I change the script:

Code:
texture = [[
cheat engine is a tool used to hack an app.
people mostly used cheat engine for hacking a game.
cheat engine is possible to manage memory such as
editing (reading and writing).
cheat engine made by Dark Byte a.k.a Eric henen.
cheat engine or CE, is an open-source
memory scanner/hex editor/debugger.
The first version of cheat engine has released at
June 28, 2000, version 1.3 source code.
]]

UDF1.CEMemo1.clear()
UDF1.CEMemo1.Lines.Text = texture
UDF1.CEEdit1.Text = ''
UDF1.CEMemo1.HideSelection = false
UDF1.CEMemo1.WordWrap = false

function timkimVanBhan()
 local s1,s2
 s1,s2=string.find(UDF1.CEMemo1.Lines.Text, UDF1.CEEdit1.Text,s1+1)
 if s1 then
  s1=s1-1
  UDF1.CEMemo1.selectText(s1,s2-s1)
  UDF1.CEMemo1.selstart=s1
  UDF1.CEMemo1.sellength=s2-s1
 if s1 == UDF1.CEMemo1.Lines.Count then
  s1 = 0
 end
 end
end

UDF1.show()
UDF1.CEButton1.OnClick = timkimVanBhan


Getting error: attempt to perform arithmetic on a nil value (upvalue 's1')
when trying to find text 'cheat' on CEMemo1.

Thanks

EDIT 1:
I write another Lua script use for handle text on CEMemo, as shown on the attached picture. But the script does not finish yet. Still, need some remained functions to use for opening a local/online text file, save changes and a function to get a glossary of words on CEMemo1.

I can split each word, for example:

Code:
str = [[
cheat engine is a hack tool.
people mostly use cheat engine to hacking game
]]

for w in str:gmatch("%S+") do print(w) end


But I want the result like this:

cheat = 2. Line 1,2
engine = 2. Line 1,2
is = 1, Line 1
and so on...

If someone knows the solutions, please let me know. Thank you


EDIT 2:
All done! See this:
https://forum.cheatengine.org/viewtopic.php?p=5749682#5749682



CRDR Text Finder.JPG
 Description:
 Filesize:  53.3 KB
 Viewed:  2119 Time(s)

CRDR Text Finder.JPG



_________________
Stealing Code From Stolen Code...
And Admit It.. Hmmm....Typically LOL
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Cheat Engine Forum Index -> Cheat Engine Lua Scripting All times are GMT - 6 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum


Powered by phpBB © 2001, 2005 phpBB Group

CE Wiki   IRC (#CEF)   Twitter
Third party websites