Sign in to follow this  
Followers 0
afoo

FileWriteLog unable to append log at beginning of file

7 posts in this topic

Hi,

I'm facing a problem to get the file compile properly. It indicate with error:

$iFlag: possibly used before declaration,

$iFlag: undeclared global variable.

Below is my code.

#NoTrayIcon
#include <GUIConstantsEx.au3>
#include <File.au3>

Global $file, $sPath, $hFile, $vPath, $sDrive

$file = FileOpen("backup-path.txt", 0) ; Open the directory file in read only mode. The directory path until $sPath only.
$hFile = FileOpen("backup-sync.log", 1) ; Open the logfile in write mode.

; Check if file opened for reading OK
If $file = -1 Then
    MsgBox(0, "Error", "Unable to open file.")
    Exit
ElseIf FileExists("I:\") Then
    sync()
Else
    MsgBox(0, "Error", "I:\ drive not found")
    _FileWriteLog($hFile, 'I:\ drive not found', $iFlag <> -1) ; Write to the logfile with section ending
    _FileWriteLog($hFile, '*****', $iFlag <> -1) ; Write to the logfile with section ending
EndIf

Func sync()
$vPath = InputBox("Define folder name", "Enter folder name", "WWxx dd-mm-yyyy", "", 200, 130)
SplashTextOn("", "Syncing files. Please wait.", 250, 50, -1, -1, 16, "", 10)
; Read in lines of text until the EOF is reached
While 1

    DirCreate("I:\" & $vPath)
    Local $line = FileReadLine($file)
    If @error = -1 Then ExitLoop
    FileCopy($line, "I:\" & $vPath, 1)
    _FileWriteLog($hFile, 'Copied;'&@ComputerName&';'&$line, $iFlag <> -1) ; Write to the logfile passing the filehandle returned by FileOpen.
    _FileWriteLog($hFile, '*****', $iFlag <> -1) ; Write to the logfile with section ending.
    FileClose($hFile) ; Close the log file.
    FileClose($file) ; Close the directory file.
    Sleep(3000)
WEnd
    SplashOff()
    MsgBox(0,"", "Sync completed.")
EndFunc

Share this post


Link to post
Share on other sites



Welcome to AutoIt!

The statement "$iFlag <> -1" shouldn't be used in that manner. The help file is only using $iFlag to let you know how it will process a -1 in that location or anything other than a -1. Basically, it is a way of telling your script to write your newest  log entry to the top of the file or the bottom. If you put in a -1 (which is default), it will write it to the bottom. If you put anything else, it will write it to the top. So, the question you have to ask yourself is if you always want your newest entry on top or in chronological order.

Examples that should work:

_FileWriteLog($hFile, 'I:\ drive not found', -1); writes to the end of the file
_FileWriteLog($hFile, 'I:\ drive not found', 1); writes to the beginning of the file

RAID Calculator | Software Installer

The truth has been suppressed since the dawn of time.

Share this post


Link to post
Share on other sites

Thank you very much abberration. I'm able to compile the script now. However, the file doesn't append on top but happens at the end of the file. I try with value 1, 0, -2. None working.

 

Welcome to AutoIt!

The statement "$iFlag <> -1" shouldn't be used in that manner. The help file is only using $iFlag to let you know how it will process a -1 in that location or anything other than a -1. Basically, it is a way of telling your script to write your newest  log entry to the top of the file or the bottom. If you put in a -1 (which is default), it will write it to the bottom. If you put anything else, it will write it to the top. So, the question you have to ask yourself is if you always want your newest entry on top or in chronological order.

Examples that should work:

_FileWriteLog($hFile, 'I:\ drive not found', -1); writes to the end of the file
_FileWriteLog($hFile, 'I:\ drive not found', 1); writes to the beginning of the file

Share this post


Link to post
Share on other sites

#4 ·  Posted (edited)

It works as expected here. Please run the following script and post the result:

#include <File.au3>
_FileWriteLog("C:\temp\test.log", "First Message")
_FileWriteLog("C:\temp\test.log", "Message at the End", -1)
_FileWriteLog("C:\temp\test.log", "Message at the Top", 1)
ShellExecute("C:\temp\test.log")
Edited by water

My UDFs and Tutorials:

Spoiler

UDFs:
Active Directory (NEW 2017-04-18 - Version 1.4.8.0) - Download - General Help & Support - Example Scripts - Wiki
OutlookEX (NEW 2017-02-27 - Version 1.3.1.0) - Download - General Help & Support - Example Scripts - Wiki
ExcelChart (2015-04-01 - Version 0.4.0.0) - Download - General Help & Support - Example Scripts
Excel - Example Scripts - Wiki
Word - Wiki
PowerPoint (2015-06-06 - Version 0.0.5.0) - Download - General Help & Support

Tutorials:
ADO - Wiki

 

Share this post


Link to post
Share on other sites

Works for me too.


_AdapterConnections()_AlwaysRun()_AppMon()_AppMonEx()_BinaryBin()_CheckMsgBox()_CmdLineRaw()_ContextMenu()_ConvertLHWebColor()/_ConvertSHWebColor()_DesktopDimensions()_DisplayPassword()_DotNet_Load()/_DotNet_Unload()_Fibonacci()_FileCompare()_FileCompareContents()_FileNameByHandle()_FilePrefix/SRE()_FindInFile()_GetBackgroundColor()/_SetBackgroundColor()_GetConrolID()_GetCtrlClass()_GetDirectoryFormat()_GetDriveMediaType()_GetFilename()/_GetFilenameExt()_GetHardwareID()_GetIP()_GetIP_Country()_GetOSLanguage()_GetSavedSource()_GetStringSize()_GetSystemPaths()_GetURLImage()_GIFImage()_GoogleWeather()_GUICtrlCreateGroup()_GUICtrlListBox_CreateArray()_GUICtrlListView_CreateArray()_GUICtrlListView_SaveCSV()_GUICtrlListView_SaveHTML()_GUICtrlListView_SaveTxt()_GUICtrlListView_SaveXML()_GUICtrlMenu_Recent()_GUICtrlMenu_SetItemImage()_GUICtrlTreeView_CreateArray()_GUIDisable()_GUIImageList_SetIconFromHandle()_GUIRegisterMsg()_GUISetIcon()_Icon_Clear()/_Icon_Set()_IdleTime()_InetGet()_InetGetGUI()_InetGetProgress()_IPDetails()_IsFileOlder()_IsGUID()_IsHex()_IsPalindrome()_IsRegKey()_IsStringRegExp()_IsSystemDrive()_IsUPX()_IsValidType()_IsWebColor()_Language()_Log()_MicrosoftInternetConnectivity()_MSDNDataType()_PathFull/GetRelative/Split()_PathSplitEx()_PrintFromArray()_ProgressSetMarquee()_ReDim()_RockPaperScissors()/_RockPaperScissorsLizardSpock()_ScrollingCredits_SelfDelete()_SelfRename()_SelfUpdate()_SendTo()_ShellAll()_ShellFile()_ShellFolder()_SingletonHWID()_SingletonPID()_Startup()_StringCompact()_StringIsValid()_StringRegExpMetaCharacters()_StringReplaceWholeWord()_StringStripChars()_Temperature()_TrialPeriod()_UKToUSDate()/_USToUKDate()_WinAPI_Create_CTL_CODE()_WinAPI_CreateGUID()_WMIDateStringToDate()/_DateToWMIDateString()Au3 script parsingAutoIt SearchAutoIt3 PortableAutoIt3WrapperToPragmaAutoItWinGetTitle()/AutoItWinSetTitle()CodingDirToHTML5FileInstallrFileReadLastChars()GeoIP databaseGUI - Only Close ButtonGUI ExamplesGUICtrlDeleteImage()GUICtrlGetBkColor()GUICtrlGetStyle()GUIEventsGUIGetBkColor()Int_Parse() & Int_TryParse()IsISBN()LockFile()Mapping CtrlIDsOOP in AutoItParseHeadersToSciTE()PasswordValidPasteBinPosts Per DayPreExpandProtect GlobalsQueue()Resource UpdateResourcesExSciTE JumpSettings INISHELLHOOKShunting-YardSignature CreatorStack()Stopwatch()StringAddLF()/StringStripLF()StringEOLToCRLF()VSCROLLWM_COPYDATAMore Examples...

Updated: 04/09/2015

Share this post


Link to post
Share on other sites

Thank you. I think I figure out the issue why it don't works on my end here. Thanks again.

Share this post


Link to post
Share on other sites

Could you please describe the problem that led to the undesired result?

So it might be helpful for others in the future.


My UDFs and Tutorials:

Spoiler

UDFs:
Active Directory (NEW 2017-04-18 - Version 1.4.8.0) - Download - General Help & Support - Example Scripts - Wiki
OutlookEX (NEW 2017-02-27 - Version 1.3.1.0) - Download - General Help & Support - Example Scripts - Wiki
ExcelChart (2015-04-01 - Version 0.4.0.0) - Download - General Help & Support - Example Scripts
Excel - Example Scripts - Wiki
Word - Wiki
PowerPoint (2015-06-06 - Version 0.0.5.0) - Download - General Help & Support

Tutorials:
ADO - Wiki

 

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  
Followers 0