Jump to content
Sign in to follow this  
Klexur

Increment number in file

Recommended Posts

Klexur

First off I tried searching both the forums and the help file and I just know it's in one of them. If somebody could please help me find it I would be much grateful.

Simply put, I am trying to increment a number that is read from an ini file. The script is to read the initial value, add one to it, and save the new value. The area dealing with this is the last line of code below.

Here is my code:

#Include <Restart.au3>
 
Global $CommandIni = "DropRun.ini"
 
; Check that CommandIni exists, if not create file with default values.
If FileExists($CommandIni) Then
Global $Commands = IniReadSection($CommandIni, @ComputerName)
IniWrite($CommandIni, @ComputerName & "_Log", "Start", $CommandIni & " found and read.")
Else
Local $defCmds[2][2] = [ ["Completed", "1"], ["Command1", "cmd.exe"] ]
IniWriteSection($CommandIni, @ComputerName, $defCmds, 0)
IniWrite($CommandIni, @ComputerName & "_Log", "Error", $CommandIni & " not found. Attempted to create file.")
EndIf
 
; Check if already completed, if not run the commands.
If $Commands[1][1] = "0" Then
IniWrite($CommandIni, @ComputerName & "_Log", "Reading", "Entered Command section.")
For $i = 2 To $Commands[0][0]
  ; Check if line is commented out.
  If StringInStr($Commands[$i][0], ";") Then ContinueLoop
  Local $exitCode = RunWait($Commands[$i][1])
  IniWrite($CommandIni, @ComputerName & "_Log", "Command" & $i-1, $exitCode)
Next
IniWrite($CommandIni, @ComputerName, "Completed", "1")
EndIf
 
Sleep(300000)
; Log number of times script restarted.
$Restarts = IniRead($CommandIni, @ComputerName & "_Log", "Restarts", "0")
IniWrite($CommandIni, @ComputerName & "_Log", "Restarts", $Restarts+1)
_ScriptRestart()

The script uses the

Also, if anybody has suggestions on how to simplify this I'd also greatly appreciate it.

P.S. Sorry I couldn't get the code to paste pretty =S

Edited by Klexur

Quiet but very inquisitive

Share this post


Link to post
Share on other sites
LurchMan

You misspelled "restarts" on the INIWrite () portion of it. :mellow:


Dating a girl is just like writing software. Everything's going to work just fine in the testing lab (dating), but as soon as you have contract with a customer (marriage), then your program (life) is going to be facing new situations you never expected. You'll be forced to patch the code (admit you're wrong) and then the code (wife) will just end up all bloated and unmaintainable in the end.

Share this post


Link to post
Share on other sites
JohnOne

Might be an Idea to tell autoit its dealing with a number too.

$Restarts = Int(IniRead($CommandIni, @ComputerName & "_Log", "Restarts", "0"))
IniWrite($CommandIni, @ComputerName & "_Log", "Restarts", $Restarts+1)
Edited by JohnOne

AutoIt Absolute Beginners    Require a serial    Pause Script    Video Tutorials by Morthawt   ipify 

Monkey's are, like, natures humans.

Share this post


Link to post
Share on other sites
Klexur

@LurchMan: ha thanks for catching my spelling error =P

@JohnOne: are you also pointing out my spelling error?

EDIT

@JohnOne: oops okay i see what you did now :mellow:

Edited by Klexur

Quiet but very inquisitive

Share this post


Link to post
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

  • Similar Content

    • nacerbaaziz
      By nacerbaaziz
      hi dears
      am using an ini files as a History
      Sometimes the file size is be larger to 5 MB
      AutoIt does not recognize the full content of the file
      When I did a search to find out why, I discovered that INI files could not be read if they size larger than 64 KB.
      for that I preferred to ask here if is there any way to bypass this obstacle.
      The contents of the file are  as follows
      [filesList]
      c:\...\...\f1.mp3=00:15:20
      c:\...\...\f2.mp3=00:10:20
      c:\...\...\f3.wav=00:59:20
      ....... Etc
      This is the section for reading the file (adapted from my main script)

      case $continue     Local $aArray = IniReadSection($WaitingListFile, StringEncrypt(true, "filesList", $MyPassword))     If Not @error Then Opt("GUICloseOnESC", 1) _GUICtrlListView_DeleteAllItems($scList)         For $i = 1 To $aArray[0][0] $path = path_list(StringEncrypt(false, $aArray[$i][0], $MyPassWord), 1) if FileExists(StringEncrypt(false, $aArray[$i][0], $MyPassWord)) then GUICtrlCreateListViewItem(_GetFileName(FileGetLongName(StringEncrypt(false, $aArray[$i][0], $MyPassWord))) & Opt("GUIDataSeparatorChar") & " : " & Opt("GUIDataSeparatorChar") & FileGetLongName(StringEncrypt(false, $aArray[$i][0], $MyPassWord)), $scList) else $path = $path endIf         Next GUISetState(@sw_disable, $hGUI) GUISetState(@sw_show, $hGUI2) GUICtrlSetState($SClist, $GUI_FOCUS) else if $accessibilitymode = 1 then speak(str("listEmpty")) endIf endIf
      Is there any way to solve this problem, please?
      am waiting your answers...
      Greetings to All
    • Rskm
      By Rskm
      Hi, i have a variable (floating number - could be positive or negative), i wish to print it into a text file, how can i keep the format in such a way that it always has 4 digits ahead of decimal and 2 after decimal
      basically i have total 7 columns in the text file to print the variable  ;
      eg: variable = 1.235, output requied = 0001.24
      variable=-23.55555, output required =-023.56
    • AndreasNWWWWW
      By AndreasNWWWWW
      Hi, i'm just curious is there a way to sort an ini file after largest first?
      my inifiles writes itself like this
      14=500
      13=GREY
      12=500
      11=600
      10=600
      9=600
      8=700
      7=700
      5=600
      3=600
      2=800
      1=700
      15=GREY
      4=GREY
       
      but is there a way so i can get it sortet 
      15
      14
      13
      12 
      etc?
    • AndreasNWWWWW
      By AndreasNWWWWW
      Hi, i'm curious if this is even possible, i want to do an action if the ini file contains current values under a section.
      for my test i'm looking for 100,200,300,400,500
      and if any of those excits i want to pop a msgbox with the number in the section.
      i can in my example find one, but it does not check everyone. why?  what am i missing?
      Local $iscore810[5] = [100,200,300,400,500] Local $iMax800 = 5 While 1 ;~     Send("{pause}") ;;func les ini fil     $var = IniReadSection("Area.ini", "modus")     If @error Then         MsgBox(4096, "Error", "Unable to read section.")     Else          For $number = 1 To $var[0][0] If $var[$number][1] == $iscore810[3] Then       MsgBox($MB_SYSTEMMODAL, "FAnt den på", $var[$number][0], 5) EndIf                       Next     EndIf     exit WEnd  
    • Aleksandar
      By Aleksandar
      So can anyone help me ? I need to restart program when condition is not met ...

×