02-04-2011, 07:58 PM
Function dlg_ftp_queue
Macro exec_ftp_queue
\Dialog_Editor
;Shows dialog where user can select files and ftp.
;Saves the list in "$my qm$\ftp queue.csv".
function# hDlg message wParam lParam
if(hDlg) goto messages
str controls = "3"
str qmg3x
if(!ShowDialog("dlg_ftp_queue" &dlg_ftp_queue &controls)) ret
qmg3x.setfile("$my qm$\ftp queue.csv")
;BEGIN DIALOG
;0 "" 0x90C80AC8 0x0 0 0 223 135 "Dialog"
;1 Button 0x54030001 0x4 120 116 48 14 "OK"
;2 Button 0x54030000 0x4 170 116 48 14 "Cancel"
;3 QM_Grid 0x56031041 0x0 0 0 224 114 "0x0,0,0,0,0x0[]File,,16,[]FTP,,1,"
;END DIALOG
;DIALOG EDITOR: "" 0x2030300 "*" "" ""
ret
;messages
sel message
,case WM_INITDIALOG
,case WM_DESTROY
,case WM_COMMAND goto messages2
,case WM_NOTIFY goto messages3
ret
;messages2
sel wParam
,case IDOK
,case IDCANCEL
ret 1
;messages3
NMHDR* nh=+lParam
sel nh.idFrom
,case 3
,GRID.QM_NMLVDATA* cd=+nh
,sel nh.code
,,case GRID.LVN_QG_BUTTONCLICK ;;when user clicks button
,,if cd.subitem=0
,,,if(OpenSaveDialog(0 _s)) _s.setwintext(cd.hctrl)
,,
,,case GRID.LVN_QG_COMBOFILL ;;when user clicks combo box arrow
,,if cd.subitem=1
,,,TO_CBFill cd.hcb "ftp.one.com[]ftp.two.com[]ftp.three.com"Macro exec_ftp_queue
;Opens file created by dlg_ftp_queue, and uploads all.
str sFile="$my qm$\ftp queue.csv"
ICsv x=CreateCsv(1)
ICsv xe=CreateCsv(1) ;;for failed uploads
x.FromFile(sFile)
int i
for i 0 x.RowCount
,;get file and ftp from csv
,str s1 s2
,s1=x.Cell(i 0)
,s2=x.Cell(i 1)
,out "file: %s, ftp: %s" s1 s2
,
,;now upload
,int failed=0
,err-
,;...
,;...
,err+ failed=1
,if(failed) xe.AddRowSA(-1 2 &s1)
if xe.RowCount
,xe.ToFile(sFile) ;;save failed uploads. Then you can run this macro again to upload them.
else
,del- sFile