Jump to content
Sign in to follow this  

Need Array help

Recommended Posts


Hey there, I am working on a "note" app which sync via sftp. I am trying to display all contents of a folder in a tree view (and then I want to select one of the note.txt files in this folder and edit it).

Anyway, I am currently stuck at displaying the folder content:

#cs ----------------------------------------------------------------------------
 AutoIt Version:
 Script Function:
Sync all notes.txt within a folder via sftp
#ce ----------------------------------------------------------------------------
; Script Start - Add your code below here
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <TreeViewConstants.au3>
#include <WindowsConstants.au3>
#include <SFTPEx.au3>
#include <Array.au3>
$MainGUI = GUICreate("MyNotes", 984, 841, 259, 141)
$Edit1 = GUICtrlCreateEdit("", 208, 72, 755, 729)
GUICtrlSetData(-1, "Edit1")
$ServerGroup = GUICtrlCreateGroup("Server", 16, 8, 195, 49)
$ServerInput = GUICtrlCreateInput("ftp.com", 24, 24, 129, 21)
$PortInput = GUICtrlCreateInput("1337", 160, 24, 45, 21)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$UserGroup = GUICtrlCreateGroup("User", 218, 8, 145, 49)
$UserInput = GUICtrlCreateInput("User", 226, 24, 129, 21)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$PasswordGroup = GUICtrlCreateGroup("Password", 370, 8, 145, 49)
$PasswordInput = GUICtrlCreateInput("Password", 378, 24, 129, 21)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$Group4 = GUICtrlCreateGroup("Status", 522, 8, 145, 49)
$Status = GUICtrlCreateLabel("Disconnected", 524, 31, 140, 17, $SS_CENTER)
GUICtrlSetColor(-1, 0xFF0000)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$ConnectButton = GUICtrlCreateButton("Connect", 682, 16, 137, 41)
$SavesyncButton = GUICtrlCreateButton("Save / Sync", 826, 16, 137, 41)
$mFile_Menu = GUICtrlCreateMenu("File")
$mSettings_Item = GUICtrlCreateMenuItem("Einstellungen", $mFile_Menu)
$mCheckUp_Item = GUICtrlCreateMenuItem("Update", $mFile_Menu)
GUICtrlCreateMenuItem("", $mFile_Menu)
$mExit_Item = GUICtrlCreateMenuItem("Exit", $mFile_Menu)
$mHelp_Menu = GUICtrlCreateMenu("?")
$mAbout_Item = GUICtrlCreateMenuItem("About", $mHelp_Menu)
While 1
    Switch GUIGetMsg()
        Case $GUI_EVENT_CLOSE 
        Case $mExit_Item 
Case $ConnectButton
$sPath = 'psftp.exe'
$hSession = _SFTP_Open($sPath)
$sUsername = GUICtrlRead($UserInput)
$sPassword = GUICtrlRead($PasswordInput)
$sServerName = GUICtrlRead($ServerInput)
$iServerPort = GUICtrlRead($PortInput)
$hConnection = _SFTP_Connect ( $hSession, $sServerName , $sUsername , $sPassword , $iServerPort  )
Local $Array[10]
_SFTP_ListToArray( $hConnection  )

Share this post

Link to post
Share on other sites


Look at my ChooseFileFolder UDF (the link is in my sig) - it will do this for you. :)


Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind._______My UDFs:


ArrayMultiColSort ---- Sort arrays on multiple columns
ChooseFileFolder ---- Single and multiple selections from specified path treeview listing
Date_Time_Convert -- Easily convert date/time formats, including the language used
ExtMsgBox --------- A highly customisable replacement for MsgBox
GUIExtender -------- Extend and retract multiple sections within a GUI
GUIFrame ---------- Subdivide GUIs into many adjustable frames
GUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView items
GUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeView
Marquee ----------- Scrolling tickertape GUIs
NoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxes
Notify ------------- Small notifications on the edge of the display
Scrollbars ----------Automatically sized scrollbars with a single command
StringSize ---------- Automatically size controls to fit text
Toast -------------- Small GUIs which pop out of the notification area


Share this post

Link to post
Share on other sites

As _SFTP_ListToArray() returns an array, you should write

$Array = _SFTP_ListToArray($hConnection)

Share this post

Link to post
Share on other sites

Yes, and the code should be enclosed within code tags, and not plain text tags. :P


Paster - Main function is to paste text, but has more functions. (No longer mantained, switched to String Trigger)

OpenW - Open With... alternative, Open any file with any application, set it's icon, set application as default.

Renamer - Rename files and folders, remove portions of text from the filename etc.

GPO Tool - Export/Import Group policy settings.

BeatsPlayer - Music player.

Params Tool - Right click an exe to see it's parameters or execute them.

String Trigger - Triggers pasting text or applications or internet links on specific strings.

Regedit Control - Registry browsing history, quickly jump into any saved key.

Time4Shutdown - Write the time for shutdown in minutes.

Power Profiles Tool - Set a profile as active, delete, duplicate, export and import.

Firefox Profile Backup - Backup/restore previously saved profile.

Finished Task Shutdown - Shuts down pc when specified window/Wndl/process closes.

NetworkSpeedShutdown - Shuts down pc if download speed goes under "X" Kb/s.

IUIAutomation - Topic with framework and examples


Share this post

Link to post
Share on other sites


As _SFTP_ListToArray() returns an array, you should write

$Array = _SFTP_ListToArray($hConnection)


Thanks you , your UDF is really nice BUT:

How to I tell your udf to use the sftp-folder as $sRoot ?

Share this post

Link to post
Share on other sites

Not sure you need a treeview

You can get your notes names list with _SFTP_ListToArray from the concerned remote folder and put the array into a list or listview, then select one note,  use _SFTP_FileGet to get the .txt to a temp file and then edit it

Share this post

Link to post
Share on other sites

mikell: your way sounds even more complicated :S

So I still wonder how to tell the udf that $sRoot is my sftp-folder :P

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