sugi Posted June 21, 2004 Share Posted June 21, 2004 (edited) I sometimes have to create INI files and made a small script to do so. Since .INI files are usually small I didn't bother to use Filehandles. expandcollapse popup; ; AutoIt Version: 3.0 ; Language: English ; Platform: USCv3 ; Break(0) AutoItSetOption("MustDeclareVars", 1) AutoItSetOption("TrayIconHide", 0) AutoItSetOption("TrayIconDebug", 1) Dim $INI, $AU3, $Line = '', $LineCounter = 1, $Section = '', $Key = '', $Value = '' $INI = FileOpenDialog('Choose .INI file', '.', 'INI-Files (*.ini)', 1 + 2) If @error Then Exit (1) $AU3 = FileSaveDialog('Choose output .AU3 file', '.', 'AU3-Files (*.au3)', 2 + 16) If @error Then Exit (1) If FileExists($AU3) Then FileDelete($AU3) If @error Then ThrowError('Error', 'Cannot delete ' & $AU3) FileWriteLine($AU3, '$INI="file.ini"') SetError(0) $Line = FileReadLine($INI, $LineCounter) While NOT @error $Line = StringStripWS($Line, 1) Select Case $Line = '' Case StringLeft($Line, 1) = '[' If StringInStr($Line, ']', 0, -1) = 0 Then ThrowError('Parsing error', 'Line ' & $LineCounter & ': missing closing bracket') $Section = StringMid($Line, 2, StringInStr($Line, ']', 0, -1) - 2) Case StringInStr($Line, '=') $Key = StringLeft($Line, StringInStr($Line, '=') - 1) $Value = StringRight($Line, StringLen($Line) - StringInStr($Line, '=')) If $Section = '' Then ThrowError('Parsing', 'Line ' & $LineCounter & ': missing section name') FileWriteLine($AU3, 'IniWrite($INI, "' & $Section & '", "' & $Key & '", "' & $Value & '")') Case Else ThrowError('Parsing', 'Line ' & $LineCounter & ': unknown line') EndSelect $LineCounter = $LineCounter + 1 $Line = FileReadLine($INI, $LineCounter) Wend MsgBox(4096, 'Conversion finished', 'The script was written to ' & $AU3) Func ThrowError($Title, $Text) MsgBox(4096, $Title, $Text) Exit (1) EndFunc EDIT: Small bugfix. Script crashed instead of showing an error when an unknown line was encountered. Edited January 4, 2007 by sugi Link to comment Share on other sites More sharing options...
SlimShady Posted June 21, 2004 Share Posted June 21, 2004 Really nice and useful. Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now