/*---------------------------------------------------------------------------------- opendf_read.ado: loads data from opendf format (zip) to Stata Copyright (C) 2024 Tom Hartl (thartl@diw.de) This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. For a copy of the GNU General Public License see . -----------------------------------------------------------------------------------*/ *! opendf_read.ado: loads data from opendf format (zip) to Stata *! version 2.0.2 - 28 August 2024 - SSC Initial Release program define opendf_read version 16 syntax anything [,LANGUAGES(string) ROWRange(string) COLRange(string) SAVE(string) REPLACE CLEAR VERBOSE] local input=`anything' *If the data.zip is a web path, the data is downloaded to the temp-folder if strpos(`"`input'"', "http")>0 | strpos(`"`input'"', "www.")>0{ local _tempdir "`c(tmpdir)'" if (substr("`_tempdir'", strlen("`_tempdir'"), strlen("`_tempdir'")) != "/" & substr("`_tempdir'", strlen("`_tempdir'"), strlen("`_tempdir'")) != "\"){ local _tempdir = "`_tempdir'/" } local _path_to_data `"`_tempdir'data.zip"' quietly: copy `input' `_path_to_data', replace local input `_path_to_data' } *Add default extension if .zip is missing if strpos(`"`input'"', ".zip")==0{ local input=`"`input'.zip"' } confirm file `"`input'"' if (`"`languages'"' != "") { local languages `languages' } else { local languages "all" } local input_zip=`"`input'"' local csv_temp = "`c(tmpdir)'" opendf_zip2csv , input_zip(`input_zip') output_dir("`csv_temp'") languages(`languages') `verbose' opendf_csv2dta, csv_loc("`csv_temp'") rowrange(`rowrange') colrange(`colrange') save(`save') `replace' `clear' `verbose' end