Jump to content

Creating Log file wich writes entries in the top of the file


Recommended Posts

Good evening,

I am struggling with FileWriteline and _FileWriteLine() to make a simple script wich writes the date and time and username to a text file.

This is easy in the normal way wich the script add the line in the end of the file, but what i want to accomplish is it writes the new line above all the others.

So you got the new entries in the top of the text document when you open it.

Are there any other commands to accomplish this or is this to hard to do?

Link to comment
Share on other sites

Hi Iznogoud,

it's not so hard to do... just let me few minutes and I come back with a sample script...

Good evening,

I am struggling with FileWriteline and _FileWriteLine() to make a simple script wich writes the date and time and username to a text file.

This is easy in the normal way wich the script add the line in the end of the file, but what i want to accomplish is it writes the new line above all the others.

So you got the new entries in the top of the text document when you open it.

Are there any other commands to accomplish this or is this to hard to do?

FreeRiderHonour & Fidelity

Link to comment
Share on other sites

Here is a little changed _FileWriteLog() UDF:

_FileWriteLogEx(@ScriptDir & "\LogFile.log", "This is the first log entry" & @CRLF, 1)

Sleep(1000)

_FileWriteLogEx(@ScriptDir & "\LogFile.log", "This is the second log entry" & @CRLF, 1)

Sleep(1000)

_FileWriteLogEx(@ScriptDir & "\LogFile.log", "This is the third log entry..." & @CRLF, 1)

;And this one goes to the End:
_FileWriteLogEx(@ScriptDir & "\LogFile.log", @CRLF & "== This is the Ending line ==" & @CRLF, -1)

Func _FileWriteLogEx($sLogPath, $sLogMsg, $iFlag=-1)
    ;==============================================
    ; Local Constant/Variable Declaration Section
    ;==============================================
    Local $sDateNow, $sTimeNow, $sMsg, $iWriteFile, $hOpenFile, $iOpenMode = 1
    
    $sDateNow = @YEAR & "-" & @MON & "-" & @MDAY
    $sTimeNow = @HOUR & ":" & @MIN & ":" & @SEC
    $sMsg = $sDateNow & " " & $sTimeNow & " : " & $sLogMsg
    
    If $iFlag <> -1 Then
        $sMsg &= FileRead($sLogPath)
        $iOpenMode = 2
    EndIf
    
    $hOpenFile = FileOpen($sLogPath, $iOpenMode)
    If $hOpenFile = -1 Then Return SetError(1, 0, 0)
    
    $iWriteFile = FileWriteLine($hOpenFile, $sMsg)
    If $iWriteFile = -1 Then Return SetError(2, 0, 0)
    
    Return FileClose($hOpenFile)
EndFunc
Edited by MsCreatoR

 

Spoiler

Using OS: Win 7 Professional, Using AutoIt Ver(s): 3.3.6.1 / 3.3.8.1

AutoIt_Rus_Community.png AutoIt Russian Community

My Work...

Spoiler

AutoIt_Icon_small.pngProjects: ATT - Application Translate Tool {new}| BlockIt - Block files & folders {new}| SIP - Selected Image Preview {new}| SISCABMAN - SciTE Abbreviations Manager {new}| AutoIt Path Switcher | AutoIt Menu for Opera! | YouTube Download Center! | Desktop Icons Restorator | Math Tasks | KeyBoard & Mouse Cleaner | CaptureIt - Capture Images Utility | CheckFileSize Program

AutoIt_Icon_small.pngUDFs: OnAutoItErrorRegister - Handle AutoIt critical errors {new}| AutoIt Syntax Highlight {new}| Opera Library! | Winamp Library | GetFolderToMenu | Custom_InputBox()! | _FileRun UDF | _CheckInput() UDF | _GUIInputSetOnlyNumbers() UDF | _FileGetValidName() UDF | _GUICtrlCreateRadioCBox UDF | _GuiCreateGrid() | _PathSplitByRegExp() | _GUICtrlListView_MoveItems - UDF | GUICtrlSetOnHover_UDF! | _ControlTab UDF! | _MouseSetOnEvent() UDF! | _ProcessListEx - UDF | GUICtrl_SetResizing - UDF! | Mod. for _IniString UDFs | _StringStripChars UDF | _ColorIsDarkShade UDF | _ColorConvertValue UDF | _GUICtrlTab_CoverBackground | CUI_App_UDF | _IncludeScripts UDF | _AutoIt3ExecuteCode | _DragList UDF | Mod. for _ListView_Progress | _ListView_SysLink | _GenerateRandomNumbers | _BlockInputEx | _IsPressedEx | OnAutoItExit Handler | _GUICtrlCreateTFLabel UDF | WinControlSetEvent UDF | Mod. for _DirGetSizeEx UDF
 
AutoIt_Icon_small.pngExamples: 
ScreenSaver Demo - Matrix included | Gui Drag Without pause the script | _WinAttach()! | Turn Off/On Monitor | ComboBox Handler Example | Mod. for "Thinking Box" | Cool "About" Box | TasksBar Imitation Demo

Like the Projects/UDFs/Examples? Please rate the topic (up-right corner of the post header: Rating AutoIt_Rating.gif)

* === My topics === *

==================================================
My_Userbar.gif
==================================================

 

 

 

AutoIt is simple, subtle, elegant. © AutoIt Team

Link to comment
Share on other sites

I'm back...

Try this... it's lite, simple and easy to use (I've made a quick test and it works).

#include <Date.au3>
#include <File.au3>

If not FileExists(@ScriptDir & "\" & StringTrimRight(@ScriptName,3) & "log") Then _FileCreate (@ScriptDir & "\" & StringTrimRight(@ScriptName,3) & "log")
For $i = 1 to 3
_FileWriteToLine(@ScriptDir & "\" & StringTrimRight(@ScriptName,3) & "log",1,_Now() & " - " & @UserName)
sleep (1000)
Next

Bye,

Good evening,

I am struggling with FileWriteline and _FileWriteLine() to make a simple script wich writes the date and time and username to a text file.

This is easy in the normal way wich the script add the line in the end of the file, but what i want to accomplish is it writes the new line above all the others.

So you got the new entries in the top of the text document when you open it.

Are there any other commands to accomplish this or is this to hard to do?

FreeRiderHonour & Fidelity

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...