Leaderboard
Popular Content
Showing content with the highest reputation on 08/14/2018 in all areas
-
Version 1.6.3.0
17,293 downloads
Extensive library to control and manipulate Microsoft Active Directory. Threads: Development - General Help & Support - Example Scripts - Wiki Previous downloads: 30467 Known Bugs: (last changed: 2020-10-05) None Things to come: (last changed: 2020-07-21) None BTW: If you like this UDF please click the "I like this" button. This tells me where to next put my development effort1 point -
Multidimensional arrays in multiple lines
TrashBoat reacted to FrancescoDiMuro for a topic
Try in this way: Global $map[5][5] = [[0,0,0,0,0], _ [0,0,0,0,0], _ [0,0,0,0,0], _ [0,0,0,0,0], _ [0,0,0,0,0]]1 point -
_IEPropertyGet Example Off when using laptop. [Solved]
Danp2 reacted to SkysLastChance for a topic
1 point -
Well, almost The timezone is ignored, at least in all the propositions made until now. The OP didn't tell us clearly which "time" is needed: UTC, local, origin. Here's how to properly convert an ISO-8601 stamp into what OP calls "readable format" (here I assume UTC aka Zulu time): Local $sTestString = [ _ '2018-08-13T16:39:23+01:00 ', _ '2018-08-13T16:39:23+09:30 ', _ '2018-08-13T16:39:23-09:00 ', _ '2018-03-01T01:39:23+02:00 ', _ '2017-12-31T23:39:23-01:00 ' _ ] For $t In $sTestString ConsoleWrite( $t & @TAB & _ _IsoDateTimeToZulu($t) & @TAB & _ @LF) Next Func _IsoDateTimeToZulu($s) Local $sDT = StringLeft($s, 19) $sDT = StringRegExpReplace($sDT, '(\d{4}).(\d\d).(\d\d).(.{8})', '$1/$2/$3 $4') Local $iH = -Int(StringMid($s, 20, 3)) Local $iM = Int(($iH < 0 ? '-' : '') & StringMid($t, 24, 2)) Return StringRegExpReplace(_DateAdd('h', $iH, _DateAdd('n', $iM, $sDT)), '(\d{4})(/\d\d/)(\d\d)(.{9})', '$3$2$1$4') EndFunc It's trivial to convert to either origin time (just ignore timezone) or local time (add local agjustments) instead.1 point
-
Anything wrong with the standard incorporated UDF's I wrote over a decade ago, which supports the ansi date/time notation? #Include<date.au3> Local $sTestString = '2018-08-13T16:39:23+01:00 ' $sConversion = _dateTimeFormat($sTestString,1) MsgBox(0, "", $sConversion) $sConversion = _dateTimeFormat($sTestString,2) & " " & _dateTimeFormat($sTestString,5) MsgBox(0, "", $sConversion)1 point
-
Date/Time conversion issue
Earthshine reacted to czardas for a topic
This is a bit brute force with less lines. I imagine someone might jump in and perform a clever trick. Local $sTestString = '2018-08-13T16:39:23+01:00 ' Local $sConversion = StringRegExpReplace($sTestString, '(\d+)(\D)(\d+)(\D)(\d+)(\D)([^\+]+)(.+)', '$5/$3/$1 $7') MsgBox(0, "", $sConversion)1 point -
Changing the extension of file
Earthshine reacted to jchd for a topic
@Shaik, Changing *.xls into *.xlsx isn't simply changing the extension, it's mainly changing the file format. Only Excel (and other spreadsheet compatible programs like Libre Office) can read *.xls and convert into *.xlsx. Same as if you get from some link a text file, say "story.txt". Storing it under "story.pdf" will not automagically make it a PDF file! So go with what @AutoBert suggested: save the .xls, open it with AutoIt _Excel_* functions and save it with the other .xlsx format.1 point -
Using Xpdf tools : ; #FUNCTION# ==================================================================================================================== ; Name...........: _XFDF_Info ; Description....: Retrives informations from a PDF file ; Syntax.........: _XFDF_Info ( "File" [, "Info"] ) ; Parameters.....: File - PDF File. ; Info - The information to retrieve ; Return values..: Success - If the Info parameter is not empty, returns the desired information for the specified Info parameter ; - If the Info parameter is empty, returns an array with all available informations ; Failure - 0, and sets @error to : ; 1 - PDF File not found ; 2 - Unable to find the external programm ; Remarks........: The array returned is two-dimensional and is made up as follows: ; $array[1][0] = Label of the first information (title, author, pages...) ; $array[1][1] = value of the first information ; ... ; =============================================================================================================================== Func _XFDF_Info($sPDFFile, $sInfo = "") Local $sXPDFInfo = @ScriptDir & "\pdfinfo.exe" If NOT FileExists($sPDFFile) Then Return SetError(1, 0, 0) If NOT FileExists($sXPDFInfo) Then Return SetError(2, 0, 0) Local $iPid = Run(@ComSpec & ' /c "' & $sXPDFInfo & ' "' & $sPDFFile & '"', @ScriptDir, @SW_HIDE, 2) Local $sResult While 1 $sResult &= StdoutRead($iPid) If @error Then ExitLoop WEnd Local $aInfos = StringRegExp($sResult, "(?m)^(.*?): +(.*)$", 3) If Mod( UBound($aInfos, 1), 2) = 1 Then Return SetError(3, 0, 0) Local $aResult [ UBound($aInfos, 1) / 2][2] For $i = 0 To UBound($aInfos) - 1 Step 2 If $sInfo <> "" AND $aInfos[$i] = $sInfo Then Return $aInfos[$i + 1] $aResult[$i / 2][0] = $aInfos[$i] $aResult[$i / 2][1] = $aInfos[$i + 1] Next If $sInfo <> "" Then Return "" Return $aResult EndFunc ; ---> _XFDF_Info ; #FUNCTION# ==================================================================================================================== ; Name...........: _XPDF_Search ; Description....: Retrives informations from a PDF file ; Syntax.........: _XFDF_Info ( "File" [, "String" [, Case = 0 [, Flag = 0 [, FirstPage = 1 [, LastPage = 0]]]]] ) ; Parameters.....: File - PDF File. ; String - String to search for ; Case - If set to 1, search is case sensitive (default is 0) ; Flag - A number to indicate how the function behaves. See below for details. The default is 0. ; FirstPage - First page to convert (default is 1) ; LastPage - Last page to convert (default is 0 = last page of the document) ; Return values..: Success - ; Flag = 0 - Returns 1 if the search string was found, or 0 if not ; Flag = 1 - Returns the number of occcurrences found in the whole PDF File ; Flag = 2 - Returns an array containing the number of occurrences found for each page ; (only pages containing the search string are returned) ; $array[0][0] - Number of matching pages ; $array[0][1] - Number of occcurrences found in the whole PDF File ; $array[n][0] - Page number ; $array[n][1] - Number of occcurrences found for the page ; Failure - 0, and sets @error to : ; 1 - PDF File not found ; 2 - Unable to find the external programm ; =============================================================================================================================== Func _XPDF_Search($sPDFFile, $sSearch, $iCase = 0, $iFlag = 0, $iStart = 1, $iEnd = 0) Local $sXPDFToText = @ScriptDir & "\pdftotext.exe" Local $sOptions = " -layout -f " & $iStart Local $iCount = 0, $aResult[1][2] = [[0, 0]], $aSearch, $sContent, $iPageOccCount If NOT FileExists($sPDFFile) Then Return SetError(1, 0, 0) If NOT FileExists($sXPDFToText) Then Return SetError(2, 0, 0) If $iEnd > 0 Then $sOptions &= " -l " & $iEnd Local $iPid = Run($sXPDFToText & $sOptions & ' "' & $sPDFFile & '" -', @ScriptDir, @SW_HIDE, 2) While 1 $sContent &= StdoutRead($iPid) If @error Then ExitLoop WEnd Local $aPages = StringSplit($sContent, chr(12) ) For $i = 1 To $aPages[0] $iPageOccCount = 0 While StringInStr($aPages[$i], $sSearch, $iCase, $iPageOccCount + 1) If $iFlag <> 1 AND $iFlag <> 2 Then $aResult[0][1] = 1 ExitLoop EndIf $iPageOccCount += 1 WEnd If $iPageOccCount Then Redim $aResult[ UBound($aResult, 1) + 1][2] $aResult[0][1] += $iPageOccCount $aResult[0][0] = UBound($aResult) - 1 $aResult[ UBound($aResult, 1) - 1 ][0] = $i + $iStart - 1 $aResult[ UBound($aResult, 1) - 1 ][1] = $iPageOccCount EndIf Next If $iFlag = 2 Then Return $aResult Return $aResult[0][1] EndFunc ; ---> _XPDF_Search ; #FUNCTION# ==================================================================================================================== ; Name...........: _XPDF_ToText ; Description....: Converts a PDF file to plain text. ; Syntax.........: _XPDF_ToText ( "PDFFile" , "TxtFile" [ , FirstPage [, LastPage [, Layout ]]] ) ; Parameters.....: PDFFile - PDF Input File. ; TxtFile - Plain text file to convert to ; FirstPage - First page to convert (default is 1) ; LastPage - Last page to convert (default is last page of the document) ; Layout - If true, maintains (as best as possible) the original physical layout of the text ; If false, the behavior is to 'undo' physical layout (columns, hyphenation, etc.) ; and output the text in reading order. ; Default is True ; Return values..: Success - 1 ; Failure - 0, and sets @error to : ; 1 - PDF File not found ; 2 - Unable to find the external program ; =============================================================================================================================== Func _XPDF_ToText($sPDFFile, $sTXTFile, $iFirstPage = 1, $iLastPage = 0, $bLayout = True) Local $sXPDFToText = @ScriptDir & "\pdftotext.exe" Local $sOptions If NOT FileExists($sPDFFile) Then Return SetError(1, 0, 0) If NOT FileExists($sXPDFToText) Then Return SetError(2, 0, 0) If $iFirstPage <> 1 Then $sOptions &= " -f " & $iFirstPage If $iLastPage <> 0 Then $sOptions &= " -l " & $iLastPage If $bLayout = True Then $sOptions &= " -layout" Local $iReturn = ShellExecuteWait ( $sXPDFToText , $sOptions & ' "' & $sPDFFile & '" "' & $sTXTFile & '"', @ScriptDir, "", @SW_HIDE) If $iReturn = 0 Then Return 1 Return 0 EndFunc ; ---> _XPDF_ToText1 point
-
There is a pseudo-explanation for the Excel behavior. Julian date count time from noon on November 24, 4714 B.C., i.e. -4714/11/24 12:00:00 but it looks like Excel project was reluctant to use a start date that far in history, and they seem to have decided that the second day would be 01/01/1900 (and they goofed for the first day which should display 31/12/1899 instead of a simple 0, by their logic). That's typical of the bad choices made in Excel and other MS products, though it might be for compatibility reason with previous broken spreadsheets. Edit: I just noticed incidently that it looks like (can't be sure) that Delphi displays 1899-12-30 00:00:00. for DateTime stamps having a value of 0.1 point
-
How to disable ALL controls of a GUI at once?
JoshuaBarnette reacted to Melba23 for a topic
supersonic, Just run a loop from the first ControlID to the last: #include <GUIConstantsEx.au3> $hGUI = GUICreate("Test", 500, 500) $iStart = GUICtrlCreateDummy() GUICtrlCreateButton("Press", 10, 10, 80, 30) GUICtrlCreateButton("Press", 10, 50, 80, 30) GUICtrlCreateButton("Press", 10, 90, 80, 30) GUICtrlCreateButton("Press", 10, 130, 80, 30) GUICtrlCreateButton("Press", 10, 170, 80, 30) GUICtrlCreateButton("Press", 10, 210, 80, 30) $iEnd = GUICtrlCreateDummy() GUISetState() While 1 Switch GUIGetMsg() Case $GUI_EVENT_CLOSE Exit Case $iStart To $iEnd For $i = $iStart To $iEnd GUICtrlSetState($i, $GUI_DISABLE) Next EndSwitch WEndOf course if you have stored the controlIDs of your first and last controls, you can use those rather than the Dummy IDs. But please read this post where I explain how ControlIDs work and why using them in loops can be problematic. The earlier code in the same topic shows similar loops using ControlIds to the one above. I hope that helps. M231 point