Weblessen.nl - Voor iedereen die wat wil leren..


REXX

Index
REXX Index
Voorwoord
De eerste stap
Een inleiding tot REXX
Programma besturing
Toekennen en Logisch vergelijken
Functies en Variabelen
Strings en Tabellen
Parsing
Standaard Invoer / Uitvoer
Bestands Invoer / Uitvoer
Structuren
Karaktermanipulatie

Appendix
Naamgeving
Voorbeeldprogramma's
Totaal programma
Scherm-/bestandsbeschrijvingen Een FTP client voor Windows95/98

Een FTP client voor Windows95/98

 

1 /****************************************************************************/ 2 /* UploadSiteMetFTP - Selekteer en UpLoad de 'HomePage' bestanden: */ 3 /****************************************************************************/ 4 Main: 5 6 Call Initialisatie 7 8 Do While (DIR_LIJST <> '') 9 Parse Var DIR_LIJST DIRECTORY DIR_LIJST 10 Call UploadDirectory 11 End 12 13 Call Exitialisatie 14 15 Exit 0 16 17 18 /****************************************************************************/ 19 /* Programma Initialisatie: */ 20 /****************************************************************************/ 21 Initialisatie: 22 23 Say 24 Say 'Start Upload van bestanden...' 25 26 FTP_DATUM = '2000-01-09' 27 ROOT = 'C:\Mijn_documenten\MijnHomePage' 28 LOGFILE = 'C:\Windows\Temp\FTP.LOG' 29 DIR_LIJST = ROOT 30 OVERSLAAN = '' 31 32 33 Call RxFuncAdd 'SysLoadFuncs','REXXUTIL','SysLoadFuncs' 34 Call SysLoadFuncs 35 36 BUTTON = RxMessageBox('Wil je dat de Upload op een ander tijdstip plaatsvindt,', 37 'zodat nu alleen het overzicht wordt getoond?',, 38 'Upload Site met FTP: 'FTP_DATUM,'YESNO','QUESTION') 39 40 If (BUTTON = 7) Then Do 41 Call RxFuncAdd 'FtpLoadFuncs','RXFTP','FtpLoadFuncs' 42 Call FtpLoadFuncs 43 End 44 45 Call SysFileTree Translate(ROOT,' ','_')'\*.*','DIRS.','DOS' 46 Do i=1 To DIRS.0 47 DIRS.i = Translate(DIRS.i,'_',' ') 48 If (Pos('.',DIRS.i) = 0 & Pos(DIRS.i,OVERSLAAN) = 0) Then Do 49 DIR_LIJST = DIR_LIJST' 'DIRS.i 50 End 51 End 52 53 If (BUTTON = 7) Then Do 54 Call SysFileDelete LOGFILE 55 56 Call LineOut LOGFILE,' ' 57 Call LineOut LOGFILE,Copies('-',78) 58 Call LineOut LOGFILE,' ' 59 Call LineOut LOGFILE,'FTP Upload gestart d.d. 'Date()' 'Time()' FTP-datum: 'FTP_DATUM 60 61 Call FtpSetUser 'ftp.volny.cz','MyUserID','MyPassWord' 62 End /*If */ 63 64 Return 0 65 66 67 /****************************************************************************/ 68 /* Upload de bestanden van een (sub)directory: */ 69 /****************************************************************************/ 70 UploadDirectory: 71 72 Parse Var DIRECTORY . (ROOT) . '\' SERVER_DIR . 73 DIRECTORY = Translate(DIRECTORY,' ','_') 74 75 If (BUTTON = 7 & SERVER_DIR <> '') Then Do 76 Call FtpChDir SERVER_DIR 77 Call FtpPwd CURRENT_DIRECTORY 78 End 79 80 Say 81 82 If (BUTTON = 7) Then Do 83 Call LineOut LOGFILE,' ' 84 End 85 86 If (SERVER_DIR = '') Then Do 87 Say 'Upload van directory: 'DIRECTORY' naar ROOT-directory op de server' 88 If (BUTTON = 7) Then Do 89 Call LineOut LOGFILE,'Upload van directory: 'DIRECTORY' naar ROOT-directory op de server' 90 End 91 End; Else Do 92 Say 'Upload van directory: 'DIRECTORY' naar '''SERVER_DIR'''-directory op de server' 93 If (BUTTON = 7) Then Do 94 Call LineOut LOGFILE,'Upload van directory: 'DIRECTORY' naar '''SERVER_DIR'''-directory op de server' 95 End 96 End /* If */ 97 98 99 Call SysFileTree DIRECTORY'\*.*','BESTAND.','FT' 100 101 Do i=1 To BESTAND.0 102 Parse Var BESTAND.i YY '/' MM '/' DD '/' . . . BESTAND_NAAM 103 104 If (Pos('$',BESTAND_NAAM) > 0) Then 105 Iterate 106 107 If (YY < 80) Then 108 BESTAND_DATUM = '20'YY'-'MM'-'DD 109 Else 110 BESTAND_DATUM = '19'YY'-'MM'-'DD 111 112 113 If (BESTAND_DATUM > FTP_DATUM) Then Do 114 p = LastPos('\',BESTAND_NAAM) 115 SERVER_NAAM = Substr(BESTAND_NAAM,p+1) 116 117 Say 'UpLoad: 'BESTAND_NAAM' ('BESTAND_DATUM')' 118 If (BUTTON = 7) Then Do 119 Call LineOut LOGFILE,'UpLoad: 'BESTAND_NAAM' ('BESTAND_DATUM')' 120 121 Select 122 When (Right(BESTAND_NAAM,4) = '.htm') Then 123 Call FtpPut BESTAND_NAAM,SERVER_NAAM,'ASCII' 124 When (Right(BESTAND_NAAM,3) = '.js') Then 125 Call FtpPut BESTAND_NAAM,SERVER_NAAM,'ASCII' 126 Otherwise 127 Call FtpPut BESTAND_NAAM,SERVER_NAAM,'BINARY' 128 End /* Select */ 129 End /* If */ 130 End /* If */ 131 132 End /* Do */ 133 134 If (BUTTON = 7 & SERVER_DIR <> '') Then Do 135 Call FtpChDir '..' 136 End 137 138 Return 0 139 140 141 /****************************************************************************/ 142 /* Programma Exitialisatie: */ 143 /****************************************************************************/ 144 Exitialisatie: 145 146 If (BUTTON = 7) Then Do 147 Call FtpLogoff 148 Call FtpDropFuncs 149 150 Call LineOut LOGFILE,' ' 151 Call LineOut LOGFILE,'FTP Upload gestopt d.d. 'Date()' 'Time() 152 153 Call Stream LOGFILE,'C','CLOSE' 154 End /* If */ 155 156 Call SysDropFuncs 157 158 Say 159 Say 'Einde Upload van bestanden...' 160 161 Return 0 162 163 164 /* End-of-File **************************************************************/