2016-07-23 132 views
0

我的保存功能,注意我不想知道更好的方法來保存它或更正我的保存代碼,我只需要幫助我需要的部分自動刪除其他非必需的部分/上產生的舊支架節省: 這裏的保存按鈕:AutoHotKey幫助,匹配字符並替換

buttonSave: 
FileAppend, 
(
nprocess,exist, %Input% 
nprocess,priority, %Input%, %PriorInput% 
} 
), C:\Users\%A_UserName%\Desktop\AutoSetup\Settings.ahk 
MsgBox, 0, Saved, %PriorInput% Priority to %Input% has been saved. 

我怎樣才能得到AutoHotkey的找到}並刪除任何匹配的字符},然後添加一個}在文件的最後,並有這個循環?

我有一個保存功能,輸出是這樣的:

loop 
{ 
process,exist, Steam.exe 
process,priority, Steam.exe, 
} 
process,exist, Steam.exe 
process,priority, Steam.exe, 
} 

我希望它找到結束}和中間}刪除他們兩個,然後在最後添加一個}。如果保存,它總是在底部添加一個括號。

+0

舉例來說,如果我有這樣的設置文件,保存一個新的項目,將補充一點: process,exists,something.exe process,priority,something.exe }因此,它會添加到當前代碼我有 – Ethorbit

+0

如何顯示一個非常簡短的例子(幾行)的前處理文件和後處理文件。 .. –

+0

現在正在做它 – Ethorbit

回答

1
buttonSave: 
FileRead, Contents, C:\Users\%A_UserName%\Desktop\AutoSetup\Settings.ahk 
if not ErrorLevel ; Successfully loaded 
{ 
    StringTrimRight, Contents, Contents, 1 ; remove the end } 
    FileAppend, %Contents%, C:\Users\%A_UserName%\Desktop\AutoSetup\Temp.ahk 
    Contents = ; Free the memory 
} 
FileAppend, 
(
process,exist, %Input% 
process,priority, %Input%, %PriorInput% 
} 
), C:\Users\%A_UserName%\Desktop\AutoSetup\Temp.ahk 
FileMove, C:\Users\%A_UserName%\Desktop\AutoSetup\Temp.ahk, C:\Users\%A_UserName%\Desktop\AutoSetup\Settings.ahk, 1 ; overwrite existing file 
; Run, edit C:\Users\%A_UserName%\Desktop\AutoSetup\Settings.ahk 
MsgBox, 0, Saved, %PriorInput% Priority to %Input% has been saved. 
; reload ; if Settings.ahk is included in this script 
return 
+0

非常感謝你,還沒有嘗試過,但它看起來很完美。 – Ethorbit

+0

它的工作原理!再次謝謝你! – Ethorbit

1

我會用這樣的事情(的循環會導致高CPU使用率):

#NoEnv 
#SingleInstance Force 
#Persistent 

Menu, Tray, Add 
Menu, Tray, Add, Add Process, Add_Process 
Menu, Tray, Default, Add Process ; doubleclick the tray icon to add a new process 

SetTimer, set_priority, 500 
return 

set_priority: 
Process,exist, Notepad.exe 
Process,priority, Notepad.exe, L 
; Add Process 
return 

Add_Process: 
InputBox, ProcessName, ProcessName, Enter a Process. 
if !ErrorLevel 
InputBox, priority, priority, Enter a priority. 
if !ErrorLevel 
{ 
    text = 
    (  
    Process,exist, %ProcessName%.exe 
    Process,priority, %ProcessName%.exe, %priority% 
    ; Add Process 
    ) 
    FileRead, Contents, %A_ScriptFullPath% 
    if not ErrorLevel ; Successfully loaded 
    { 
     StringReplace, Contents, Contents, `; Add Process, %text% 
     FileAppend, %Contents%, %A_ScriptDir%\Temp.ahk 
     Contents = ; Free the memory 
    } 
    FileMove, %A_ScriptDir%\Temp.ahk, %A_ScriptFullPath%, 1 ; overwrite existing file 
    reload 
} 
return 
+0

不,我有一個全功能的方式要添加一個進程,我只需要知道如何找到保存的設置文件並刪除保存時自動生成的額外括號。 – Ethorbit

+0

我現在編輯我的帖子,包括我的保存如何工作,我不認爲我需要真正添加到整個GUI界面的流程添加儘管。 – Ethorbit