2012-04-11 9 views
1

Ich versuche, einen variablen Dateinamen zu generieren.SAS - Erzeuge Variablennamen korrekt

ods pdf file = "D: \ Filedirectory \ & & mFileNameVariable & I .pdf" notoc;

Dies generiert einen variablen Dateinamen, fügt aber ein Leerzeichen vor der Erweiterung (zB Dateiname .pdf; Ich brauche Dateiname.pdf).

ich gelesen, dass man so etwas tun könnte:

ods pdf file = "D: \ Filedirectory \ & & mFileNameVariable & I..pdf" notoc;

Um den Punkt für die Erweiterung hinzuzufügen; Wenn ich jedoch versuche, dass das Makro nicht funktioniert, erhalte ich einen WYSIWYG-Wert (z. B. & & mFileNameVariable & I.pdf).

Ich gehe davon aus, weil meine Zeichenfolge mit einem "& I" endet.

Eine andere Lösung, an die ich dachte, aber es nicht unnötig/Workaround ist, trimmen (FilePathAndName) und/oder Katzen (von FilePathAndName FileExtension) die Werte getrennt.

Jeder Einblick oder Rückgespräch wird sehr geschätzt, danke im Voraus für Ihre Zeit und Hilfe.

Prost!

Antwort

7

Da Sie zwei Durchgänge durch den Makroauflösungsprozess durchführen, benötigen Sie einen zusätzlichen Zeitraum zwischen dem Dateinamen und der Erweiterung (drei insgesamt, 2 werden während der Makroauflösung gelocht, einer für das Trennzeichen).

z.B.

%let mFileNameVariable1=myfile; 
%let l=1; 
ods pdf file="C:\Temp\&&mFileNameVariable&l...pdf" notoc; /*note 3 periods!!*/ 

Auf Protokoll

NOTE: Writing ODS PDF output to DISK destination "C:\Temp\myfile.pdf", printer "PDF".