PB "writepref to readpref"-Konverter
Verfasst: 08.02.2007 19:54
Hallo, ich habe mal einen kleinen parser geschrieben, derwritepreferencebefehlen zu readpreferencebefehle konvertiert.
Das ist nützlich, wenn ihr beispielsweise in eurem Programm eine Projekt-Speicherfunktion einbaut und einen ellenlangen Code wie diesen habt:
WritePreferenceString("Key",GetGadgetText(#String_3))
WritePreferenceLong("Key1",GetGadgetState(#CheckBox_3))
..
..
..
usw.
und keine Lust habt, das ganze fürs Öffnen der Projektdateien umzuschreiben.
So kann Beispielsweise aus folgendem code:
der hier gemacht werden:
Die " ' " -Zeichen müsst ihr manuel durch " " "-Zeichen ersetzen.
Nun der Code:
Parst nur writepreferencestring und writepreferencelong. Könnt ihr ja erweitern.
Das ganze bezieht sich nur auf string- und comboboxgadgets.
Hoffe, ihr könnts mal gebrauchen.
Das ist nützlich, wenn ihr beispielsweise in eurem Programm eine Projekt-Speicherfunktion einbaut und einen ellenlangen Code wie diesen habt:
WritePreferenceString("Key",GetGadgetText(#String_3))
WritePreferenceLong("Key1",GetGadgetState(#CheckBox_3))
..
..
..
usw.
und keine Lust habt, das ganze fürs Öffnen der Projektdateien umzuschreiben.
So kann Beispielsweise aus folgendem code:
Code: Alles auswählen
WritePreferenceString("Program name",GetGadgetText(#String_3))
WritePreferenceString("Program version",GetGadgetText(#String_4))
WritePreferenceLong("Win95",GetGadgetState(#CheckBox_3))
WritePreferenceLong("WinNT4",GetGadgetState(#CheckBox_4))
WritePreferenceLong("Win98",GetGadgetState(#CheckBox_5))
WritePreferenceLong("WinME",GetGadgetState(#CheckBox_6))
WritePreferenceLong("Win2000",GetGadgetState(#CheckBox_7))
WritePreferenceLong("WinXP",GetGadgetState(#CheckBox_9))
WritePreferenceString("Company name",GetGadgetText(#String_10))
WritePreferenceString("Website",GetGadgetText(#String_11))
PreferenceGroup("Graphics")
WritePreferenceString("Wizard image",GetGadgetText(#String_7))
WritePreferenceString("Header image",GetGadgetText(#String_8))
WritePreferenceString("Install-icon image",GetGadgetText(#String_9))
WritePreferenceLong("Show Label",GetGadgetState(#CheckBox_1))
WritePreferenceLong("Windows style",GetGadgetState(#Radio_2))
PreferenceGroup("Files")
WritePreferenceLong("Include Zipfile",GetGadgetState(#CheckBox_16))
WritePreferenceString("Zipfile",GetGadgetText(#String_14))
WritePreferenceString("Installation path",GetGadgetText(#String_17))
WritePreferenceLong("Autcip",GetGadgetState(#CheckBox_20))
PreferenceGroup("Uninstall")
WritePreferenceLong("Vwau",GetGadgetState(#CheckBox_17))
WritePreferenceString("Website",GetGadgetText(#String_15))
WritePreferenceLong("Include uninstaller",GetGadgetState(#CheckBox_18))
PreferenceGroup("Licence")
WritePreferenceLong("Licence dialog",GetGadgetState(#CheckBox_12))
PreferenceGroup("Finish")
WritePreferenceLong("Sart program",GetGadgetState(#CheckBox_13))
WritePreferenceLong("Reboot computer",GetGadgetState(#CheckBox_14))
WritePreferenceLong("Execute DLL:",GetGadgetState(#CheckBox_15))
WritePreferenceString("Program",GetGadgetText(#String_12))
WritePreferenceString("Dll",GetGadgetText(#String_13))
PreferenceGroup("Shortcuts")
WritePreferenceLong("Allowtc",GetGadgetState(#CheckBox_19))
WritePreferenceString("Shortcut path",GetGadgetText(#String_16))
Code: Alles auswählen
setgadgettext(#String_3,ReadPreferenceString('Program name',''))
setgadgettext(#String_4,ReadPreferenceString('Program version',''))
setgadgetstate(#CheckBox_3,ReadPreferencelong('Win95',0))
setgadgetstate(#CheckBox_4,ReadPreferencelong('WinNT4',0))
setgadgetstate(#CheckBox_5,ReadPreferencelong('Win98',0))
setgadgetstate(#CheckBox_6,ReadPreferencelong('WinME',0))
setgadgetstate(#CheckBox_7,ReadPreferencelong('Win2000',0))
setgadgetstate(#CheckBox_9,ReadPreferencelong('WinXP',0))
setgadgettext(#String_10,ReadPreferenceString('Company name',''))
setgadgettext(#String_11,ReadPreferenceString('Website',''))
PreferenceGroup("Graphics")
setgadgettext(#String_7,ReadPreferenceString('Wizard image',''))
setgadgettext(#String_8,ReadPreferenceString('Header image',''))
setgadgettext(#String_9,ReadPreferenceString('Install-icon image',''))
setgadgetstate(#CheckBox_1,ReadPreferencelong('Show Label',0))
setgadgetstate(#Radio_2,ReadPreferencelong('Windows style',0))
PreferenceGroup("Files")
setgadgetstate(#CheckBox_16,ReadPreferencelong('Include Zipfile',0))
setgadgettext(#String_14,ReadPreferenceString('Zipfile',''))
setgadgettext(#String_17,ReadPreferenceString('Installation path',''))
setgadgetstate(#CheckBox_20,ReadPreferencelong('Autcip',0))
PreferenceGroup("Uninstall")
setgadgetstate(#CheckBox_17,ReadPreferencelong('Vwau',0))
setgadgettext(#String_15,ReadPreferenceString('Website',''))
setgadgetstate(#CheckBox_18,ReadPreferencelong('Include uninstaller',0))
PreferenceGroup("Licence")
setgadgetstate(#CheckBox_12,ReadPreferencelong('Licence dialog',0))
PreferenceGroup("Finish")
setgadgetstate(#CheckBox_13,ReadPreferencelong('Sart program',0))
setgadgetstate(#CheckBox_14,ReadPreferencelong('Reboot computer',0))
setgadgetstate(#CheckBox_15,ReadPreferencelong('Execute DLL:',0))
setgadgettext(#String_12,ReadPreferenceString('Program',''))
setgadgettext(#String_13,ReadPreferenceString('Dll',''))
PreferenceGroup("Shortcuts")
setgadgetstate(#CheckBox_19,ReadPreferencelong('Allowtc',0))
setgadgettext(#String_16,ReadPreferenceString('Shortcut path',''))
Nun der Code:
Code: Alles auswählen
;PB Preference "pref_write" to "pref_read" converter
;By DW/Forgesoft
file.s="file.ini"
outputfile.s="file_out.ini"
;-----------------------------------------------------------------------------------------
If ReadFile(0,file)
If CreateFile(1,outputfile)
While Not Eof(0)
line.s=ReadString(0)
For a=0 To Len(line)
If Mid(line,a,1)="["
WriteStringN(0,line)
EndIf
If Mid(line,a,22)="WritePreferenceString("
pos=FindString(line,",",a+24)
keyword.s=Mid(line,a+23,Len(line)-a-22-(Len(line)-pos)-2)
pos=FindString(line,"GetGadgetText(",0)
pos1=FindString(line,")",pos+14)
var.s=Mid(line,pos+14,Len(line)-pos-15)
WriteStringN(1,"setgadgettext("+var+",ReadPreferenceString("+Chr(34)+""+keyword+""+Chr(34)+","+Chr(34)+Chr(34)+"))")
EndIf
If Mid(line,a,20)="WritePreferenceLong("
pos=FindString(line,",",a+22)
keyword.s=Mid(line,a+21,Len(line)-a-20-(Len(line)-pos)-2)
pos=FindString(line,"GetGadgetState(",0)
pos1=FindString(line,")",pos+15)
var.s=Mid(line,pos+15,Len(line)-pos-16)
WriteStringN(1,"setgadgetstate("+var+",ReadPreferencelong("+Chr(34)+""+keyword+""+Chr(34)+",0))")
EndIf
If Mid(line,a,15)="PreferenceGroup"
WriteStringN(1,line)
EndIf
Next
Wend
CloseFile(1)
CloseFile(0)
EndIf
EndIf
Das ganze bezieht sich nur auf string- und comboboxgadgets.
Hoffe, ihr könnts mal gebrauchen.