WordFunc.nsi 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535
  1. ;_____________________________________________________________________________
  2. ;
  3. ; Word Functions
  4. ;_____________________________________________________________________________
  5. ;
  6. ; 2005 Shengalts Aleksander aka Instructor (Shengalts@mail.ru)
  7. Name "Word Functions"
  8. OutFile "WordFunc.exe"
  9. Caption "$(^Name)"
  10. XPStyle on
  11. RequestExecutionLevel user
  12. Var INI
  13. Var HWND
  14. Var STATE
  15. !include "WinMessages.nsh"
  16. !include "WordFunc.nsh"
  17. Page Custom ShowCustom LeaveCustom
  18. Function ShowCustom
  19. InstallOptions::initDialog "$INI"
  20. Pop $hwnd
  21. InstallOptions::show
  22. Pop $0
  23. FunctionEnd
  24. Function LeaveCustom
  25. ReadINIStr $0 $INI "Settings" "State"
  26. StrCmp $0 0 Enter
  27. GetDlgItem $1 $HWND 1202
  28. EnableWindow $1 1
  29. GetDlgItem $1 $HWND 1203
  30. ShowWindow $1 1
  31. GetDlgItem $1 $HWND 1204
  32. ShowWindow $1 1
  33. GetDlgItem $1 $HWND 1206
  34. EnableWindow $1 1
  35. GetDlgItem $1 $HWND 1205
  36. SendMessage $1 ${WM_SETTEXT} 1 "STR:"
  37. GetDlgItem $1 $HWND 1206
  38. SendMessage $1 ${WM_SETTEXT} 1 "STR:"
  39. ReadINIStr $0 $INI "Field 1" "State"
  40. StrCmp $0 "1. WordFind (Find word by number)" 0 WordFind2Send
  41. GetDlgItem $1 $HWND 1202
  42. SendMessage $1 ${WM_SETTEXT} 1 "STR:|C:\"
  43. GetDlgItem $1 $HWND 1204
  44. SendMessage $1 ${WM_SETTEXT} 1 "STR:-4"
  45. GetDlgItem $1 $HWND 1210
  46. SendMessage $1 ${WM_SETTEXT} 1 "STR:Word #"
  47. GetDlgItem $1 $HWND 1211
  48. SendMessage $1 ${WM_SETTEXT} 1 "STR:Result (Word):"
  49. goto WordFindSend
  50. WordFind2Send:
  51. StrCmp $0 " (Delimiter exclude)" 0 WordFind3Send
  52. GetDlgItem $1 $HWND 1202
  53. SendMessage $1 ${WM_SETTEXT} 1 "STR:|C:\"
  54. GetDlgItem $1 $HWND 1204
  55. SendMessage $1 ${WM_SETTEXT} 1 "STR:E-2{"
  56. GetDlgItem $1 $HWND 1210
  57. SendMessage $1 ${WM_SETTEXT} 1 "STR:Word #"
  58. GetDlgItem $1 $HWND 1211
  59. SendMessage $1 ${WM_SETTEXT} 1 "STR:Result (Before{ or }after delimiter):"
  60. goto WordFindSend
  61. WordFind3Send:
  62. StrCmp $0 " (Sum of words)" 0 WordFind4Send
  63. GetDlgItem $1 $HWND 1202
  64. SendMessage $1 ${WM_SETTEXT} 1 "STR:|C:\"
  65. GetDlgItem $1 $HWND 1204
  66. SendMessage $1 ${WM_SETTEXT} 1 "STR:#"
  67. GetDlgItem $1 $HWND 1210
  68. SendMessage $1 ${WM_SETTEXT} 1 "STR:Option"
  69. GetDlgItem $1 $HWND 1211
  70. SendMessage $1 ${WM_SETTEXT} 1 "STR:Result (Sum of words):"
  71. goto WordFindSend
  72. WordFind4Send:
  73. StrCmp $0 " (Sum of delimiters)" 0 WordFind5Send
  74. GetDlgItem $1 $HWND 1202
  75. SendMessage $1 ${WM_SETTEXT} 1 "STR:|"
  76. GetDlgItem $1 $HWND 1204
  77. SendMessage $1 ${WM_SETTEXT} 1 "STR:E*"
  78. GetDlgItem $1 $HWND 1210
  79. SendMessage $1 ${WM_SETTEXT} 1 "STR:Option"
  80. GetDlgItem $1 $HWND 1211
  81. SendMessage $1 ${WM_SETTEXT} 1 "STR:Result (Sum of delimiters):"
  82. goto WordFindSend
  83. WordFind5Send:
  84. StrCmp $0 " (Find word number)" 0 WordFind6Send
  85. GetDlgItem $1 $HWND 1202
  86. SendMessage $1 ${WM_SETTEXT} 1 "STR:|C:\"
  87. GetDlgItem $1 $HWND 1204
  88. SendMessage $1 ${WM_SETTEXT} 1 "STR:/Program Files"
  89. GetDlgItem $1 $HWND 1210
  90. SendMessage $1 ${WM_SETTEXT} 1 "STR:/Word"
  91. GetDlgItem $1 $HWND 1211
  92. SendMessage $1 ${WM_SETTEXT} 1 "STR:Result (Word #):"
  93. goto WordFindSend
  94. WordFind6Send:
  95. StrCmp $0 " ( }} )" 0 WordFind7Send
  96. GetDlgItem $1 $HWND 1202
  97. SendMessage $1 ${WM_SETTEXT} 1 "STR:|C:\"
  98. GetDlgItem $1 $HWND 1204
  99. SendMessage $1 ${WM_SETTEXT} 1 "STR:E+2}}"
  100. GetDlgItem $1 $HWND 1210
  101. SendMessage $1 ${WM_SETTEXT} 1 "STR:Word #"
  102. GetDlgItem $1 $HWND 1211
  103. SendMessage $1 ${WM_SETTEXT} 1 "STR:Result (Before{{ or }}after word):"
  104. goto WordFindSend
  105. WordFind7Send:
  106. StrCmp $0 " ( {} )" 0 WordFind8Send
  107. GetDlgItem $1 $HWND 1202
  108. SendMessage $1 ${WM_SETTEXT} 1 "STR:|C:\"
  109. GetDlgItem $1 $HWND 1204
  110. SendMessage $1 ${WM_SETTEXT} 1 "STR:+2{}"
  111. GetDlgItem $1 $HWND 1210
  112. SendMessage $1 ${WM_SETTEXT} 1 "STR:Word #"
  113. GetDlgItem $1 $HWND 1211
  114. SendMessage $1 ${WM_SETTEXT} 1 "STR:Result (Without word):"
  115. goto WordFindSend
  116. WordFind8Send:
  117. StrCmp $0 " ( *} )" 0 WordFind2XSend
  118. GetDlgItem $1 $HWND 1202
  119. SendMessage $1 ${WM_SETTEXT} 1 "STR:|C:\"
  120. GetDlgItem $1 $HWND 1204
  121. SendMessage $1 ${WM_SETTEXT} 1 "STR:E+2*}"
  122. GetDlgItem $1 $HWND 1210
  123. SendMessage $1 ${WM_SETTEXT} 1 "STR:Word #"
  124. GetDlgItem $1 $HWND 1211
  125. SendMessage $1 ${WM_SETTEXT} 1 "STR:Result (Before{* or *}after word with word):"
  126. goto WordFindSend
  127. WordFind2XSend:
  128. StrCmp $0 "2. WordFind2X" 0 WordReplace1Send
  129. GetDlgItem $1 $HWND 1201
  130. SendMessage $1 ${WM_SETTEXT} 1 "STR:[C:\io.sys];[C:\logo.sys];[C:\WINDOWS]"
  131. GetDlgItem $1 $HWND 1202
  132. SendMessage $1 ${WM_SETTEXT} 1 "STR:[C:\"
  133. GetDlgItem $1 $HWND 1203
  134. EnableWindow $1 1
  135. SendMessage $1 ${WM_SETTEXT} 1 "STR:];"
  136. GetDlgItem $1 $HWND 1204
  137. SendMessage $1 ${WM_SETTEXT} 1 "STR:E+2"
  138. GetDlgItem $1 $HWND 1207
  139. SendMessage $1 ${WM_SETTEXT} 1 "STR:String"
  140. GetDlgItem $1 $HWND 1208
  141. SendMessage $1 ${WM_SETTEXT} 1 "STR:Delimiter1"
  142. GetDlgItem $1 $HWND 1209
  143. SendMessage $1 ${WM_SETTEXT} 1 "STR:Delimiter2"
  144. GetDlgItem $1 $HWND 1210
  145. SendMessage $1 ${WM_SETTEXT} 1 "STR:Word #"
  146. GetDlgItem $1 $HWND 1211
  147. SendMessage $1 ${WM_SETTEXT} 1 "STR:Result (Word):"
  148. abort
  149. WordReplace1Send:
  150. StrCmp $0 "3. WordReplace (Replace)" 0 WordReplace2Send
  151. GetDlgItem $1 $HWND 1201
  152. SendMessage $1 ${WM_SETTEXT} 1 "STR:C:\io.sys|C:\logo.sys|C:\WINDOWS"
  153. GetDlgItem $1 $HWND 1202
  154. SendMessage $1 ${WM_SETTEXT} 1 "STR:SYS"
  155. GetDlgItem $1 $HWND 1203
  156. SendMessage $1 ${WM_SETTEXT} 1 "STR:bmp"
  157. GetDlgItem $1 $HWND 1204
  158. SendMessage $1 ${WM_SETTEXT} 1 "STR:+2"
  159. goto WordReplaceSend
  160. WordReplace2Send:
  161. StrCmp $0 " (Delete)" 0 WordReplace3Send
  162. GetDlgItem $1 $HWND 1201
  163. SendMessage $1 ${WM_SETTEXT} 1 "STR:C:\io.sys|C:\logo.sys|C:\WINDOWS"
  164. GetDlgItem $1 $HWND 1202
  165. SendMessage $1 ${WM_SETTEXT} 1 "STR:SYS"
  166. GetDlgItem $1 $HWND 1203
  167. SendMessage $1 ${WM_SETTEXT} 1 "STR:"
  168. GetDlgItem $1 $HWND 1204
  169. SendMessage $1 ${WM_SETTEXT} 1 "STR:E+"
  170. goto WordReplaceSend
  171. WordReplace3Send:
  172. StrCmp $0 " (Multiple-replace)" 0 WordAdd1Send
  173. GetDlgItem $1 $HWND 1201
  174. SendMessage $1 ${WM_SETTEXT} 1 "STR:C:\io.sys||||||C:\logo.sys|||C:\WINDOWS"
  175. GetDlgItem $1 $HWND 1202
  176. SendMessage $1 ${WM_SETTEXT} 1 "STR:|"
  177. GetDlgItem $1 $HWND 1203
  178. SendMessage $1 ${WM_SETTEXT} 1 "STR:|"
  179. GetDlgItem $1 $HWND 1204
  180. SendMessage $1 ${WM_SETTEXT} 1 "STR:+1*"
  181. goto WordReplaceSend
  182. WordAdd1Send:
  183. StrCmp $0 "4. WordAdd (Add)" 0 WordAdd2Send
  184. GetDlgItem $1 $HWND 1204
  185. SendMessage $1 ${WM_SETTEXT} 1 "STR:+C:\WINDOWS|C:\config.sys|C:\IO.SYS"
  186. GetDlgItem $1 $HWND 1211
  187. SendMessage $1 ${WM_SETTEXT} 1 "STR:Result (String1 + String2):"
  188. goto WordAddSend
  189. WordAdd2Send:
  190. StrCmp $0 " (Delete) " 0 WordInsertSend
  191. GetDlgItem $1 $HWND 1204
  192. SendMessage $1 ${WM_SETTEXT} 1 "STR:E-C:\WINDOWS|C:\config.sys|C:\IO.SYS"
  193. GetDlgItem $1 $HWND 1211
  194. SendMessage $1 ${WM_SETTEXT} 1 "STR:Result (String1 - String2):"
  195. goto WordAddSend
  196. WordInsertSend:
  197. StrCmp $0 "5. WordInsert" 0 StrFilter1Send
  198. GetDlgItem $1 $HWND 1201
  199. SendMessage $1 ${WM_SETTEXT} 1 "STR:C:\io.sys|C:\WINDOWS"
  200. GetDlgItem $1 $HWND 1202
  201. SendMessage $1 ${WM_SETTEXT} 1 "STR:|"
  202. GetDlgItem $1 $HWND 1203
  203. EnableWindow $1 1
  204. SendMessage $1 ${WM_SETTEXT} 1 "STR:C:\logo.sys"
  205. GetDlgItem $1 $HWND 1204
  206. SendMessage $1 ${WM_SETTEXT} 1 "STR:E+2"
  207. GetDlgItem $1 $HWND 1207
  208. SendMessage $1 ${WM_SETTEXT} 1 "STR:String"
  209. GetDlgItem $1 $HWND 1208
  210. SendMessage $1 ${WM_SETTEXT} 1 "STR:Delimiter"
  211. GetDlgItem $1 $HWND 1209
  212. SendMessage $1 ${WM_SETTEXT} 1 "STR:Word"
  213. GetDlgItem $1 $HWND 1210
  214. SendMessage $1 ${WM_SETTEXT} 1 "STR:Word #"
  215. GetDlgItem $1 $HWND 1211
  216. SendMessage $1 ${WM_SETTEXT} 1 "STR:Result:"
  217. abort
  218. StrFilter1Send:
  219. StrCmp $0 "6. StrFilter (UpperCase)" 0 StrFilter2Send
  220. GetDlgItem $1 $HWND 1201
  221. SendMessage $1 ${WM_SETTEXT} 1 "STR:123abc 456DEF 7890|%#"
  222. GetDlgItem $1 $HWND 1202
  223. SendMessage $1 ${WM_SETTEXT} 1 "STR:+"
  224. GetDlgItem $1 $HWND 1203
  225. SendMessage $1 ${WM_SETTEXT} 1 "STR:"
  226. GetDlgItem $1 $HWND 1204
  227. SendMessage $1 ${WM_SETTEXT} 1 "STR:"
  228. GetDlgItem $1 $HWND 1211
  229. SendMessage $1 ${WM_SETTEXT} 1 "STR:Result (String in uppercase):"
  230. goto StrFilterSend
  231. StrFilter2Send:
  232. StrCmp $0 " (LowerCase)" 0 StrFilter3Send
  233. GetDlgItem $1 $HWND 1201
  234. SendMessage $1 ${WM_SETTEXT} 1 "STR:123abc 456DEF 7890|%#"
  235. GetDlgItem $1 $HWND 1202
  236. SendMessage $1 ${WM_SETTEXT} 1 "STR:-"
  237. GetDlgItem $1 $HWND 1203
  238. SendMessage $1 ${WM_SETTEXT} 1 "STR:ef"
  239. GetDlgItem $1 $HWND 1204
  240. SendMessage $1 ${WM_SETTEXT} 1 "STR:"
  241. GetDlgItem $1 $HWND 1211
  242. SendMessage $1 ${WM_SETTEXT} 1 "STR:Result (String in lowercase except EF):"
  243. goto StrFilterSend
  244. StrFilter3Send:
  245. StrCmp $0 " (Filter)" 0 VersionCompareSend
  246. GetDlgItem $1 $HWND 1201
  247. SendMessage $1 ${WM_SETTEXT} 1 "STR:123abc 456DEF 7890|%#"
  248. GetDlgItem $1 $HWND 1202
  249. SendMessage $1 ${WM_SETTEXT} 1 "STR:+12"
  250. GetDlgItem $1 $HWND 1203
  251. SendMessage $1 ${WM_SETTEXT} 1 "STR:b"
  252. GetDlgItem $1 $HWND 1204
  253. SendMessage $1 ${WM_SETTEXT} 1 "STR:def"
  254. GetDlgItem $1 $HWND 1211
  255. SendMessage $1 ${WM_SETTEXT} 1 "STR:Result (String Digits + Letters + b - def):"
  256. goto StrFilterSend
  257. VersionCompareSend:
  258. StrCmp $0 "7. VersionCompare" 0 VersionConvertSend
  259. GetDlgItem $1 $HWND 1201
  260. SendMessage $1 ${WM_SETTEXT} 1 "STR:1.1.1.9"
  261. GetDlgItem $1 $HWND 1202
  262. SendMessage $1 ${WM_SETTEXT} 1 "STR:1.1.1.01"
  263. GetDlgItem $1 $HWND 1203
  264. ShowWindow $1 0
  265. GetDlgItem $1 $HWND 1204
  266. ShowWindow $1 0
  267. GetDlgItem $1 $HWND 1206
  268. EnableWindow $1 0
  269. GetDlgItem $1 $HWND 1207
  270. SendMessage $1 ${WM_SETTEXT} 1 "STR:Version1"
  271. GetDlgItem $1 $HWND 1208
  272. SendMessage $1 ${WM_SETTEXT} 1 "STR:Version2"
  273. GetDlgItem $1 $HWND 1209
  274. SendMessage $1 ${WM_SETTEXT} 1 "STR:"
  275. GetDlgItem $1 $HWND 1210
  276. SendMessage $1 ${WM_SETTEXT} 1 "STR:"
  277. GetDlgItem $1 $HWND 1211
  278. SendMessage $1 ${WM_SETTEXT} 1 "STR:Result (0-equal 1-newer 2-older):"
  279. abort
  280. VersionConvertSend:
  281. StrCmp $0 "8. VersionConvert" 0 Abort
  282. GetDlgItem $1 $HWND 1201
  283. SendMessage $1 ${WM_SETTEXT} 1 "STR:9.0c"
  284. GetDlgItem $1 $HWND 1202
  285. SendMessage $1 ${WM_SETTEXT} 1 "STR:"
  286. GetDlgItem $1 $HWND 1203
  287. ShowWindow $1 0
  288. GetDlgItem $1 $HWND 1204
  289. ShowWindow $1 0
  290. SendMessage $1 ${WM_SETTEXT} 1 "STR:"
  291. GetDlgItem $1 $HWND 1206
  292. EnableWindow $1 0
  293. GetDlgItem $1 $HWND 1207
  294. SendMessage $1 ${WM_SETTEXT} 1 "STR:Version"
  295. GetDlgItem $1 $HWND 1208
  296. SendMessage $1 ${WM_SETTEXT} 1 "STR:CharList"
  297. GetDlgItem $1 $HWND 1209
  298. SendMessage $1 ${WM_SETTEXT} 1 "STR:"
  299. GetDlgItem $1 $HWND 1210
  300. SendMessage $1 ${WM_SETTEXT} 1 "STR:"
  301. GetDlgItem $1 $HWND 1211
  302. SendMessage $1 ${WM_SETTEXT} 1 "STR:Result (numerical version format):"
  303. abort
  304. Abort:
  305. Abort
  306. WordFindSend:
  307. GetDlgItem $1 $HWND 1203
  308. EnableWindow $1 0
  309. SendMessage $1 ${WM_SETTEXT} 1 "STR:"
  310. GetDlgItem $1 $HWND 1201
  311. SendMessage $1 ${WM_SETTEXT} 1 "STR:C:\io.sys|C:\logo.sys|C:\Program Files|C:\WINDOWS"
  312. GetDlgItem $1 $HWND 1207
  313. SendMessage $1 ${WM_SETTEXT} 1 "STR:String"
  314. GetDlgItem $1 $HWND 1208
  315. SendMessage $1 ${WM_SETTEXT} 1 "STR:Delimiter"
  316. GetDlgItem $1 $HWND 1209
  317. SendMessage $1 ${WM_SETTEXT} 1 "STR:"
  318. Abort
  319. WordReplaceSend:
  320. GetDlgItem $1 $HWND 1203
  321. EnableWindow $1 1
  322. GetDlgItem $1 $HWND 1207
  323. SendMessage $1 ${WM_SETTEXT} 1 "STR:String"
  324. GetDlgItem $1 $HWND 1208
  325. SendMessage $1 ${WM_SETTEXT} 1 "STR:Replace it"
  326. GetDlgItem $1 $HWND 1209
  327. SendMessage $1 ${WM_SETTEXT} 1 "STR: with"
  328. GetDlgItem $1 $HWND 1210
  329. SendMessage $1 ${WM_SETTEXT} 1 "STR:Word #"
  330. GetDlgItem $1 $HWND 1211
  331. SendMessage $1 ${WM_SETTEXT} 1 "STR:Result:"
  332. Abort
  333. WordAddSend:
  334. GetDlgItem $1 $HWND 1203
  335. EnableWindow $1 0
  336. SendMessage $1 ${WM_SETTEXT} 1 "STR:"
  337. GetDlgItem $1 $HWND 1201
  338. SendMessage $1 ${WM_SETTEXT} 1 "STR:C:\io.sys|C:\logo.sys|C:\WINDOWS"
  339. GetDlgItem $1 $HWND 1202
  340. SendMessage $1 ${WM_SETTEXT} 1 "STR:|"
  341. GetDlgItem $1 $HWND 1207
  342. SendMessage $1 ${WM_SETTEXT} 1 "STR:String1"
  343. GetDlgItem $1 $HWND 1208
  344. SendMessage $1 ${WM_SETTEXT} 1 "STR:Delimiter"
  345. GetDlgItem $1 $HWND 1209
  346. SendMessage $1 ${WM_SETTEXT} 1 "STR:"
  347. GetDlgItem $1 $HWND 1210
  348. SendMessage $1 ${WM_SETTEXT} 1 "STR:String2"
  349. Abort
  350. StrFilterSend:
  351. GetDlgItem $1 $HWND 1203
  352. EnableWindow $1 1
  353. GetDlgItem $1 $HWND 1206
  354. EnableWindow $1 0
  355. GetDlgItem $1 $HWND 1207
  356. SendMessage $1 ${WM_SETTEXT} 1 "STR:String"
  357. GetDlgItem $1 $HWND 1208
  358. SendMessage $1 ${WM_SETTEXT} 1 "STR:Filter"
  359. GetDlgItem $1 $HWND 1209
  360. SendMessage $1 ${WM_SETTEXT} 1 "STR:Include"
  361. GetDlgItem $1 $HWND 1210
  362. SendMessage $1 ${WM_SETTEXT} 1 "STR:Exclude"
  363. Abort
  364. ;=Enter=
  365. Enter:
  366. StrCpy $0 ''
  367. ReadINIStr $STATE $INI "Field 1" "State"
  368. ReadINIStr $R1 $INI "Field 2" "State"
  369. ReadINIStr $R2 $INI "Field 3" "State"
  370. ReadINIStr $R3 $INI "Field 4" "State"
  371. ReadINIStr $R4 $INI "Field 5" "State"
  372. StrCmp $STATE "1. WordFind (Find word by number)" WordFind
  373. StrCmp $STATE " (Delimiter exclude)" WordFind
  374. StrCmp $STATE " (Find in string)" WordFind
  375. StrCmp $STATE " (Sum of words)" WordFind
  376. StrCmp $STATE " (Sum of delimiters)" WordFind
  377. StrCmp $STATE " (Find word number)" WordFind
  378. StrCmp $STATE " ( }} )" WordFind
  379. StrCmp $STATE " ( {} )" WordFind
  380. StrCmp $STATE " ( *} )" WordFind
  381. StrCmp $STATE "2. WordFind2X" WordFind2X
  382. StrCmp $STATE "3. WordReplace (Replace)" WordReplace
  383. StrCmp $STATE " (Delete)" WordReplace
  384. StrCmp $STATE " (Multiple-replace)" WordReplace
  385. StrCmp $STATE "4. WordAdd (Add)" WordAdd
  386. StrCmp $STATE " (Delete) " WordAdd
  387. StrCmp $STATE "5. WordInsert" WordInsert
  388. StrCmp $STATE "6. StrFilter (UpperCase)" StrFilter
  389. StrCmp $STATE " (LowerCase)" StrFilter
  390. StrCmp $STATE " (Filter)" StrFilter
  391. StrCmp $STATE "7. VersionCompare" VersionCompare
  392. StrCmp $STATE "8. VersionConvert" VersionConvert
  393. Abort
  394. WordFind:
  395. ${WordFind} "$R1" "$R2" "$R4" $R0
  396. IfErrors 0 Send
  397. StrCpy $0 $R0
  398. StrCmp $R0 3 0 +3
  399. StrCpy $3 '"+1" "-1" "+1}" "+1{" "#" "/word"'
  400. goto error3
  401. StrCmp $R0 2 0 error1
  402. StrCpy $R4 $R4 '' 1
  403. StrCpy $1 $R4 1
  404. StrCmp $1 / 0 error2
  405. StrCpy $R4 $R4 '' 1
  406. StrCpy $R0 '"$R4" no such word.'
  407. goto Send
  408. WordFind2X:
  409. ${WordFind2X} "$R1" "$R2" "$R3" "$R4" $R0
  410. IfErrors 0 Send
  411. StrCpy $0 $R0
  412. StrCmp $R0 3 0 +3
  413. StrCpy $3 '"+1" "-1"'
  414. goto error3
  415. StrCmp $R0 2 +3
  416. StrCpy $R0 '"$R2...$R3" no words found.'
  417. goto Send
  418. StrCpy $R4 $R4 '' 1
  419. StrCpy $1 $R4 1
  420. StrCmp $1 / 0 +2
  421. StrCpy $R4 $R4 '' 1
  422. StrCpy $R0 '"$R4" no such word.'
  423. goto Send
  424. WordReplace:
  425. ${WordReplace} "$R1" "$R2" "$R3" "$R4" $R0
  426. IfErrors 0 Send
  427. StrCpy $0 $R0
  428. StrCmp $R0 3 0 +3
  429. StrCpy $3 '"+1" "+1*" "+" "+*" "{}"'
  430. goto error3
  431. StrCmp $R0 2 0 error1
  432. StrCpy $R4 $R4 '' 1
  433. goto error2
  434. WordAdd:
  435. ${WordAdd} "$R1" "$R2" "$R4" $R0
  436. IfErrors 0 Send
  437. StrCpy $0 $R0
  438. StrCmp $R0 3 0 error1empty
  439. StrCpy $3 '"+text" "-text"'
  440. goto error3
  441. WordInsert:
  442. ${WordInsert} "$R1" "$R2" "$R3" "$R4" $R0
  443. IfErrors 0 Send
  444. StrCpy $0 $R0
  445. StrCmp $R0 3 0 +3
  446. StrCpy $3 '"+1" "-1"'
  447. goto error3
  448. StrCmp $R0 2 0 error1empty
  449. StrCpy $R4 $R4 '' 1
  450. goto error2
  451. StrFilter:
  452. ${StrFilter} "$R1" "$R2" "$R3" "$R4" $R0
  453. IfErrors 0 Send
  454. StrCpy $R0 'Syntax error'
  455. goto Send
  456. VersionCompare:
  457. ${VersionCompare} "$R1" "$R2" $R0
  458. goto Send
  459. VersionConvert:
  460. ${VersionConvert} "$R1" "$R2" $R0
  461. goto Send
  462. error3:
  463. StrCpy $R0 '"$R4" syntax error ($3)'
  464. goto Send
  465. error2:
  466. StrCpy $R0 '"$R4" no such word number'
  467. goto Send
  468. error1empty:
  469. StrCpy $R0 '"$R2" delimiter is empty'
  470. goto Send
  471. error1:
  472. StrCpy $R0 '"$R2" delimiter not found in string'
  473. goto Send
  474. Send:
  475. GetDlgItem $1 $HWND 1205
  476. SendMessage $1 ${WM_SETTEXT} 1 "STR:$R0"
  477. GetDlgItem $1 $HWND 1206
  478. SendMessage $1 ${WM_SETTEXT} 1 "STR:$0"
  479. abort
  480. FunctionEnd
  481. Function .onInit
  482. InitPluginsDir
  483. GetTempFileName $INI $PLUGINSDIR
  484. File /oname=$INI "WordFunc.ini"
  485. FunctionEnd
  486. Page instfiles
  487. Section "Empty"
  488. SectionEnd