Jump to content

Recommended Posts

Posted (edited)

Hello

Below is an example of some of my code, I was wondering if this code could be made more compact instead of all the repeating that is going on. It is easier to read for me, just wanted to see if there was a better way..

Thanks in advance

Local $SimsServer = EnvGet("SimsServer")
Local $Sapassword = EnvGet("SaPassword")
Local $SimsUser = EnvGet("SimsUser")
Local $SimsPassword = EnvGet("SimsPassword")
;*************************************************
If Not $SimsServer = " " Then
    _FileWriteLog(@ScriptDir & "\Backup.log", "Error -  Sims Server Var not Found ")
    _OutPut()
Else
    _FileWriteLog(@ScriptDir & "\Backup.log", "Success - Sims Server identified : " & $SimsServer)
EndIf
If Not $Sapassword = " " Then
    _FileWriteLog(@ScriptDir & "\Backup.log", "Error -  SA password not Found ")
    _OutPut()
Else
    _FileWriteLog(@ScriptDir & "\Backup.log", "Success - SA password identified")
EndIf
If Not $SimsUser = " " Then
    _FileWriteLog(@ScriptDir & "\Backup.log", "Error -  Sims User not Found ")
    _OutPut()
Else
    _FileWriteLog(@ScriptDir & "\Backup.log", "Success - Sims User identified : " & $SimsUser)
EndIf
If Not $SimsPassword = " " Then
    _FileWriteLog(@ScriptDir & "\Backup.log", "Error -  Sims User password not Found ")
    _OutPut()
Else
    _FileWriteLog(@ScriptDir & "\Backup.log", "Success - Sims User password identified")
EndIf
Edited by Alpinestar
Posted

It's not the correct condition to use if I understand it correctly:

$Something = '3'
If Not $Something = '2' Then
    ; True
Else
    ; False
EndIfoÝ÷ Ù.ßÚÞë-{ޮاZ·MúJ¶§Ê'µ¨§jwméÜ¢jZ­ëk¹ê+}©ly¨{-+^­©m{m«fk*Þ²ém{k¹è¶¬¶¸§ëÞÛ½©nj׬¶k¹æ§vøz÷«±¤áȬ¶¢ºÞrÚ'y©m +wöÈî²Ö޶׫¶n¶Ø^z[q«~*ì¶)ìµæ¡óNObayÊ'v+b¢v®¶­sbb33cµ6öÖWFærÒb33³2b33°¤bæ÷Bb33cµ6öÖWFærÒb33³"b33²FVࢲG'VP¤VÇ6P¢²fÇ6
Posted (edited)

Thanks for the quick reply. The reason I had it that way round was because of the negative results I was getting. I have done some testing and amend the code below. I was assuming that having

" "
would be a null variable, but it seems that not true, a null variable without a space is a null variable. Probably a very silly mistake on my behalf.

Local $SimsServer = EnvGet("SimsServer")
Local $Sapassword = EnvGet("SaPassword")
Local $SimsUser = EnvGet("SimsUser")
Local $SimsPassword = EnvGet("SimsPassword")
;*************************************************

If NOT ($SimsServer = '') Then
    _FileWriteLog(@ScriptDir & "\Backup.log", "Error -  Sims Server Var not Found ")
    _OutPut()
Else
    _FileWriteLog(@ScriptDir & "\Backup.log", "Success - Sims Server identified : " & $SimsServer)

EndIf
If ($Sapassword = '') Then
    _FileWriteLog(@ScriptDir & "\Backup.log", "Error -  SA password not Found ")
    _OutPut()
Else
    _FileWriteLog(@ScriptDir & "\Backup.log", "Success - SA password identified")
EndIf
If ($SimsUser = '') Then
    _FileWriteLog(@ScriptDir & "\Backup.log", "Error -  Sims User not Found ")
    _OutPut()
Else
    _FileWriteLog(@ScriptDir & "\Backup.log", "Success - Sims User identified : " & $SimsUser)
EndIf
If ($SimsPassword = '') Then
    _FileWriteLog(@ScriptDir & "\Backup.log", "Error -  Sims User password not Found ")
    _OutPut()
Else
    _FileWriteLog(@ScriptDir & "\4SBackup.log", "Success - Sims User password identified")
EndIf
Edited by Alpinestar
  • Developers
Posted (edited)

Not sure why you would want to shorten this code but here is a shorter (untested) version:

TestVars("SimsServer")
TestVars("Sapassword")
TestVars("SimsUser")
TestVars("SimsPassword")
;
Func TestVars($inputVar)
    Assign($inputVar,EnvGet($inputVar),2)
    If Eval($inputVar) = '' Then
        _FileWriteLog(@ScriptDir & "\Backup.log", "Error -  " & $inputVar & " not Found ")
        _OutPut()
    Else
        _FileWriteLog(@ScriptDir & "\Backup.log", "Success - " & $inputVar & " identified")
    EndIf
EndFunc
Edited by Jos

SciTE4AutoIt3 Full installer Download page   - Beta files       Read before posting     How to post scriptsource   Forum etiquette  Forum Rules 
 
Live for the present,
Dream of the future,
Learn from the past.
  :)

Posted (edited)

#include <File.au3>

Local $sEnv = 'SimsServer|SaPassword|SimsUser|SimsPassword'
Local $avSplit = StringSplit($sEnv, '|')
Local $sFile = @ScriptDir & '\Backup.log'

For $i = 1 To $avSplit[0]
    Local $avWords = StringRegExp($avSplit[$i], '[A-Z]+[a-z]+', 3)
    Local $sVar = EnvGet($avSplit[$i])
    
    If $sVar = '' Then
        _FileWriteLog($sFile, 'Error - ' & $avWords[0] & ' ' & $avWords[1] & ' Var Not Found')
        _OutPut()
    Else
        _FileWriteLog($sFile, 'Success - ' & $avWords[0] & ' ' & $avWords[1] & ' identified : ' & $sVar)
    EndIf
Next

...

Edit: StringRegExp...

Edited by Authenticity

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
×
×
  • Create New...