(已回答,辦不到) 請問要怎麼把File()設定成變數?

  •   145 
  • 最後發表   Sadless  2021 九月 29
Sadless 發文於   2021/09/14

我做了一個測試腳本如下:

{交易 測試_Print}

Var:_File(File("c:\print\[ScriptName]_Test.log"));  

Var:_Date(0);
    _Date = Date;

if  _Date > _Date[1]
then
    Print(_File, Date); 

編譯出現下面這問題:

網站上查詢不到這個錯誤,請問這個問題要怎解決?

 

 

 

另外,我又寫了一個測試腳本如下:

{交易 測試_Print_2}

Var:_File_Path("c:\print\[ScriptName]_Test.log");   

Var:_Date(0);
    _Date = Date;

if  _Date > _Date[1]
then
    Print(File(_File_Path), Date);  

還是有錯誤,錯誤結果如下:

輸入的參數明明是String,但是錯誤描述卻說輸入的參數不是String,請問錯誤是甚麼原因呢?

 

我的目的是,不要在每一個 Print() 裡面刻死檔案路徑,要讓Print() 裡面是動態變數,這樣子要改路徑跟檔案名稱原則,就可以只改一次。

如果上述兩個方法都不行,請問有甚麼方法可以用呢?

排序方式: 標準 | 最新
XQ小幫手 發文於   2021/09/16

Hello Sadless,

 

您可以參考 XQ complier 對於參數要求很難懂 為何不能帶入變數當成參數? 這篇文章。

 

關於字串變數無法作為參數的原因,小幫手詢問工程師得到的答案是因為XS編輯器需要對路徑作一些合法性的檢查,而如果是變數的話在編譯期無法檢查。

感謝。

Sadless 發文於   2021/09/24

那就是編譯器一開始的設計邏輯就錯了。

所有的編譯器都可以解決的功能,就XQ的編譯器辦不到,這個實在是說不過去。

這個編譯器連基本的file handler都沒有,路徑字串不能當作字串使用,這些實在是不能用編譯器當作理由。

你們這個編譯器的秘密限制實在是很多,也都沒有寫在文件裡面。

問一個才講一個,實在是很沒有效率。

XQ小幫手 發文於   2021/09/29

Hello Sadless,

 

感謝您的建議,小幫手會轉告相關人士作參考。

發表回覆
Close