Can't find the information you are looking for here? Then leave a message over on our WinBatch Tech Support Forum.
Keywords: File Save As SaveAs
;#DefineFunction FileSaveAs(filetypes) ;============================================================ ;============================================================ ;============================================================ GoSub definefuncs DirChange(DirScript()) ; Set root directory currentdirectory = "C:\" types = StrCat("Text files - *.txt",@TAB,"WIL Files - *.wbt") ; Set to what you need ; types = strcat("*.txt",@tab,"*.wbt") ; Set to what you need firsttype = ItemExtract(1,types,@TAB) filetype = StrTrim(ItemExtract(2,firsttype,"-")) filesanddirs = GetFilesAndDirs(filetype) #DefineSubRoutine FSCB(FS_Handle,FS_Message,FS_ID,rsvd1,rsvd2) ;DialogprocOptions Constants MSG_INIT=0 ; The one-time initilization MSG_TIMER=1 ; Timer event MSG_BUTTONPUSHED=2 ; Pushbutton or Picturebutton MSG_RADIOPUSHED=3 ; Radiobutton clicked MSG_CHECKBOX=4 ; Checkbox clicked MSG_EDITBOX=5 ; Editbox or Multilinebox MSG_FILESELECT=6 ; Filelistbox MSG_ITEMSELECT=7 ; Itembox MSG_COMBOCHANGE=8 ; Combobox/Droplistbox MSG_CALENDAR=9 ; Calendar date change MSG_SPINNER=10 ; Spinner number change MSG_CLOSEVIA49=11 ; Close clicked (Enabled via Intcontrol 49) MSG_FILEBOXDOUBLECLICK=12 ; Get double-click message on a FileListBox MSG_ITEMBOXDOUBLECLICK=13 ; Get double-click message on an ItemBox DPO_DISABLESTATE=1000 ; codes -1=GetSetting 0=EnableDialog 1=DisableDialog DPO_CHANGEBACKGROUND=1001 ; -1=GetSetting otherise bitmap or color string ;DialogControlState Constants DCSTATE_SETFOCUS=1 ; Give Control Focus DCSTATE_QUERYSTYLE=2 ; Query control's style DCSTATE_ADDSTYLE=3 ; Add control style DCSTATE_REMOVESTYLE=4 ; Remove control style DCSTATE_GETFOCUS=5 ; Get control that has focus DCSTYLE_INVISIBLE=1 ; Set Control Invisible DCSTYLE_DISABLED=2 ; Set Control Disabled DCSTYLE_NOUSERDATA=4 ; Note: Setable via DialogControlState function ONLY SPINNER control only DCSTYLE_READONLY=8 ; Sets control to read-only (user cannot type in data) EDITBOX MULTILINEBOX SPINNER DCSTYLE_PASSWORD=16 ; Sets 'password mode' where only *'s are displayed EDITBOX DCSTYLE_DEFAULTBUTTON=32 ; Sets a button as a the default button PUSHBUTTON PICTUREBUTTON DCSTYLE_DIGITSONLY=64 ; Set edit box to accept digits only EDITMOX MULTILINEBOX DCSTYLE_FLAT=128 ; Makes a 'flat' hyperlink-looking button PUSHBUTTON PICTUREBUTTON ;DialogControlSet / DialogControlGet Constants DC_CHECKBOX=1 ; CHECKBOX DC_RADIOBUTTON=2 ; RADIOBUTTON DC_EDITBOX=3 ; EDITBOX MULTILINEBOX DC_TITLE=4 ; PICTURE RADIOBUTTON CHECKBOX PICTUREBUTTON VARYTEXT STATICTEXT GROUPBOX PUSHBUTTON DC_ITEMBOXCONTENTS=5 ; ITEMBOX FILELISTBOX DROPLISTBOX DC_ITEMBOXSELECT=6 ; ITEMBOX FILELISTBOX DROPLISTBOX DC_CALENDAR=7 ; CALENDAR DC_SPINNER=8 ; SPINNER DC_MULTITABSTOPS=9 ; MULTILINEBOX DC_ITEMSCROLLPOS=10 ; ITEMBOX FILELISTBOX DC_BACKGROUNDCOLOR=11 ; RADIOBUTTON CHECKBOX VARYTEXT STATICTEXT GROUPBOX PUSHBUTTON ITEMBOX FILELISTBOX DROPLISTBOX SPINNER EDITBOX MULTILINEBOX DC_PICTUREBITMAP=12 ; PICTURE PICTUREBUTTON DC_TEXTCOLOR=13 ; RADIOBUTTON CHECKBOX VARYTEXT STATICTEXT GROUPBOX PUSHBUTTON ITEMBOX FIELLISTBOX DROPLISTBOX SPINNER EDITBOX MULTILINEBOX DC_ITEMBOXADD=14 ; ITEMBOX FILELISTBOX DROPLISTBOX DC_ITEMBOXREMOVE=15 ; ITEMBOX FILELISTBOX DROPLISTBOX Switch FS_Message Case MSG_INIT DialogProcOptions(FS_Handle,MSG_BUTTONPUSHED,@TRUE) DialogProcOptions(FS_Handle,MSG_EDITBOX,@TRUE) DialogProcOptions(FS_Handle,MSG_COMBOCHANGE,@TRUE) DialogProcOptions(FS_Handle,MSG_ITEMBOXDOUBLECLICK,@TRUE) DialogProcOptions(FS_Handle,MSG_ITEMSELECT,@TRUE) DialogControlSet(FS_Handle,008,DC_ITEMBOXSELECT,firsttype) Return(-1) Case MSG_BUTTONPUSHED Switch FS_ID Case 001 ; Save filename = DialogControlGet(FS_Handle,007,DC_EDITBOX) If filename == "" Then Return(-2) currentdir = DirGet() If FileExtension(filename) == "" ext = ItemExtract(2,filetype,".") SaveAsName = StrCat(currentdir,filename,".",ext) Else SaveAsName = StrCat(currentdir,filename) EndIf Return(-1) Case 002 ; Cancel SaveAsName = "*error*" Return(-1) Case 009 ; Move up one level (parent directory) If currentdirectory == "C:\" Then Break(-2) DirChange("..") currentdirectory = DirGet() filesanddirs = GetFilesAndDirs(filetype) DialogControlSet(FS_Handle,004,DC_EDITBOX,currentdirectory) DialogControlSet(FS_Handle,011,DC_ITEMBOXCONTENTS,filesanddirs) Return(-2) Case 010 ; Create new directory While @TRUE newdirname = AskLine("Create New Directory","Enter the new directory name:","") dirchars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890$%%'`-@{}~!#()&_^+,.=[]" test1 = StrClean(newdirname,dirchars,"",@FALSE,1) If StrLen(test1) > 0 Message("Error!","Invalid characters entered in new directory name") Continue EndIf Break EndWhile If newdirname == "" Then Return(-2) ErrorMode(@OFF) ret = DirMake(newdirname) ErrorMode(@CANCEL) If !ret Message("Error","Unable to create directory - %newdirname%") Return(-2) EndIf filesanddirs = StrCat(filesanddirs,@TAB,"[",newdirname,"]") newdirpos = ItemCount(filesanddirs,@TAB) DialogControlSet(FS_Handle,011,DC_ITEMBOXCONTENTS,filesanddirs) DialogControlSet(FS_Handle,011,DC_ITEMSCROLLPOS,0) DialogControlSet(FS_Handle,011,DC_ITEMBOXSELECT,StrCat("[",newdirname,"]")) :CANCEL Return(-2) EndSwitch ; Button press ; case MSG_EDITBOX ; switch FS_ID ; case 004 ; return(-1) ; case 008 ; return(-1) ; endswitch ;FS_ID ; return(-1) ; Do default processing Case MSG_COMBOCHANGE ; ID 008 newmask = DialogControlGet(FS_Handle,008,DC_ITEMBOXSELECT) filetype = StrTrim(ItemExtract(2,newmask,"-")) filesanddirs = GetFilesAndDirs(filetype) DialogControlSet(FS_Handle,011,DC_ITEMBOXCONTENTS,filesanddirs) Return(-2) ; Do default processing Case MSG_ITEMBOXDOUBLECLICK ; ID 011 filesel = DialogControlGet(FS_Handle,011,DC_ITEMBOXSELECT) If StrSub(filesel,1,1) == "[" filesel = StrClean(filesel,"[]","",@FALSE,1) If currentdirectory == "C:\" newdir = StrCat(currentdirectory,filesel) Else newdir = StrCat(currentdirectory,"\",filesel) EndIf DialogControlSet(FS_Handle,004,DC_EDITBOX,newdir) DirChange(newdir) currentdirectory = newdir filesanddirs = GetFilesAndDirs(filetype) DialogControlSet(FS_Handle,011,DC_ITEMBOXCONTENTS,filesanddirs) EndIf Return(-2) ; Do default processing Case MSG_ITEMSELECT ;ID 011 filesel = DialogControlGet(FS_Handle,011,DC_ITEMBOXSELECT) If StrSub(filesel,1,1) != "[" ; Not a directory DialogControlSet(FS_Handle,007,DC_EDITBOX,filesel) EndIf Return(-2) ; Do default processing EndSwitch ; FS_Message Return(-1) ; Do default processing #EndSubRoutine ;============================================================ ;============================================================ ;============================================================ FSFormat=`WWWDLGED,6.1` FSCaption=`Save as` FSX=-01 FSY=-01 FSWidth=214 FSHeight=128 FSNumControls=011 FSProcedure=`FSCB` FSFont=`DEFAULT` FSTextColor=`DEFAULT` FSBackground=`DEFAULT,DEFAULT` FSConfig=0 FS001=`165,093,036,012,PUSHBUTTON,DEFAULT,"Save",1,1,32,DEFAULT,DEFAULT,DEFAULT` FS002=`165,109,036,012,PUSHBUTTON,DEFAULT,"Cancel",99,2,DEFAULT,DEFAULT,DEFAULT,DEFAULT` FS003=`007,005,020,008,STATICTEXT,DEFAULT,"Look in:",DEFAULT,9,DEFAULT,DEFAULT,DEFAULT,DEFAULT` FS004=`031,003,142,012,EDITBOX,CurrentDirectory,DEFAULT,DEFAULT,8,0,DEFAULT,DEFAULT,DEFAULT` FS005=`005,095,030,008,STATICTEXT,DEFAULT,"File name:",DEFAULT,10,DEFAULT,DEFAULT,DEFAULT,DEFAULT` FS006=`005,109,034,008,STATICTEXT,DEFAULT,"Files of type:",DEFAULT,11,DEFAULT,DEFAULT,DEFAULT,DEFAULT` FS007=`041,093,114,012,EDITBOX,filename,DEFAULT,DEFAULT,3,DEFAULT,DEFAULT,DEFAULT,DEFAULT` FS008=`041,109,114,056,DROPLISTBOX,types,DEFAULT,DEFAULT,4,DEFAULT,DEFAULT,DEFAULT,DEFAULT` FS009=`177,003,012,012,PICTUREBUTTON,DEFAULT,"Pict button 3",2,6,DEFAULT,DEFAULT,DEFAULT,"UpOne.bmp"` FS010=`193,003,012,012,PICTUREBUTTON,DEFAULT,"Pict button 4",3,7,DEFAULT,DEFAULT,DEFAULT,"NewDir.bmp"` FS011=`005,019,200,070,ITEMBOX,filesanddirs,DEFAULT,DEFAULT,5,DEFAULT,DEFAULT,DEFAULT,DEFAULT` ButtonPushed=Dialog("FS") Message("",saveasname) Exit ;=========================================================================== :definefuncs #DefineFunction GetFilesAndDirs(filetype) dirs = ItemSort(DirItemize("*.*"),@TAB) files = ItemSort(FileItemize(filetype),@TAB) If dirs != "" dirs = StrReplace(dirs,@TAB,StrCat("]",@TAB,"[")) dirs = StrCat("[",dirs,"]") filesanddirs = StrCat(dirs,@TAB,files) Else filesanddirs = files EndIf Return(filesanddirs) #EndFunction Return ; #DefineSubroutine NDCBP(ND_Handle,ND_Message,ND_ID,rsvd1,rsvd2) ; ; ;DialogprocOptions Constants ; MSG_INIT=0 ; The one-time initilization ; MSG_BUTTONPUSHED=2 ; Pushbutton or Picturebutton ; MSG_EDITBOX=5 ; Editbox or Multilinebox ; ; ;DialogControlSet / DialogControlGet Constants ; DC_EDITBOX=3 ; EDITBOX MULTILINEBOX ; ; switch ND_Message ; case MSG_INIT ; DialogProcOptions(ND_Handle,MSG_BUTTONPUSHED,@TRUE) ; ; return(-1) ; ; case MSG_BUTTONPUSHED ; switch ND_ID ; case 001 ; dirchars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890$%%'`-@{}~!#()&_^+,.=[]" ; newdirname = DialogControlGet(ND_Handle,003,DC_EDITBOX) ; test1 = strclean(newdirname,dirchars,"",@false,1) ; if strlen(test1) > 0 ; Message("Error!","Invalid characters entered in new directory name") ; DialogControlSet(ND_Handle,003,DC_EDITBOX,"") ; return(-2) ; endif ; return(-1) ; ; case 002 ; return(-1) ; ; endswitch ;ND_ID ; return(-1) ; Do default processing ; ; endswitch ; ND_Message ; return(-1) ; Do default processing ; ; #EndSubroutine ;End of Dialog Callback NDCallbackProc ; ; ;============================================================ ; ; NDFormat=`WWWDLGED,6.1` ; ; NDCaption=`Create New Directory` ; NDX=-01 ; NDY=-01 ; NDWidth=096 ; NDHeight=046 ; NDNumControls=004 ; NDProcedure=`NDCBP` ; NDFont=`DEFAULT` ; NDTextColor=`DEFAULT` ; NDBackground=`DEFAULT,DEFAULT` ; NDConfig=0 ; ; ND001=`007,027,036,012,PUSHBUTTON,DEFAULT,"OK",1,2,32,DEFAULT,DEFAULT,DEFAULT` ; ND002=`049,027,036,012,PUSHBUTTON,DEFAULT,"Cancel",99,3,DEFAULT,DEFAULT,DEFAULT,DEFAULT` ; ND003=`007,011,078,012,EDITBOX,newdirname,DEFAULT,DEFAULT,1,DEFAULT,DEFAULT,DEFAULT,DEFAULT` ; ND004=`007,001,072,008,STATICTEXT,DEFAULT,"Enter new directory name:",DEFAULT,4,DEFAULT,DEFAULT,DEFAULT,DEFAULT` ; ; ButtonPushed=Dialog("ND") ; ;#EndFunction
Article ID: W17400
File Created: 2019:08:14:09:21:40
Last Updated: 2019:08:14:09:21:40