Jump to content

FileWriteLog unable to append log at beginning of file


afoo
 Share

Go to solution Solved by abberration,

Recommended Posts

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
Link to comment
Share on other sites

  • Solution

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
Link to comment
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
Link to comment
Share on other sites

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 2022-02-19 - Version 1.6.1.0) - Download - General Help & Support - Example Scripts - Wiki
ExcelChart (2017-07-21 - Version 0.4.0.1) - Download - General Help & Support - Example Scripts
OutlookEX (2021-11-16 - Version 1.7.0.0) - Download - General Help & Support - Example Scripts - Wiki
OutlookEX_GUI (2021-04-13 - Version 1.4.0.0) - Download
Outlook Tools (2019-07-22 - Version 0.6.0.0) - Download - General Help & Support - Wiki
PowerPoint (2021-08-31 - Version 1.5.0.0) - Download - General Help & Support - Example Scripts - Wiki
Task Scheduler (NEW 2022-07-28 - Version 1.6.0.1) - Download - General Help & Support - Wiki

Standard UDFs:
Excel - Example Scripts - Wiki
Word - Wiki

Tutorials:
ADO - Wiki
WebDriver - Wiki

 

Link to comment
Share on other sites

Works for me too.

UDF List:

 
_AdapterConnections()_AlwaysRun()_AppMon()_AppMonEx()_ArrayFilter/_ArrayReduce_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: 22/04/2018

Link to comment
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 2022-02-19 - Version 1.6.1.0) - Download - General Help & Support - Example Scripts - Wiki
ExcelChart (2017-07-21 - Version 0.4.0.1) - Download - General Help & Support - Example Scripts
OutlookEX (2021-11-16 - Version 1.7.0.0) - Download - General Help & Support - Example Scripts - Wiki
OutlookEX_GUI (2021-04-13 - Version 1.4.0.0) - Download
Outlook Tools (2019-07-22 - Version 0.6.0.0) - Download - General Help & Support - Wiki
PowerPoint (2021-08-31 - Version 1.5.0.0) - Download - General Help & Support - Example Scripts - Wiki
Task Scheduler (NEW 2022-07-28 - Version 1.6.0.1) - Download - General Help & Support - Wiki

Standard UDFs:
Excel - Example Scripts - Wiki
Word - Wiki

Tutorials:
ADO - Wiki
WebDriver - Wiki

 

Link to comment
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
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...