
Loading files

ssmith911
Code builds a path to a specific file based on year and month and data station. It works fine when the 7 files are present. If a file is missing it errors and asks the user if they want to help find the file. I would like to avoid the needed user input by checking to see if the file is present before the Loadwave command is executed. If it's not present then execute the Else portion of the If statement and then move on.
FUNCTION LoadAB(yr,month,days) Variable yr, month, days Variable/G Arraylength Arraylength = days*1440 string monnum, filepath, filepath1, filepath2 variable flag=8 // filepath = "P:Metdata:" //For use on a PC Replace the P: with the letter of the correct drive. //This section builds the path to the file for the loadwave commamd filepath = "Mac Passport:Metdata:" //For use om my MAC. Use the drive name. If(month < 10) //For single digit month numbers filepath1 = num2str(yr)+":raw:QA:" filepath2 ="0"+num2str(Month) +"_CR1000_10A.txt" Else //For 2 digit month numbers filepath1 = num2str(yr)+":raw:QA:" filepath2 = num2str(Month) +"_CR1000_10A.txt" EndIf filepath += filepath1; filepath += filepath2 //Builds the path for the loadwave command //The path to the file will look like this. The filename changes each month //Mac Passport:Metdata:2021:raw:QA:02_CR1000_10A.txt //If the file is present I want to load it and if it's not //print the file not found statement. IF(//What goes here) LoadWave/O/A/J/D/W/K=0/L={0,1,0,0,0}/R={English,2,2,2,2,"Year-Month-DayOfMonth",40} filepath Wave Tmstamp, WS_10m, WD_10m, WD_SD_10m, WS10Gust, Temp_10m, Temp_2m, Baro_2m, RH_2m GetTime(Days) RevMissingLines10() Make /D/O/N=(arraylength, 9) Ten_A Ten_A[ ][0] = Tmstamp[p] Ten_A[ ][1] = WS_10m[p] Ten_A[ ][2] = WD_10m[p] Ten_A[ ][3] = WD_SD_10m[p] Ten_A[ ][4] = WS10Gust[p] Ten_A[ ][5] = Temp_10m[p] Ten_A[ ][6] = Temp_2m[p] Ten_A[ ][7] = Baro_2m[p] Ten_A[ ][8] = RH_2m[p] Else Print "File not Found:", filepath ENDIF
There are a couple of ways:
Open/R/Z=1 then check V_flag. It will be zero if the file was opened. Then call Close before calling LoadWave.
GetFileFolderInfo
I don't know which is faster, probably the GetFileFolderInfo operation; it is newer than Open by a number of years!
March 4, 2021 at 02:18 pm - Permalink
In reply to There are a couple of ways: … by johnweeks
The GetfileFolderinfo did the trick. Thanks John
March 5, 2021 at 09:18 am - Permalink