从 Enterprise Architect 脚本保存文件
Save a file from Enterprise Architect Script
我正在尝试创建一个显示对话框的脚本,我可以在其中 select 保存文件的路径。下面差不多搞定了,不过这个是打开文件,不是保存。
var filePath = OpenCSVFileDialog();
var fileName = GetFilenameFromPath(filePath);
function OpenCSVFileDialog()
{
var Project;
var Filename, FilterString, Filterindex, Flags, InitialDirectory, OpenorSave, filepath;
Filename = "";
FilterString = "CSV Files (*.csv)|*.csv|All Files (*.*)|*.*||";
Filterindex = 1;
Flags = 0;
InitialDirectory = "";
OpenorSave = 0;
Project = Repository.GetProjectInterface();
filepath = Project.GetFileNameDialog(Filename, FilterString, Filterindex,
Flags, InitialDirectory, OpenorSave);
return filepath;
}
function GetFilenameFromPath(filePath)
{
var bsindex, fileName;
// find the last backspace in the file path
bsindex = filePath.lastIndexOf("\");
if (bsindex > 0)
{
// get the name of the file only - minus the directory path
fileName = filePath.substring(bsindex+1, filePath.length);
}
else
{
fileName = filePath;
}
return fileName;
}
要获取文件路径,请使用 EAScriptLib 脚本组中的 Jscript-Dialog
脚本,它将防止您重写获取对话框的整个代码。
(要引用另一个脚本,请使用 !INC
,在这种情况下,将 !INC EAScriptLib.JScript-Dialog
放在脚本的顶部)
致电DLGSaveFile(filterString,filterIndex)
并提供:
- 过滤器字符串,在您的例子中是
CSV Files (*.csv)|*.csv|All
Files (*.*)|*.*||
- 您想使用的过滤器索引(在上一点),您已经提供了
它将return文件的路径。
你可以用Project.GetFileNameDialog
,是一样的,只是参数多了also, here's a link
如果您使用 CSV 库创建 CSV 文件,那么一旦您调用 CSVEExportFinalize()
函数,您的文件就会被导出。你一定是先打电话给 CSVEExportInitialize(filepath,columns,exportcolumsHeadings)
对于任何文件,都可以用 JScript 和 VBScript 完成,但不能 javascript
JScript
var fso = new ActiveXObject("Scripting.FileSystemObject");
var a = fso.CreateTextFile("c:\testfile.txt", true);
a.WriteLine("This is a test.");
a.Close();
VB
Dim fso, MyFile
Set fso = CreateObject("Scripting.FileSystemObject")
Set MyFile = fso.CreateTextFile("c:\testfile.txt", True)
MyFile.WriteLine("This is a test.")
MyFile.Close
GetFileNameDialog
是V13的新功能。为 OpenOrSave
参数尝试不同的参数(文档也可能有缺陷)。 Sparx 总是发布香蕉软件!如果它也不起作用,请发送错误报告。
或者(首选!)使用@Hue 指出的操作。
我正在尝试创建一个显示对话框的脚本,我可以在其中 select 保存文件的路径。下面差不多搞定了,不过这个是打开文件,不是保存。
var filePath = OpenCSVFileDialog();
var fileName = GetFilenameFromPath(filePath);
function OpenCSVFileDialog()
{
var Project;
var Filename, FilterString, Filterindex, Flags, InitialDirectory, OpenorSave, filepath;
Filename = "";
FilterString = "CSV Files (*.csv)|*.csv|All Files (*.*)|*.*||";
Filterindex = 1;
Flags = 0;
InitialDirectory = "";
OpenorSave = 0;
Project = Repository.GetProjectInterface();
filepath = Project.GetFileNameDialog(Filename, FilterString, Filterindex,
Flags, InitialDirectory, OpenorSave);
return filepath;
}
function GetFilenameFromPath(filePath)
{
var bsindex, fileName;
// find the last backspace in the file path
bsindex = filePath.lastIndexOf("\");
if (bsindex > 0)
{
// get the name of the file only - minus the directory path
fileName = filePath.substring(bsindex+1, filePath.length);
}
else
{
fileName = filePath;
}
return fileName;
}
要获取文件路径,请使用 EAScriptLib 脚本组中的 Jscript-Dialog
脚本,它将防止您重写获取对话框的整个代码。
(要引用另一个脚本,请使用 !INC
,在这种情况下,将 !INC EAScriptLib.JScript-Dialog
放在脚本的顶部)
致电DLGSaveFile(filterString,filterIndex)
并提供:
- 过滤器字符串,在您的例子中是
CSV Files (*.csv)|*.csv|All Files (*.*)|*.*||
- 您想使用的过滤器索引(在上一点),您已经提供了
它将return文件的路径。
你可以用Project.GetFileNameDialog
,是一样的,只是参数多了also, here's a link
如果您使用 CSV 库创建 CSV 文件,那么一旦您调用 CSVEExportFinalize()
函数,您的文件就会被导出。你一定是先打电话给 CSVEExportInitialize(filepath,columns,exportcolumsHeadings)
对于任何文件,都可以用 JScript 和 VBScript 完成,但不能 javascript
JScript
var fso = new ActiveXObject("Scripting.FileSystemObject");
var a = fso.CreateTextFile("c:\testfile.txt", true);
a.WriteLine("This is a test.");
a.Close();
VB
Dim fso, MyFile
Set fso = CreateObject("Scripting.FileSystemObject")
Set MyFile = fso.CreateTextFile("c:\testfile.txt", True)
MyFile.WriteLine("This is a test.")
MyFile.Close
GetFileNameDialog
是V13的新功能。为 OpenOrSave
参数尝试不同的参数(文档也可能有缺陷)。 Sparx 总是发布香蕉软件!如果它也不起作用,请发送错误报告。
或者(首选!)使用@Hue 指出的操作。