Jump to content

Recommended Posts

DXRW4E

It is other task. The task of checking the validity of the path. And it isn't carried out fully. If it isn't carried out, and the meaning of it dubious.

I believe that we are not well understood

;@DesktopDir & "\FileExists.au3" = "C:\Users\\\DXRW4E///\\Desktop\\\\\\FileExists.au3"
If FileExists("C:\Users\\\DXRW4E///\\Desktop\\\\\\FileExists.au3") Then
    MsgBox(4096, "C:\Users\\\DXRW4E///\\Desktop\\\\\\FileExists.au3", "Exists")
Else
    MsgBox(4096, "C:\Users\\\DXRW4E///\\Desktop\\\\\\FileExists.au3", "Does NOT exists")
EndIf

this is a valid path ehhhhhhhh ;), the _PathSplit() only aesthetically repair, so _PathSplit() is in line with all other AutoIt native function

#include <Array.au3>
#include <File.au3>

Local $sDrive = "", $sDir = "", $sFilename = "", $sExtension = ""
Local $aPathSplit, $sPath = "C:\Users\\\DXRW4E///\\Desktop\\\\\\FileExists.au3"

 $aPathSplit = _PathSplit($sPath, $sDrive, $sDir, $sFilename, $sExtension) ; 3.3.9.16
_ArrayDisplay($aPathSplit)

ConsoleWrite('$sDrive = ' & $sDrive & @LF & _
        '$sDir = ' & $sDir & @LF & _
        '$sDir = ' & $sFilename & @LF & _
        '$sExtension = ' & $sExtension & @LF & @LF)

;~ in $aPathSplit Return
;~ [0]|C:\Users\\\DXRW4E///\\Desktop\\\\\\FileExists.au3
;~ [1]|C:
;~ [2]|\Users\\\DXRW4E///\\Desktop\\\\\\
;~ [3]|FileExists
;~ [4]|.au3

;~ >Running:(3.3.9.16):C:\Program Files (x86)\AutoIt3\Beta\autoit3.exe "C:\Users\DXRW4E\Desktop\New AutoIt v3 Script (Beta).au3"    
;~ --> Press Ctrl+Alt+F5 to Restart or Ctrl+Break to Stop
;~ $sDrive = C:
;~ $sDir = \Users\DXRW4E\Desktop\
;~ $sDir = FileExists
;~ $sExtension = .au3

but fixes this invalid Path (as mentioned is a crazy thing, will not have to ever happen), is only a precaution nothing else

#include <Array.au3>
#include <File.au3>

Local $sDrive = "", $sDir = "", $sFilename = "", $sExtension = ""
Local $aPathSplit, $sPath = "C: \ Users \/\ DXRW4E //\\ Desktop \\\ FileExists.au3"

 $aPathSplit = _PathSplit($sPath, $sDrive, $sDir, $sFilename, $sExtension) ; 3.3.9.16
_ArrayDisplay($aPathSplit)

ConsoleWrite('$sDrive = ' & $sDrive & @LF & _
        '$sDir = ' & $sDir & @LF & _
        '$sDir = ' & $sFilename & @LF & _
        '$sExtension = ' & $sExtension & @LF & @LF)

;~ in $aPathSplit Return
;~ [0]|C: \ Users \\ DXRW4E //\\ Desktop \\\ FileExists.au3
;~ [1]|C:
;~ [2]| \ Users \/\ DXRW4E //\\ Desktop \\\
;~ [3]|FileExists
;~ [4]|.au3

;~ >Running:(3.3.9.16):C:\Program Files (x86)\AutoIt3\Beta\autoit3.exe "C:\Users\DXRW4E\Desktop\New AutoIt v3 Script (Beta).au3"
;~ --> Press Ctrl+Alt+F5 to Restart or Ctrl+Break to Stop
;~ $sDrive = C:
;~ $sDir = \Users\DXRW4E\Desktop\
;~ $sDir = FileExists
;~ $sExtension = .au3

Ciao.

Edited by DXRW4E

Share this post


Link to post
Share on other sites

Spaces may be near the ""

$sPath = @ScriptDir & '\ file.txt'
$hFile = FileOpen($sPath, 2)
If $hFile = -1 Then Exit MsgBox(0, 'error', 'error')
FileWrite($hFile, '')
FileClose($hFile)

If FileExists($sPath) Then MsgBox(0, 'Yes', $sPath)
Then you should check out the valid characters

$sText=StringRegExp($sText, '(?i)^[a-z]:(?:[\\/][^:*?"<>|]+)[\\/]?$')
Edited by AZJIO

Share this post


Link to post
Share on other sites

Hi AZJIO, is a crazy thing & with it should never happen, it means that that's not a responsibility of the _PathSplit if an is Path is invalid, as said to be 100% sure (for the path that is valid or not valid) is better to use the

however is only _PathSplit() everything else about Path (how to say in an Microsoft official way) is in AutoIt help WinApiEx ShellPath Management (#include <WinAPIShPath.au3>.)

which are those that are 100% compatible with windows

Ciao.

Edited by DXRW4E

Share this post


Link to post
Share on other sites

Unfortunately we can't always protect users from themselves.


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

Share this post


Link to post
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
Sign in to follow this  

  • Similar Content

    • By Stormgrade
      Hello,
      I'm searching the UDF GDIpProgress.au3 from ProgAndy
      None of the links in topic
       works
      Can't someone upload it please ?
    • By seadoggie01
      I'm trying to capture everything after a "#ToDo" in my scripts. I got that like this:
      (?i)[^\v]*#todo(.*) But then I thought it would be nice to use underscores to continue the ToDo... kind of like this:
      #ToDo: This is a really long explanation about something _ # that is very in-depth and needs to take up a lot of _ # space in a ToDo comment Global $variables = "Bad" I can't seem to capture everything... and maybe I'm trying to do too much with Regex... I keep trying variations of this:
      Condensed Version: (?im)[^\v]*#todo(?:([^\v]*)_\s*)*#([^\v]*) Expanded with comments (?ixm)(?# Ignore case, ignore newlines in Regex, use multiline option)# [^\v]*(?# Match leading space/s)# \#todo(?# Match the #todo)# (?:([^\v]*)_\s*)*(?# Match lines ending with _)# \#([^\v]*)(?# Last line only, no _'s)# I never seem to be able to build an array well with Regex... I saw something once about not being able to capture repeated patterns, and I think that's my issue
    • By tbwalker
      I'm trying to build a script that will eventually create a log with time stamps of the active windows used on a workstation throughout the day, but I'm having a problem figuring out how to actually get this information.  For example, if someone has Microsoft Word open, I'd like to be able to pop-up/log "word.exe" along with the full path to that file if at all possible (sort of like seeing the application DETAILS name in Windows Task Manager and being able to right-click on the name and choose "Open FIle Location" to get the full path to the file).
      Is what I'm asking even possible within the realm of AutoIt?  I have the below script as a test that gets me the current active window handle and title in a message box every 6 seconds, but for the life of me, I don't know what code I need to use to get the actual .EXE name/path of the active window. 
      #include <MsgBoxConstants.au3> Local $i = 0 Do Global $handle = WinGetHandle("[ACTIVE]") Global $title = WinGetTitle("[ACTIVE]") MsgBox(0,"Active Handle & Title",$handle & " - " & $title, 3) $i = $i + 1 Sleep(3000) Until $i = 100 Any help or suggestions would be greatly appreciated.   I don't mind figuring out the code myself, if someone could just point me in the right direction.
       
      Thanks,
      TBWalker
    • By genius257
      Inspired by PHP's preg_split.
      Split string by a regular expression.
      Also supports the same flags as the PHP equivalent.
      v1.0.1
       
      Example:
      #include "StringRegExpSplit.au3" StringRegExpSplit('splitCamelCaseWords', '(?<=\w)(?=[A-Z])') ; ['split', 'Camel', 'Case', 'Words']  
×
×
  • Create New...