Jump to content

Recommended Posts

Posted (edited)

Hi guys, i have made this script:

$File = _RecFileListToArray("C:\Test", "*.*", 1, 0, 0, 2, "", "")
If IsArray($File) Then
    For $i = 1 To $File[0]
        $Time = FileGetTime($File[$i])
        $dmyyyy = $Time[2] & "/" & $Time[1] & "/" & $Time[0]
        MsgBox(0,"FileDate", $File[$i] & " - " & $dmyyyy)
    Next
EndIf

The script working with MsgBox, so i have try to write the result on a txt like this:

$ToWrite = $File[$i] & " - " & $dmyyyy
$Log = @TempDir & "\log.txt"
$LogCreate = FileOpen(@TempDir & "\log.txt", 1)
_FileWriteFromArray($LogCreate, $ToWrite)
FileClose($LogCreate)

But not working, i have only the filename but not the date. What is the problem?

Thanks for support :)

Edited by johnmcloud
  • Replies 46
  • Created
  • Last Reply

Top Posters In This Topic

Top Posters In This Topic

Posted

What you want to do is to add a column (holding the date of the file) to the existing array $file and then write this array do disk.

Add the column to the array using this code:

Redim $File[UBound($File)][UBound($File, 2)+1]
Then fill the last element of each row with the date and write the file to disk.

My UDFs and Tutorials:

Spoiler

UDFs:
Active Directory (NEW 2024-07-28 - Version 1.6.3.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 (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

 

Posted (edited)

Thanks water, but i don't understand :)

If you can, make an example, i've never used Ubound and Redim

Edited by johnmcloud
Posted

You want this?

#include<_RecFileListToArray.au3>
#include<Array.au3>
;~ Func _RecFileListToArray($sInitialPath, $sInclude_List = "*", $iReturn = 0, $iRecur = 0, $iSort = 0, $iReturnPath = 1, $sExclude_List = "")
$File = _RecFileListToArray(@ScriptDir, "*.*", 1, 0, 0, 2, "")
;~ _ArrayDisplay($File)
Global $newArray[UBound($File)][2]
For $i = 1 To UBound($File) - 1
$Time = FileGetTime($File[$i])
$dmyyyy = $Time[2] & "/" & $Time[1] & "/" & $Time[0]
$newArray[$i][0] = $File[$i]
$newArray[$i][1] = $dmyyyy
Next
_ArrayDisplay($newArray)

Scripts & functions Organize Includes Let Scite organize the include files

Yahtzee The game "Yahtzee" (Kniffel, DiceLion)

LoginWrapper Secure scripts by adding a query (authentication)

_RunOnlyOnThis UDF Make sure that a script can only be executed on ... (Windows / HD / ...)

Internet-Café Server/Client Application Open CD, Start Browser, Lock remote client, etc.

MultipleFuncsWithOneHotkey Start different funcs by hitting one hotkey different times

Posted (edited)

I just did a quick check and noticed that function _RecFileListToArray onyl returns a 1D array. My first approach doesn't work because ReDim can't change a 1D array to a 2D array.

But this should work

#include <recfilelisttoarray.au3>
#include <array.au3>
$File = _RecFileListToArray("C:Temp", "*.*", 1, 0, 0, 2, "", "")
ConsoleWrite(@error & @CRLF)
_Arraydisplay($File)
If IsArray($File) Then
    Global $OutFile[UBound($File)][2] = [[$File[0],2]]
    For $i = 1 To $File[0]
        $Time = FileGetTime($File[$i])
        $OutFile[$i][0] = $File[$i]
        $OutFile[$i][1] = $Time[2] & "/" & $Time[1] & "/" & $Time[0]
    Next
EndIf
_Arraydisplay($OutFile)
Edited by water

My UDFs and Tutorials:

Spoiler

UDFs:
Active Directory (NEW 2024-07-28 - Version 1.6.3.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 (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

 

Posted (edited)

Thanks guys, but both give me error:

Xenobiologist:

On main script:

.File.au3 (256) : ==> Array variable has incorrect number of subscripts or subscript dimension range exceeded.:
If FileWrite($hFile, $a_Array[$x] & @CRLF) = 0 Then
If FileWrite($hFile, ^ ERROR
>Exit code: 1   Time: 4.914

On a empty script with only the code:

.Test1.au3 (7) : ==> Array variable subscript badly formatted.:
Global $newArray[UBound($File)][2]
Global $newArray[^ ERROR
>Exit code: 1   Time: 0.304

water:

On main script

.Test.au3 (298) : ==> Expected a "=" operator in assignment statement.:
$Outfile[$i][0] = $Outfile[$i]
$Outfile^ ERROR
>Exit code: 1   Time: 2.814

On a empty script with only the code:

.Test1.au3 (15) : ==> Variable used without being declared.:
_Arraydisplay($OutFile)
_Arraydisplay(^ ERROR
>Exit code: 1   Time: 0.318
Edited by johnmcloud
Posted

Line 298 is not within the code I provided. Seems to be caused by an #include of your code.

Can you post the code that returns the error?

My UDFs and Tutorials:

Spoiler

UDFs:
Active Directory (NEW 2024-07-28 - Version 1.6.3.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 (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

 

Posted (edited)

Here we are:

#AutoIt3Wrapper_Au3Check_Parameters=-d -w 1 -w 2 -w 3 -w 4 -w 5 -w 6
#include <RecFileListToArray.au3> ; External UDF
#include <ProgressConstants.au3>
#include <WindowsConstants.au3>
#include <GUIConstantsEx.au3>
#include <EditConstants.au3>
#include <GUIConstants.au3>
#include <Constants.au3>
#Include <GuiEdit.au3>
#include <WinAPI.au3>
#include <Array.au3>
#include <Date.au3>
#include <File.au3>
Edited by johnmcloud
Posted

You can run my test script without any additional code. Just change "C:Temp" to "C:Test".

My script errors if the array returned by _RecFileListToArray does not exist.

My UDFs and Tutorials:

Spoiler

UDFs:
Active Directory (NEW 2024-07-28 - Version 1.6.3.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 (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

 

Posted (edited)

Sorry man, i have take temp for test

The problem is if i enable this string:

_FileWriteFromArray($LogCreate, $OutFile, 1)

I have this error:

.File.au3 (256) : ==> Array variable has incorrect number of subscripts or subscript dimension range exceeded.:
If FileWrite($hFile, $a_Array[$x] & @CRLF) = 0 Then
If FileWrite($hFile, ^ ERROR
>Exit code: 1   Time: 5.482

With only _Arraydisplay($OutFile) work, with _FileWriteFromArray i have the error

Thanks for your time

Edited by johnmcloud
Posted

There seems to be a bug in _FileWriteFromArray for 2D arrays.

What version of Autoit do you use?

My UDFs and Tutorials:

Spoiler

UDFs:
Active Directory (NEW 2024-07-28 - Version 1.6.3.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 (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

 

Posted (edited)

I have 3.3.6.0.

Now I have try to install the 3.3.8.0 + Scite Full

.file.au3 (272) : ==> Array variable has incorrect number of subscripts or subscript dimension range exceeded.:
$s_Temp &= $s_Delim & $a_Array[$x][$y]
$s_Temp &= $s_Delim & ^ ERROR
->15:30:48 AutoIT3.exe ended.rc:1
>Exit code: 1   Time: 1.986

Different error, same result. A question: It possible to divide the array in 1D and write them separately on the log? Or Make this 2D in 1D?

Edited by johnmcloud
Posted

Replace line 271 ("For $y = 1 To $iDims") in the include File.au3 with "For $y = 0 To $iDims-1"

My UDFs and Tutorials:

Spoiler

UDFs:
Active Directory (NEW 2024-07-28 - Version 1.6.3.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 (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

 

Posted (edited)

This is the result:

12|12|2
C:TestAutoIt3Au3Check.dat|C:TestAutoIt3Au3Check.dat|23/12/2011
C:TestAutoIt3Au3Check.exe|C:TestAutoIt3Au3Check.exe|23/12/2011
C:TestAutoIt3Au3Info.exe|C:TestAutoIt3Au3Info.exe|23/12/2011
C:TestAutoIt3Au3Info_x64.exe|C:TestAutoIt3Au3Info_x64.exe|23/12/2011
C:TestAutoIt3AutoIt v3 Website.url|C:TestAutoIt3AutoIt v3 Website.url|21/12/2011
C:TestAutoIt3AutoIt.chm|C:TestAutoIt3AutoIt.chm|23/12/2011
C:TestAutoIt3AutoIt3.chm|C:TestAutoIt3AutoIt3.chm|23/12/2011
C:TestAutoIt3AutoIt3.exe|C:TestAutoIt3AutoIt3.exe|23/12/2011
C:TestAutoIt3AutoIt3Help.exe|C:TestAutoIt3AutoIt3Help.exe|21/12/2011
C:TestAutoIt3AutoIt3_x64.exe|C:TestAutoIt3AutoIt3_x64.exe|23/12/2011
C:TestAutoIt3UDFs3.chm|C:TestAutoIt3UDFs3.chm|23/12/2011
C:TestAutoIt3Uninstall.exe|C:TestAutoIt3Uninstall.exe|06/02/2012

So it's a bug. I can replace the | with a space, but how to remove the duplicate path?

Edited by johnmcloud
Posted

My bad. The correct line should read: "For $y = 1 To $iDims-1"

My UDFs and Tutorials:

Spoiler

UDFs:
Active Directory (NEW 2024-07-28 - Version 1.6.3.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 (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

 

Posted

My bad. The correct line should read: "For $y = 1 To $iDims-1"

Ok, nice, thanks. You will post a bug for this or i'll do by myself? It's not a problem for me but i think you are a MVP so maybe it's better solution. Tell me what to do :)

Posted

I already posted a trac ticket #2125

My UDFs and Tutorials:

Spoiler

UDFs:
Active Directory (NEW 2024-07-28 - Version 1.6.3.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 (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

 

Posted

water has already posted a bug in Trac #2125.

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 parsing • AutoIt Search • AutoIt3 Portable • AutoIt3WrapperToPragma • AutoItWinGetTitle()/AutoItWinSetTitle() • Coding • DirToHTML5 • FileInstallr • FileReadLastChars() • GeoIP database • GUI - Only Close Button • GUI Examples • GUICtrlDeleteImage() • GUICtrlGetBkColor() • GUICtrlGetStyle() • GUIEvents • GUIGetBkColor() • Int_Parse() & Int_TryParse() • IsISBN() • LockFile() • Mapping CtrlIDs • OOP in AutoIt • ParseHeadersToSciTE() • PasswordValid • PasteBin • Posts Per Day • PreExpand • Protect Globals • Queue() • Resource Update • ResourcesEx • SciTE Jump • Settings INI • SHELLHOOK • Shunting-Yard • Signature Creator • Stack() • Stopwatch() • StringAddLF()/StringStripLF() • StringEOLToCRLF() • VSCROLL • WM_COPYDATA • More Examples...

Updated: 22/04/2018

Posted

My last problem. I have integrate the script in the main script, but i have error if the array is empty:

Final.au3 (300) : ==> Subscript used with non-Array variable.:
$OutFile[$i][1] = $Time[2] & "/" & $Time[1] & "/" & $Time[0]
$OutFile[$i][1] = $Time^ ERROR
->17:11:45 AutoIT3.exe ended.rc:1
>Exit code: 1    Time: 10.577

How to avoid this? Thanks for support to all

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