2017-02-18 6 views
2

wird angenommen, dass ich einen langen Dateipfad (80+ Zeichen) von meinem aktuellen Arbeitsordner haben:Splitting lange Dateipfad in Stata

use .\random_folders_name\project1\secret_data\survey_data\big_constructed_file.dta 

ich nach einem Weg suchen es in zwei Linien aufgeteilt mit einzuhalten ein 80-Zeichen-Zeilen-Standard.

Ich habe

versucht
use .\random_folders_name\project1\secret_data\survey_data/// 
     \big_constructed_file.dta 

und

use ".\random_folders_name\project1\secret_data\survey_data"/// 
     + "\big_constructed_file.dta" 

ohne Erfolg.

Ich würde es vorziehen, das Arbeitsverzeichnis nicht zu ändern, da dies eine Änderung erforderlich machen würde.

+0

I "Arbeitsverzeichnis" mit 'cd' nur einmal bin die Einrichtung ... – snoram

Antwort

2

+ kann für String-Verkettung verwendet werden, aber nur innerhalb eines Ausdrucks ausgewertet werden.

Dies funktioniert

clear 
set obs 1 
gen whatever = "a" + "b" 

und das funktioniert

local whatever = "a" + "b" 
di "`whatever'" 

Putting einen oder mehr Teile eines Strings in einem lokalen Makro ist eine Möglichkeit, zu tun, was Sie wollen und was würde ich empfehlen, wenn das Schreiben innerhalb von 80 Zeichen in einer Zeile.

local dir ".\random_folders_name\project1\secret_data\survey_data\" 
use "`dir'big_constructed_file.dta" 

Sie können dies tun:

local name = ".\random_folders_name\project1\secret_data\survey_data" + /// 
"\big_constructed_file.dta" 
use "`name'" 

Das ist die nächste, die ich zu nehmen Ihr Ansatz bekommen könnte und machen es funktionieren.

Auf Schrägstriche, aufgepasst: http://www.stata-journal.com/sjpdf.html?articlenum=pr0042