Jump to content
Sign in to follow this  
johnmcloud

[SOLVED] IniRead with condition

Recommended Posts

johnmcloud

Hi guys, i have some problem with IniRead.

This is the script:

#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>

Global $ini = @WorkingDir & "\language.ini"

If FileExists(@WorkingDir & "\language.ini") Then
GUI()
Else
FileOpen(@WorkingDir & "\language.ini", 1)
INICreate()
EndIf

Func INICreate()
IniWrite ($ini, "Default_Language", "Title", "Window")
IniWrite ($ini, "Default_Language", "File", "File")
IniWrite ($ini, "Default_Language", "Modify", "Modify")
IniWrite ($ini, "Default_Language", "Language", "Language")
IniWrite ($ini, "Default_Language", "Label1", "Test text")
IniWrite ($ini, "Default_Language", "Label1", "Different text")
IniWrite ($ini, "Default_Language", "Button1", "Test")
IniWrite ($ini, "Default_Language", "Button2", "Word")
IniWrite ($ini, "User_Language", "Title", "?")
IniWrite ($ini, "User_Language", "File", "?")
IniWrite ($ini, "User_Language", "Modify", "?")
IniWrite ($ini, "User_Language", "Language", "?")
IniWrite ($ini, "User_Language", "Label1", "?")
IniWrite ($ini, "User_Language", "Label1", "?")
IniWrite ($ini, "User_Language", "Button1", "?")
IniWrite ($ini, "User_Language", "Button2", "?")
EndFunc

GUI()

Func GUI()
$Form1 = GUICreate("Window", 217, 239, -1, -1)
$MenuItem5 = GUICtrlCreateMenu(File())
$MenuItem6 = GUICtrlCreateMenuItem("Exit", $MenuItem5)
$MenuItem4 = GUICtrlCreateMenu("Modify")
$MenuItem3 = GUICtrlCreateMenu("Language")
$Label1 = GUICtrlCreateLabel("Test text", 44, 64, 129, 17)
$Label2 = GUICtrlCreateLabel("Different text", 54, 192, 109, 17)
$Button1 = GUICtrlCreateButton("Test", 16, 16, 89, 41)
$Button2 = GUICtrlCreateButton("Word", 112, 16, 89, 41)
GUICtrlCreateEdit("", 18, 80, 185, 105)
GUISetState(@SW_SHOW)
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
  Case $GUI_EVENT_CLOSE
   Exit
EndSwitch
WEnd
EndFunc

Func File()
    $var = IniRead($ini, "Default_Language", "File", '')
    If $var Then
        Return $var
    Else
        $var = IniRead($ini, "User_Language", "Title", '')
        If Not $var Then
            MsgBox(0,'','Cant locate anything')
            Exit
  Else
   Return $var
        EndIf
    EndIf
EndFunc

I want to make a conditional IniRead in the GUI, in this case.

Work fine if i use this:

$MenuItem5 = GUICtrlCreateMenu(IniRead( $ini, "Default_Language", "Title", "Window")

But i need to make a something like this:

$MenuItem5 = GUICtrlCreateMenu(File())

Func File()
   If IniRead($ini, "User_Language", "Title", "?") = 0 Then
   IniRead($ini, "Default_Language", "File", "File")
   Else
   IniRead($ini, "User_Language", "Title", "i need a text here")
   EndIf
EndFunc

But not work, the result in the GUI is 0.

Someone has some idea? Thanks for support

PS If something is not clear, simply ask.

Edited by johnmcloud

Share this post


Link to post
Share on other sites
bogQ

use return on func

$var = IniRead($ini, "User_Language", "Title", "i need a text here")
    EndIf
    Return $var
EndFunc

i need a text here

is part what iniread return if that key isnt located, so if there isnt any key named Title itl return 'i need a text here'

The default value to return if the requested key is not found.

Edited by bogQ

TCP server and client - Learning about TCP servers and clients connection
Au3 oIrrlicht - Irrlicht project
Au3impact - Another 3D DLL game engine for autoit. (3impact 3Drad related)



460px-Thief-4-temp-banner.jpg
There are those that believe that the perfect heist lies in the preparation.
Some say that it’s all in the timing, seizing the right opportunity. Others even say it’s the ability to leave no trace behind, be a ghost.

 

Share this post


Link to post
Share on other sites
johnmcloud

Thanks for answer. The result in the GUI is always 0:

Func File()
   If IniRead($ini, "User_Language", "Title", "?") = 0 Then
   IniRead($ini, "Default_Language", "File", "File")
   Else
   IniRead($ini, "User_Language", "Title", "i need a text here")
   EndIf
   Return
EndFunc

Share this post


Link to post
Share on other sites
bogQ

Return $var

not Return and iniread need to log data to $var

look upper post one more time, i edited it

Edited by bogQ

TCP server and client - Learning about TCP servers and clients connection
Au3 oIrrlicht - Irrlicht project
Au3impact - Another 3D DLL game engine for autoit. (3impact 3Drad related)



460px-Thief-4-temp-banner.jpg
There are those that believe that the perfect heist lies in the preparation.
Some say that it’s all in the timing, seizing the right opportunity. Others even say it’s the ability to leave no trace behind, be a ghost.

 

Share this post


Link to post
Share on other sites
johnmcloud

Return $var

Give me error, i don't have a $var variable :)

So i have try to

Return $ini

The result is the path in the of the .ini in the GUI

Please be more clear, i'm not a super expert. Thanks

EDIT: Maybe i'm a noob, but give me the same error, variable not found:

Func File()
   If IniRead($ini, "User_Language", "Title", "?") = 0 Then
   IniRead($ini, "Default_Language", "File", "File")
   Else
   $var = IniRead($ini, "User_Language", "Title", "i need a text here")
   EndIf
   Return $var
EndFunc
Edited by johnmcloud

Share this post


Link to post
Share on other sites
ZacUSNYR

Func File()
   Local $var
   If IniRead($ini, "User_Language", "Title", "?") = 0 Then
   $var = IniRead($ini, "Default_Language", "File", "File")
   Else
   $var = IniRead($ini, "User_Language", "Title", "i need a text here")
   EndIf
   Return $var
EndFunc

Is what he means

Share this post


Link to post
Share on other sites
bogQ

well more something like this :)

Func File()
    $var = IniRead($ini, "Default_Language", "File", '')
    If $var Then
        Return $var
    Else
        $var = IniRead($ini, "User_Language", "Title", '')
        If Not $var Then
            MsgBox(0,'','Cant locate anything')
            Exit
        Else
            Return $var
        EndIf
    EndIf
EndFunc

confusing iniread rewrited it

Edited by bogQ

TCP server and client - Learning about TCP servers and clients connection
Au3 oIrrlicht - Irrlicht project
Au3impact - Another 3D DLL game engine for autoit. (3impact 3Drad related)



460px-Thief-4-temp-banner.jpg
There are those that believe that the perfect heist lies in the preparation.
Some say that it’s all in the timing, seizing the right opportunity. Others even say it’s the ability to leave no trace behind, be a ghost.

 

Share this post


Link to post
Share on other sites
johnmcloud

Thanks guys, but there is a problem, the result is always "File" also if i delete the "?"

I want to make a two language gui.

So if ? is replaced by any text i want to load that text, hope this is the right approach.

@bogQ Same problem, if i delete the "?" the result is always "File" into the GUI

Edited by johnmcloud

Share this post


Link to post
Share on other sites
bogQ

maby its better for you to load them into array, newer the less i edited upper code, i got lost in your iniwrite so i made mistake first time


TCP server and client - Learning about TCP servers and clients connection
Au3 oIrrlicht - Irrlicht project
Au3impact - Another 3D DLL game engine for autoit. (3impact 3Drad related)



460px-Thief-4-temp-banner.jpg
There are those that believe that the perfect heist lies in the preparation.
Some say that it’s all in the timing, seizing the right opportunity. Others even say it’s the ability to leave no trace behind, be a ghost.

 

Share this post


Link to post
Share on other sites
johnmcloud

The ini structure is easy:

[Default_Language]

File=File

[user_Language]

File=?

If user replace "?" with "autoit", i want to load that string in the GUI, so instead of "File" i want to see "autoit" :)

If you can do an example, i'll be grateful

Edited by johnmcloud

Share this post


Link to post
Share on other sites
bogQ

i now c, did not know that you need to use ? in your 'if then else',

well if noone help you untill i get home from work (in 40 minutes) il post you some small example


TCP server and client - Learning about TCP servers and clients connection
Au3 oIrrlicht - Irrlicht project
Au3impact - Another 3D DLL game engine for autoit. (3impact 3Drad related)



460px-Thief-4-temp-banner.jpg
There are those that believe that the perfect heist lies in the preparation.
Some say that it’s all in the timing, seizing the right opportunity. Others even say it’s the ability to leave no trace behind, be a ghost.

 

Share this post


Link to post
Share on other sites
johnmcloud

Ok, thanks. I'm using "?" or i can write "none" or " "

Just for make difference, it's not a problem.

Share this post


Link to post
Share on other sites
Beege

Ok, thanks. I'm using "?" or i can write "none" or " "

The default return value is up to you and won't change anything.

If user replace "?" with "autoit", i want to load that string in the GUI, so instead of "File" i want to see "autoit" :)

If you can do an example, i'll be grateful

Your not checking if the value is "?". Your checking if the value = 0.

If IniRead($ini, "User_Language", "Title", "?") = 0 Then

That would need to be

If IniRead($ini, "User_Language", "Title", "?") = "?" Then

Share this post


Link to post
Share on other sites
johnmcloud

@Beege i think was like other function, like MsgBox(0,0, "Test") = 1 Then etc

You have right, now work:

Func File()
   Local $var
   If IniRead($ini, "User_Language", "File", "?") = "?" Then
   $var = IniRead($ini, "Default_Language", "File", "File")
   Else
   $var = IniRead($ini, "User_Language", "File", "")
   EndIf
   Return $var
EndFunc

Thanks to all for support :)

Edited by johnmcloud

Share this post


Link to post
Share on other sites
bogQ

This shud work perfectly

#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
Global $ini = @WorkingDir & "language.ini"
Dim $element_array[9]=['Title','File','Exit','Modify','Language','Label1','Label2','Button1','Button2']
If Not FileExists($ini) Then
    INICreate()
EndIf
GUI()


Func INICreate()
    IniWrite ($ini, "Default_Language", "Title", "Window")
    IniWrite ($ini, "Default_Language", "File", "File")
    IniWrite ($ini, "Default_Language", "Exit", "Exit")
    IniWrite ($ini, "Default_Language", "Modify", "Modify")
    IniWrite ($ini, "Default_Language", "Language", "Language")
    IniWrite ($ini, "Default_Language", "Label1", "Test text")
    IniWrite ($ini, "Default_Language", "Label2", "Different text")
    IniWrite ($ini, "Default_Language", "Button1", "Test")
    IniWrite ($ini, "Default_Language", "Button2", "Word")
    IniWrite ($ini, "User_Language", "Title", "?")
    IniWrite ($ini, "User_Language", "File", "?")
    IniWrite ($ini, "User_Language", "Exit", "?")
    IniWrite ($ini, "User_Language", "Modify", "?")
    IniWrite ($ini, "User_Language", "Language", "?")
    IniWrite ($ini, "User_Language", "Label1", "?")
    IniWrite ($ini, "User_Language", "Label2", "?")
    IniWrite ($ini, "User_Language", "Button1", "?")
    IniWrite ($ini, "User_Language", "Button2", "?")
EndFunc

Func GUI()
    $Form1 = GUICreate(Language(0), 217, 239, -1, -1)
    $MenuItem5 = GUICtrlCreateMenu(Language(1))
    $MenuItem6 = GUICtrlCreateMenuItem(Language(2), $MenuItem5)
    $MenuItem4 = GUICtrlCreateMenu(Language(3))
    $MenuItem3 = GUICtrlCreateMenu(Language(4))
    $Label1 = GUICtrlCreateLabel(Language(5), 44, 64, 129, 17)
    $Label2 = GUICtrlCreateLabel(Language(6), 54, 192, 109, 17)
    $Button1 = GUICtrlCreateButton(Language(7), 16, 16, 89, 41)
    $Button2 = GUICtrlCreateButton(Language(8), 112, 16, 89, 41)
    GUICtrlCreateEdit("", 18, 80, 185, 105)
    GUISetState(@SW_SHOW)
    While 1
        $nMsg = GUIGetMsg()
        Switch $nMsg
            Case $GUI_EVENT_CLOSE
                Exit
        EndSwitch
    WEnd
EndFunc
Func Language($el_num)
    $User_Language = IniRead($ini, "User_Language", $element_array[$el_num], '')
    $Def__Language = IniRead($ini, "Default_Language", $element_array[$el_num], '')
    If $User_Language <> '?' And $User_Language <> '' And $User_Language <> ' ' And $User_Language <> ' ' Then
        Return $User_Language
    Else
        Return $Def__Language
    EndIf
EndFunc

later if i have time il post you some easyer solution

edit:

or another one

#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
Global $ini = "language.ini"
Dim $element_array[9][2]=[ _
    ['Title','Window'], _
    ['File','File'], _
    ['Exit','Exit'], _
    ['Modify','Modify'], _
    ['Language','Language'], _
    ['Label1','Test text'], _
    ['Label2','Different text'], _
    ['Button1','Test'], _
    ['Button2','Word']]
If Not FileExists($ini) Then
    INICreate()
EndIf
GUI()
Func INICreate()
    IniWrite ($ini, "User_Language", $element_array[0][0], "?")
    IniWrite ($ini, "User_Language", $element_array[1][0], "?")
    IniWrite ($ini, "User_Language", $element_array[2][0], "?")
    IniWrite ($ini, "User_Language", $element_array[3][0], "?")
    IniWrite ($ini, "User_Language", $element_array[4][0], "?")
    IniWrite ($ini, "User_Language", $element_array[5][0], "?")
    IniWrite ($ini, "User_Language", $element_array[6][0], "?")
    IniWrite ($ini, "User_Language", $element_array[7][0], "?")
    IniWrite ($ini, "User_Language", $element_array[8][0], "?")
EndFunc

Func GUI()
    $Form1 = GUICreate(Language(0), 217, 239, -1, -1)
    $MenuItem5 = GUICtrlCreateMenu(Language(1))
    $MenuItem6 = GUICtrlCreateMenuItem(Language(2), $MenuItem5)
    $MenuItem4 = GUICtrlCreateMenu(Language(3))
    $MenuItem3 = GUICtrlCreateMenu(Language(4))
    $Label1 = GUICtrlCreateLabel(Language(5), 44, 64, 129, 17)
    $Label2 = GUICtrlCreateLabel(Language(6), 54, 192, 109, 17)
    $Button1 = GUICtrlCreateButton(Language(7), 16, 16, 89, 41)
    $Button2 = GUICtrlCreateButton(Language(8), 112, 16, 89, 41)
    GUICtrlCreateEdit("", 18, 80, 185, 105)
    GUISetState(@SW_SHOW)
    While 1
        $nMsg = GUIGetMsg()
        Switch $nMsg
            Case $GUI_EVENT_CLOSE
                Exit
        EndSwitch
    WEnd
EndFunc
Func Language($el_num)
    $User_Language = IniRead($ini, "User_Language", $element_array[$el_num][0], '')
    If $User_Language <> '?' And $User_Language <> '' And $User_Language <> ' ' And $User_Language <> ' ' Then
        Return $User_Language
    Else
        Return $element_array[$el_num][1]
    EndIf
EndFunc
Edited by bogQ

TCP server and client - Learning about TCP servers and clients connection
Au3 oIrrlicht - Irrlicht project
Au3impact - Another 3D DLL game engine for autoit. (3impact 3Drad related)



460px-Thief-4-temp-banner.jpg
There are those that believe that the perfect heist lies in the preparation.
Some say that it’s all in the timing, seizing the right opportunity. Others even say it’s the ability to leave no trace behind, be a ghost.

 

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

    • 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  
    • Jibsbrown
      By Jibsbrown
      Need some help understanding why the ConsoleWrite works inside 2nd For loop but not out side. Between Audit Wiki, Help file , Forum searching (lots of code reading), and YouTube ( shout out to TutsTeach), I have not been able to find the reason why. 
      $sIniPath = "installLog.ini" ; - Get section name $iniSctionNames = IniReadSectionNames($sIniPath) ; - Get Keys and Vaules For $a = 1 to UBound($iniSctionNames) - 1 $keys = IniReadSection($sIniPath , $iniSctionNames[$a]) For $b = 1 to UBound($keys) - 1 $oldSysInfo = IniRead($sIniPath , $iniSctionNames[1], $keys[$b][0], "") $PntIPInfo = IniRead($sIniPath , $iniSctionNames[2], $keys[$b][0], "") $NewPCInfor = IniRead($sIniPath , $iniSctionNames[3], $keys[$b][0], "") ;ConsoleWrite($oldSysInfo & @LF) Next ;ConsoleWrite($oldSysInfo & @LF) Next ConsoleWrite($oldSysInfo) My intention is to use the variables later for Listboxes. Any explanation, forum post links or whatever would help. Sorry also very very new to Autoit.
      Also here's the ini file.
      [OldSysInfo] 4=192.168.0.4|DESKTOP-RDIU2SN|R90M05Q8 5=192.168.0.5|SD0123456789101|R9WGP9P 6=192.168.0.6|SD0123456789102|R9WGP9PT 3=192.168.0.3|DESKTOP-3RS4LKL|R9WGP9P 23=192.168.0.23|SD0123456789102|MXL1234P5I [PrinterIp] 50=192.168.0.50 48=192.168.0.48 47=192.168.0.47 [NewSysInfo] newPC = SD0123456789adfs|192.168.0.185|2UA1234FTR Thank you for your time.
    • damon
      By damon
      @JLogan3o13 I apologize, I did not think of it that way.  I have attached all the code and the Ini File information.  Please let me know if I need to add anything else to help understand what is happening.  thank you.
       
       
       
      Guys, I apologize in advance as I did not search for my answer before posting.  I just could not figure out a way to search that made since so I decided to go ahead and post my question.
       
      Getting to it.
      Background: this is being used to validate file names before moving to a new location.  though i have not included all the code, below is what i am having a problem with.
       I have an ini file that i am reading values from. Func ConfigDefineVars() -- I read the value of $ValidationRDA and everything is good then I set 
      $CaseRDALocationCheck = '$SplitFile[$ValidationRDALocation]' <> $ValidationRDA
      the code that will be used in the select case in Func FileSplitCount().  The problem i have is that even though the numbers = each other they are not recognizing as =.  
      This is what i am getting in my log file i create.
      2017-12-04 14:09:53 : RDA was 2403 should have been 2403:
      If I move $SplitFile[$ValidationRDALocation] <> $ValidationRDA to the Case line under the function it works correctly.
       
      I think this has to do with my use of ' ' around the '$SplitFile[$ValidationRDALocation]' but  i don't know what option i have in Func ConfigDefineVars I am not ready to define $SplitFile.  I have tried adding it to my Global Vars at the top of my script but that did not seem to help.
      There will be more fail this is just the first one in the select case.
       
      Any help or ideas would be greatly appreciated.
       
      thanks,
      Damon
      Example of a filename used.
      DWRSSD-37087-95-026.%-064.00-Tatum Family %-%-1230 Academy Rd-%-PERM-TRUE-2403.pdf
      This file will fail on the 95, it should be 095.  The problem i am getting is with the 2403 it fails even though the ini file value ValidationRDA = 2403 
       
       
      Ini File:
      [SSD_FolderPaths]
      pendingFolder=C:\Users\bg01152\Desktop\SSD Test\pending
      reviewFolder=C:\Users\bg01152\Desktop\SSD Test\review
      completedFolder=C:\Users\bg01152\Desktop\SSD Test\Completed
      FileNetProperties=DocumentTitle,ZipCode,County,MapAndGroupID,ParcelID,PropertyOwner,Subdivision,StreetAddress,LotNumber,DocumentType,Approved,RDANumber
      ValidationDocumentTitle=DWRSSD
      ValidationDocumentTitleLocation=1
      ValidationCountyCodeLocation=3
      ValidationRDA=2403
      ValidationRDALocation=12
      Validation3=TRUE
      Validation3Location=11
      Validation4=PERM
      Validation4Location=10
       
       
      #include <Array.au3> #include <File.au3> #include <MsgBoxConstants.au3> ;------------Global Vars --------------------- Global $SplitFile, $aFileList, $FileLog, $dFolder, $sFolder, $cFolder, $ConfigFile, $t Global $ValidationDocumentTitle, $ValidationDocumentTitleLocation, $ValidationCountyCodeLocation, $ValidationRDA Global $ValidationRDALocation, $Validation3, $Validation3Location, $Validation4, $Validation4Location, $FileNetPropertiesSplit Global $CaseCountyCheck, $CaseRDALocationCheck, $CaseValidation3LocationCheck, $CaseValidation4LocationCheck, $SplitFile ;;--------------------------------Check and Read Config files-------------------------------- $SysConfigFile = @ScriptDir & "\SysConfig.ini" ;----------------PreCheck for Config File-------------- If FileExists ($SysConfigFile) <> 1 Then Exit EndIf ;----------------End PreCheck-------------------------- $FileNetEXE = @ScriptDir & "\" & IniRead ($SysConfigFile, "FileNetUploader","FileName","") $delimiter = IniRead ($SysConfigFile, "FileInformation", "Delimiter","") $Filter = IniRead ($SysConfigFile, "FileInformation", "Filter", "") $ConfigFile = @ScriptDir & "\Config.ini" ;----------------PreCheck for Config File-------------- If FileExists ($ConfigFile) <> 1 Then Exit EndIf ;----------------End PreCheck-------------------------- ;;-------------------------------------------------------------------------------------------- $Sections = IniReadSectionNames ($ConfigFile) ;MsgBox (0,"test", $Sections[0] & @CRLF & $Sections[1] & @CRLF & $Sections[2] & @CRLF & $Sections[3] & @CRLF & $Sections[4]);TESTING ONLY - DELETE WHEN DONE $p = 0 Do $t = 0 ;used for precheck $p = $p + 1 ConfigDefineVars($Sections[$p]) ;MsgBox(0,"ConfigDefineVars", $sFolder & @CRLF & $dFolder & @CRLF & $cFolder);TESTING ONLY - DELETE WHEN DONE PreCheck($dFolder, $sFolder, $cFolder) ;Runs a Pre-check to make sure folder structure exists before running the program If $t = 0 Then ;MsgBox(0,"PreCheck Run", "Running next functions");TESTING ONLY - DELETE WHEN DONE ListArray($sFolder, $Filter) ;Puts File Names in String Array ;_ArrayDisplay ($aFileList, $Sections[$p]) If $t = 0 Then FileSplitCount($dFolder, $aFileList) ;Takes filename String Array and splits by $delimiter ;MsgBox(0,"PreCheck Run2", "Running split function");TESTING ONLY - DELETE WHEN DONE Else ;MsgBox(0,"PreCheck Run2", "Skipping split function");TESTING ONLY - DELETE WHEN DONE EndIf Else ;MsgBox(0,"PreCheck Run", "Skipping next functions");TESTING ONLY - DELETE WHEN DONE EndIf Until $p = $Sections[0] ExitScript() ;Exit script Function Func ConfigDefineVars($SectionsNum);Defines Variables from config file Sections $sFolder = IniRead ($ConfigFile, $SectionsNum, "pendingFolder","") ;Pending Folder, Folder that is awaiting the process $dFolder = IniRead ($ConfigFile, $SectionsNum, "reviewFolder","") ;Review Folder, Files that did not pass validation check and division needs to review $cFolder = IniRead ($ConfigFile, $SectionsNum, "completedFolder","") ;Completed Folder, Once process is completed this would be location files get moved to $FileNetProperties = IniRead ($ConfigFile, $SectionsNum, "FileNetProperties","") $FileNetPropertiesSplit = StringSplit ($FileNetProperties,",") $ValidationDocumentTitle = IniRead ($ConfigFile, $SectionsNum, "ValidationDocumentTitle","") $ValidationDocumentTitleLocation = IniRead ($ConfigFile, $SectionsNum, "ValidationDocumentTitleLocation","") $ValidationCountyCodeLocation = IniRead ($ConfigFile, $SectionsNum, "ValidationCountyCodeLocation","") $ValidationRDA = IniRead ($ConfigFile, $SectionsNum, "ValidationRDA","") $ValidationRDALocation = IniRead ($ConfigFile, $SectionsNum, "ValidationRDALocation","") $Validation3 = IniRead ($ConfigFile, $SectionsNum, "Validation3","") $Validation3Location = IniRead ($ConfigFile, $SectionsNum, "Validation3Location","") $Validation4 = IniRead ($ConfigFile, $SectionsNum, "Validation4","") $Validation4Location = IniRead ($ConfigFile, $SectionsNum, "Validation4Location","") If $ValidationCountyCodeLocation = 999 Then $CaseCountyCheck = 1 <> 1 Else ;MsgBox (0,"test of county code", "location = " &$ValidationCountyCodeLocation) $CaseCountyCheck = StringLen('$SplitFile[$ValidationCountyCodeLocation]') <> 3 ; Checks for 3 digit County Code EndIf If $ValidationRDALocation = 999 Then $CaseRDALocationCheck = 1 <> 1 Else $CaseRDALocationCheck = '$SplitFile[$ValidationRDALocation]' <> $ValidationRDA ; Checks for 4 Digit RDA EndIf If $Validation3Location = 999 Then $CaseValidation3LocationCheck = 1 <> 1 Else $CaseValidation3LocationCheck = '$SplitFile[$Validation3Location]' <> $Validation3 ; Checks that Approved = True EndIf If $Validation4Location = 999 Then $CaseValidation4LocationCheck = 1 <> 1 Else $CaseValidation3LocationCheck = '$SplitFile[$Validation4Location]' <> $Validation4 ; Checks that Document Type = PERM EndIf EndFunc Func ValidationCheck ($check1) $blank = StringLen ($check1) If $check1 Then EndIf EndFunc Func PreCheck($dFolder, $sFolder, $cFolder) ;----------------PreCheck for Destination Folder-------------- If FileExists ($dFolder) <> 1 Then $t = 1 Return Else $FileLog = FileOpen($dFolder & "\FileLog.log", 1) EndIf ;----------------End PreCheck-------------------------- ;----------------PreCheck for Source Folder-------------- If FileExists ($sFolder) <> 1 Then _FileWriteLog($FileLog, "Path to Pending Folder -- " & $sFolder & " -- does not exist") $t = 1 Return EndIf ;----------------End PreCheck-------------------------- ;----------------PreCheck for Completed Folder--------- If FileExists ($cFolder) <> 1 Then _FileWriteLog($FileLog, "Path to Completed Folder -- " & $cFolder & " -- does not exist") $t = 1 Return EndIf ;----------------End PreCheck-------------------------- EndFunc Func ListArray($sFolder, $Filter) $aFileList = _FileListToArray($sFolder, $Filter, 1) ;Create an array of files from the source folder filtering by filetype ;in the config.ini files for the specified section If @error = 1 Then ;MsgBox($MB_SYSTEMMODAL, "", "Path was invalid.") _FileWriteLog($FileLog, "Path to File(s) is Invalid") $t = 1 Return EndIf If @error = 4 Then ;MsgBox($MB_SYSTEMMODAL, "", "No file(s) were found.") _FileWriteLog($FileLog, "No File(s) were found, exiting.") $t = 1 Return EndIf EndFunc ;==>ListArray  
       
       
       
    • Wingens
      By Wingens
      Hi I am trying to read multiple sections from an ini file into an array and use the result to calculate how many records there are from the suppliers and this devided into the status records that belong to it. The problem I am having; I am able to use Ubound to calculate how many record there are in total to the option chosen from the combo box, but where I am getting stuck is the part to link the status and leverancier to each other and count them.
      Hope some one can help me.
      My code right now:
      #include <ComboConstants.au3> #include <GUIConstantsEx.au3> #include <WindowsConstants.au3> #include <file.au3> #include <array.au3> $Form1 = GUICreate("Form1", 615, 437, 569, 253) $LEVCOMBO = GUICtrlCreateCombo("", 184, 112, 145, 25, BitOR($CBS_DROPDOWNLIST, $WS_VSCROLL)) Global $aSections = IniReadSectionNames(@ScriptDir & "\leveranciers.ini") If (Not @Error) Then GUICtrlSetData($LEVCOMBO, _ArraytoString($aSections, "|", 1), $aSections[1]) $LABEL = GUICtrlCreateLabel("Totaal aantal RMA aanvragen: ", 48, 200, 250, 21) $TOTALCOUNT = GUICtrlCreateLabel("", 200, 200, 100, 21) $LABEL2 = GUICtrlCreateLabel("Aantal aangevraagd: ", 48, 225, 250, 21) $TOTALAANGEVRAAGD = GUICtrlCreateLabel("", 200, 225, 100, 21) $LABEL3 = GUICtrlCreateLabel("Aantal verzonden: ", 48, 250, 250, 21) $TOTALVERZONDEN = GUICtrlCreateLabel("", 200, 250, 100, 21) $LABEL4 = GUICtrlCreateLabel("Aantal afgehandeld: ", 48, 275, 250, 21) $TOTALAFGEHANDELD = GUICtrlCreateLabel("", 200, 275, 100, 21) GUISetState(@SW_SHOW) While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE Exit Case $LEVCOMBO COMBO() EndSwitch WEnd Func COMBO() Local $hINI_FILENAME = @ScriptDir & "\ini.ini" $READAANGEVRAAGDRMA = IniReadSection($hINI_FILENAME, 'LEVERANCIER') $READSTATUS = IniReadSection($hINI_FILENAME, 'STATUS') $VAR = GUICtrlRead($LEVCOMBO) $READAANGEVRAAGDRMACOUNT = _ArrayFindAll($READAANGEVRAAGDRMA, $VAR, Default, Default, Default, Default, 1) GUICtrlSetData($TOTALCOUNT,UBound($READAANGEVRAAGDRMACOUNT)) $nb = $READAANGEVRAAGDRMA[0][0] Local $res[$nb+1][3] $res[0][0] = $nb For $i = 1 to $nb $res[$i][0] = $READAANGEVRAAGDRMA[$i][1] $res[$i][1] = $READSTATUS[$i][1] Next _ArrayDisplay($res) EndFunc And the ini files that goes with it:
      ini.ini:
      [STATUS] 1=Afgehandeld 3=Verzonden 4=Aangevraagd 5=Aangevraagd 6=Aangevraagd 7=Aangevraagd 8=Verzonden 9=Aangevraagd 10=Aangevraagd 11=Aangevraagd 12=Aangevraagd 13=Aangevraagd 14=Aangevraagd 15=Aangevraagd 16=Aangevraagd 17=Aangevraagd 18=Aangevraagd 19=Aangevraagd 20=Aangevraagd 21=Aangevraagd 22=Aangevraagd [LEVERANCIER] 9=Dobit B.V. 1=Dobit B.V. 10=Dobit B.V. 11=Dobit B.V. 12=Dobit B.V. 13=Dobit B.V. 14=Asus 15=Asus 16=Brother 17=Dobit B.V. 18=Dobit B.V. 19=Dobit B.V. 20=Dobit B.V. 21=Dobit B.V. 22=Asus leveranciers.ini:
      [Kies een leverancier...] [Dobit B.V.] URL =http://eline.dobit.be/eline/master.php [TechData B.V.] URL = [MaxICT B.V.] URL = [Brother] URL= [Asus] URL=https://eu-rma.asus.com/pickup_europe/pickup.aspx?country=nl [HP] URL= [Lenovo] URL= [CCV] URL=  
      test.au3
      ini.ini
      leveranciers.ini
    • TheDcoder
      By TheDcoder
      Hello , I was thinking of a situation where a key in a ini file can contain anything, If we were to know if the key does not exists using IniRead, Its not possible to do it without compromising a single possibility... I was thinking that if IniRead were to set @error when a key does not exist, it solves the problem which I mentioned before
       
      What do you think? Would you like this feature?
      TD
×