lucamad Posted February 26, 2011 Share Posted February 26, 2011 Hi guys I've a nagging problem with an FTP function for getting file modification datetime info. My code: $sess = _FTP_Open("session") $conn = _FTP_Connect($sess, "ftp.mydomain.com", "myusername", "mypassword") _FTP_DirSetCurrent($conn, "/doc") $result = _FTP_ListToArrayEx($conn, 2, 0, 1) _FTP_Close($sess) _ArrayDisplay($result) I need specific date format (required by _dateDiff() function): "YYYY/MM/DD[ HH:MM:SS]". But the _FTP_ListToArrayEx return other date and time format! According to AutoIt Help file, if we write: $result = _FTP_ListToArrayEx($conn, 2, 0, 1) the function date format should be "YYYY/MM/DD", but it return date in the format "YYYY/DD/MM" instead! What's wrong? THXX Link to comment Share on other sites More sharing options...
guinness Posted February 26, 2011 Share Posted February 26, 2011 (edited) Why not use a Function to Convert the Date e.g. ConsoleWrite(_ConvertDate("2011/26/02") & @CRLF) Func _ConvertDate($iDate) ; YYYY/DD/MM >> YYYY/MM/DD Return StringRegExpReplace($iDate, "\A(\d*)/(\d*)/(\d*)", "$1/$3/$2") EndFunc ;==>_ConvertDate Edited February 26, 2011 by guinness 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 Link to comment Share on other sites More sharing options...
lucamad Posted February 27, 2011 Author Share Posted February 27, 2011 Why not use a Function to Convert the Date e.g. ConsoleWrite(_ConvertDate("2011/26/02") & @CRLF) Func _ConvertDate($iDate) ; YYYY/DD/MM >> YYYY/MM/DD Return StringRegExpReplace($iDate, "\A(\d*)/(\d*)/(\d*)", "$1/$3/$2") EndFunc ;==>_ConvertDate Your func works fine! Do you know why _FTP_ListToArrayEx func doesn't work properly? At least, I should know if is a MY (random) problem, or if is an AutoIt one. I can run this script in other pc / ftp servers, and use your conversion func, only if the issue is with AutoIt and it is always present. To you how _FTP_ListToArrayEx works with dates? Thanks! Link to comment Share on other sites More sharing options...
ProgAndy Posted February 27, 2011 Share Posted February 27, 2011 (edited) The date is directly created with _Date_Time_FileTimeToStr, wich should return the format "YYYY/MM/DD hh:mm:ss" by default or "MM/DD/YYYY hh:mm:ss" as an alternative. So I don't know whats going wrong.Edit: Oh, its an error in _Date_Time_FileTimeToStr, the array indices are not correct. It should be this:Func _Date_Time_FileTimeToStr(ByRef $tFileTime, $bFmt = 0) Local $aDate = _Date_Time_FileTimeToArray($tFileTime) If @error Then Return SetError(@error, @extended, "") If $bFmt Then Return StringFormat("%04d/%02d/%02d %02d:%02d:%02d", $aDate[2], $aDate[0], $aDate[1], $aDate[3], $aDate[4], $aDate[5]) Else Return StringFormat("%02d/%02d/%04d %02d:%02d:%02d", $aDate[0], $aDate[1], $aDate[2], $aDate[3], $aDate[4], $aDate[5]) EndIf EndFunc ;==>_Date_Time_FileTimeToStrEdit: There is already a bug listed here: #1509 Edited February 27, 2011 by ProgAndy *GERMAN* [note: you are not allowed to remove author / modified info from my UDFs]My UDFs:[_SetImageBinaryToCtrl] [_TaskDialog] [AutoItObject] [Animated GIF (GDI+)] [ClipPut for Image] [FreeImage] [GDI32 UDFs] [GDIPlus Progressbar] [Hotkey-Selector] [Multiline Inputbox] [MySQL without ODBC] [RichEdit UDFs] [SpeechAPI Example] [WinHTTP]UDFs included in AutoIt: FTP_Ex (as FTPEx), _WinAPI_SetLayeredWindowAttributes Link to comment Share on other sites More sharing options...
lucamad Posted February 28, 2011 Author Share Posted February 28, 2011 The date is directly created with _Date_Time_FileTimeToStr, wich should return the format "YYYY/MM/DD hh:mm:ss" by default or "MM/DD/YYYY hh:mm:ss" as an alternative. So I don't know whats going wrong. Edit: Oh, its an error in _Date_Time_FileTimeToStr, the array indices are not correct. It should be this: Func _Date_Time_FileTimeToStr(ByRef $tFileTime, $bFmt = 0) Local $aDate = _Date_Time_FileTimeToArray($tFileTime) If @error Then Return SetError(@error, @extended, "") If $bFmt Then Return StringFormat("%04d/%02d/%02d %02d:%02d:%02d", $aDate[2], $aDate[0], $aDate[1], $aDate[3], $aDate[4], $aDate[5]) Else Return StringFormat("%02d/%02d/%04d %02d:%02d:%02d", $aDate[0], $aDate[1], $aDate[2], $aDate[3], $aDate[4], $aDate[5]) EndIf EndFunc ;==>_Date_Time_FileTimeToStr Edit: There is already a bug listed here: #1509 Good, many thx!! Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now