Jump to content
Sign in to follow this  

Recommended Posts

Hi all, Below is my script,

Pls advise me if any wrong on that....File exit in location but the return -1.

FileOpen($file, 0)
   $line = FileReadLine($file)
   MsgBox(0,'',$line)
FileClose($file)

Local $aArray = _FileListToArrayRec($serverpath, "*|*.txt", $FLTAR_FILES, $FLTAR_RECUR, $FLTAR_SORT, $FLTAR_NOPATH)
If @error Then
        MsgBox($MB_SYSTEMMODAL, "Ooops!", "No files found")
    Else
    ;_ArrayDisplay($aArray, "Sorted tree")
           Local $hSearch = FileFindFirstFile($line)
         MsgBox(0,'',$hSearch)

 

Edited by Rammanan

Share this post


Link to post
Share on other sites

@Rammanan,

It means that there is no value found from your $file, check with the correct rendering on that and see help for more details. Also, make sure that your $serverpath ends with "\" to identify that "*|*.txt" that you are looking for.

Edited by KickStarter15

Programming is "To make it so simple that there are obviously no deficiencies" or "To make it so complicated that there are no obvious deficiencies" by C.A.R. Hoare.

Share this post


Link to post
Share on other sites

@KickStarter15

Thanks for reply. $file have value..Went i test with "FileExists" there have return true  but went i use "FileFindFirstFile" return is false. 

So my problem is on  "FileFindFirstFile". Pls advise

 

 

 

Share this post


Link to post
Share on other sites

@Rammanan

1. In your FileReadLine($file) - output is valid for only line 1 reading.

2. Your _FileListToArrayRec() also a valid wherein all files found from $serverpath. However,

3. Your FileFindFirstFile($line) declares only the line found in your $file.

Q: Does your $file a path or a specific file. If file then it will surely returns false.

Try below and let me know what do you get after.

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

$file = @ScriptDir & "\Test.Txt"
FileOpen($file, 0)
   $line = FileReadLine($file)
   MsgBox(0,'',$line)
FileClose($file)

Local $aArray = _FileListToArrayRec($serverpath, "*|*.txt", $FLTAR_FILES, $FLTAR_RECUR, $FLTAR_SORT, $FLTAR_NOPATH)
If @error Then
        MsgBox($MB_SYSTEMMODAL, "Ooops!", "No files found")
Else
;~     _ArrayDisplay($aArray, "Sorted tree")
           Local $hSearch = FileFindFirstFile("*")
           While 1
            $sFileName = FileFindNextFile($hSearch)
            If @error Then ExitLoop
              $iResult = MsgBox(BitOR($MB_SYSTEMMODAL, $MB_OKCANCEL), "", "File: " & $sFileName)
            If $iResult <> $IDOK Then ExitLoop
            MsgBox(0,'',$hSearch)
         WEnd
EndIf

 


Programming is "To make it so simple that there are obviously no deficiencies" or "To make it so complicated that there are no obvious deficiencies" by C.A.R. Hoare.

Share this post


Link to post
Share on other sites

Not really sure what you're trying to do but can you try:

#include <Array.au3>
#include <File.au3>
Local $sServerPath = "\\Server\Share"
Local $sFileName = @ScriptDir & "\Filename.txt"
Local $sFileLine = FileReadLine($sFileName, 1)
    If $sFileLine = "" Then Exit MsgBox(32, "Error" "No data")
MsgBox(32,'',$sFileLine)

Local $aArray = _FileListToArrayRec($sServerPath, "*|*.txt", $FLTAR_FILES, $FLTAR_RECUR, $FLTAR_SORT, $FLTAR_NOPATH)
    If @error Then Exit MsgBox(32, "Ooops!", "No files found")
Local $aSearch = _ArrayFindAll($aArray, $sFileName, 1)
    If @error Then Exit MsgBox(32, "Ooops!", "Search returned 0 results.")
For $i = 0 To UBound($aSearch) - 1
    MsgBox(32, "Found", $sFileLine & " found on line: " & $aSearch[$i])
Next

 

Share this post


Link to post
Share on other sites
11 minutes ago, Rammanan said:

My $file is a file.

$file  = ("C:\New folder\macadd.txt")

I mean, the line inside that file.^_^

 

13 minutes ago, Rammanan said:

After test ur script still i get false.

What is the function that returns false, is it FileFindFirstFile() or _FileListToArrayRec().


Programming is "To make it so simple that there are obviously no deficiencies" or "To make it so complicated that there are no obvious deficiencies" by C.A.R. Hoare.

Share this post


Link to post
Share on other sites

@KickStarter15 and @Subz

I trying to auto copy expired license from server to local PC once pop out the error on program running.
The license file name follow with PC mac address. Example "Clotho-E839353E05DC.lic".

Once pop out the error msg program will get mac add and save in .txt at c drive.
So my program need read the .txt file and search for same file name at server and copy to local.

 

Edited by Rammanan

Share this post


Link to post
Share on other sites

So you should be able to use something like:

#include <Array.au3>
#include <File.au3>
Local $sServerPath = "\\Server\Share"
Local $sFileCopy = False
Local $sFileName = @ScriptDir & "\Filename.txt"
Local $sFileLine = FileReadLine($sFileName, 1)
    If $sFileLine = "" Then Exit MsgBox(32, "Error", "No data")
MsgBox(32,'',$sFileLine)

Local $aArray = _FileListToArrayRec($sServerPath, "*|*.txt", 1, 1, 0, 2)
    If @error Then Exit MsgBox(32, "Ooops!", "No files found")
For $i = 1 To $aArray[0]
    If StringInStr($aArray[$i], $sFileLine) Then
        $sFileCopy = $aArray[$i]
        ExitLoop
    EndIf
Next
If $sFileCopy Then MsgBox(32, "File Found", $sFileCopy)

 

Share this post


Link to post
Share on other sites

Actually faster method:

#include <Array.au3>
#include <File.au3>
Local $sServerPath = "\\Server\Share"
Local $sFileName = @ScriptDir & "\Filename.txt"
Local $sFileLine = FileReadLine($sFileName, 1)
    If $sFileLine = "" Then Exit MsgBox(32, "Error", "No data")
MsgBox(32,'',$sFileLine)

Local $aArray = _FileListToArrayRec($sServerPath, "*|*.txt", 1, 0, 0, 2)
    If @error Then Exit MsgBox(32, "Ooops!", "No files found")
Local $iSearch = _ArraySearch($aArray, $sFileLine, 1, 0, 0, 1)
        If $iSearch = -1 Then Exit MsgBox(32, "File Not Found", "Search returned 0 results")
 MsgBox(32, "File Found", $aArray[$iSearch])

 

Edited by Subz

Share this post


Link to post
Share on other sites

As always Subz. One of the best.:D


Programming is "To make it so simple that there are obviously no deficiencies" or "To make it so complicated that there are no obvious deficiencies" by C.A.R. Hoare.

Share this post


Link to post
Share on other sites

 

@KickStarter15 @Subz

Problem is on local PC have two IP address. So how to get mac address from IP connect to connect to server.                                                                 
Different with two IP is                                                                                                                                                                                                                                                                         Example : 192.168.30.111 and 192.168.0.2                                                                                                                                                                                                                                                    So i need get mac from 192.168.30.111 not from 192.168.0.2. This IP 192.168.0.2 same for all PC .
Please advice.

Share this post


Link to post
Share on other sites

Try something like:

#include <Array.au3>
Local $aMacAddress = _GetMacAddress()
_ArrayDisplay($aMacAddress)

Func _GetMacAddress($_sComputerName = @ComputerName)
    Local $aAdapter[1][2]
    Local $objWMIService = ObjGet("winmgmts:{impersonationLevel=Impersonate}!\\" & $_sComputerName & "\root\cimv2")
        If Not IsObj($objWMIService) Then Exit MsgBox(48, "Error", "Unable to connect to " & $_sComputerName)
    Local $oAdapters = $objWMIService.ExecQuery ("SELECT * FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled = True")
    For $oAdapter in $oAdapters
        For $i = 0 To UBound($oAdapter.IPAddress) - 1
            ;~ Skip Null IPAddress
            If $oAdapter.IPAddress = Null Then ContinueLoop
            ;~ Skip IPAddress 192.168.0.2
            If $oAdapter.IPAddress($i) = "192.168.0.2" Then ContinueLoop
            ;~ Skip ipv6 IPAddresses
            If StringInStr($oAdapter.IPAddress($i), ":") Then ContinueLoop
            _ArrayAdd($aAdapter, $oAdapter.IPAddress($i) & "|" & $oAdapter.MacAddress)
        Next
    Next
    $aAdapter[0][0] = UBound($aAdapter) - 1
    Return $aAdapter
EndFunc

 

Share this post


Link to post
Share on other sites
23 hours ago, Subz said:

 

 

 

Local $sFileLine = FileReadLine($LocalPath, 1)
    If $sFileLine = "" Then Exit MsgBox(32, "Error", "No File Create. Please contact your system administrator")
;MsgBox(32,'',$sFileLine)
FileClose($LocalPath)
Local $aArray = _FileListToArrayRec($sServerPath, "*|*.txt", 1, 1, 0, 2)
    If @error Then Exit MsgBox(32, "Error", "Cannot Found License in server. Please contact your system administrator ")
For $i = 1 To $aArray[0]
    If StringInStr($aArray[$i], $sFileLine) Then
        $sFileCopy = $aArray[$i]
        ExitLoop
    EndIf
Next
If $sFileCopy Then MsgBox(32, "File Found", $sFileCopy)
   FileCopy($sFileCopy,$localpath)
   FileMove($localpath,$sFileRenamed)

This script work good.But i cannot copy $sFilecopy to local.
Please advice.

Edited by Rammanan

Share this post


Link to post
Share on other sites

Can you change:

If $sFileCopy Then MsgBox(32, "File Found", $sFileCopy)

To

If $sFileCopy Then MsgBox(32, "Copy File", "Copy: " & $sFileCopy & " to " & $LocalPath)

Please let us know the result.

Also can you use the flag 9 for FileCopy example:

FileCopy($sFileCopy,$localpath, 9) ;~ $FC_OVERWRITE(1) + $FC_CREATEPATH(8)

 

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  

  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • By shelly
      I have to press tab to reach a selected button then double click on that
      Here's my script but its not working:
      WinActivate("Policy Decisions -- Webpage Dialog","")
      Sleep(3000)
      Send("{TAB}")
      Send("{TAB}")
      Send("{TAB}")                    // at this point its working according to my need  but double click is not working
      Mouseclick("Left",510, 320, 2, 0)

    • By TheDcoder
      See this thread for info:
    • By nooneclose
      Why can I not click on either of my input fields?
      #Region ### START Koda GUI section ### Form= Global $Form1 = GUICreate("Form1", 730, 437, 192, 124) ;GUISetFont(14, 800, 0, "MS Sans Serif") GUISetBkColor(0xC0DCC0) Global $Label1 = GUICtrlCreateLabel("Enter your Password. UserName is auto filled", 62, 40, 604, 41, $SS_CENTER) GUICtrlSetFont(-1, 26, 800, 0, "MS Sans Serif") Global $Label2 = GUICtrlCreateLabel("User Name:", 120, 130, 604, 31, $SS_LEFT) GUICtrlSetFont(-1, 20, 800, 0, "MS Sans Serif") Global $Label3 = GUICtrlCreateLabel("Password:", 135, 210, 604, 31, $SS_LEFT) GUICtrlSetFont(-1, 20, 800, 0, "MS Sans Serif") Global $Input1 = GUICtrlCreateInput(@UserName, 274, 130, 185, 32) GUICtrlSetFont(-1, 14, 800, 1, "MS Sans Serif") Global $Input2 = GUICtrlCreateInput("Password", 274, 210, 185, 32, $ES_PASSWORD) GUICtrlSetFont(-1, 14, 800, 0, "MS Sans Serif") Global $OK = GUICtrlCreateButton("OK", 274, 270, 185, 57) GUICtrlSetFont(-1, 20, 800, 0, "MS Sans Serif") GUISetState(@SW_SHOW) #EndRegion ### END Koda GUI section ### While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE Exit Case $OK Global $UserName = GUICtrlRead($Input1) Global $PassWord = GUICtrlRead($Input2) ExitLoop EndSwitch WEnd ; Delete the GUI window GUIDelete()  
    • By cruisepandey
      Hi, 
      I have a string like this : 
      Global $Msga = "urrent directory is /send.  (Submission of file with log number 29381077284 is confirmed)";
      I want to extract the number 29381077284  from the string. I did StringSplit to split based on "(" and then use space to reach there, But it's not a good choice. 
      Can anyone help me with regular expression to find the number from String using AutoIT. TIA
    • By nooneclose
      I want wanting to run multiple tests on my company website. Sadly the process I want to automate requires opening a File Explorer to add an attachment. Is there a way in to automate a Chrome opened File Explorer?
      (I am using webdriver to automate the other 99% of the process just fine. But when I have it click on attach file and chrome opens a file explorer I do not know how to handle it.) 
      Any help would be greatly appreciated. 
×
×
  • Create New...