2011-11-15 12 views
1

例:proper.propertiesAntスクリプトで文字データ型を増やす方法は?

<project name="num" default="jav"> 
    <taskdef resource="net/sf/antcontrib/antcontrib.properties"/> 
    <!-- IF and Conditional task inbuild taskdef --> 

    <target name="jav"> 
    <property file="proper.properties"/> 
    <math result="index" operand1="${index}" 
     operation="+" operand2="1" datatype="int"/> 
    <echo message="index=${index}"/> 
    <echo file="proper.properties" message="index=${index}"/> 
    </target> 
</project> 

、私はindex=1Aことがあります。私は文字部分ではなく整数部分をインクリメントすることができます。

私は1つの変数index=1Aを持っています。私は各ビルドプロセスの後にこの数を増やしたいと思います。

最初のビルドを行ったとしますと、index=2Bである必要があります。つまり、Antスクリプトの文字値(1A2B3C、...)だけでなく、整数も増分したいと考えています。

Antではこれが可能ですか?

+0

インラインの「スクリプト」タスクを使用します。私は個人的にBeanshellを使って文字列を分割するような処理をしています。これを確認してください:http://ant.apache.org/manual/Tasks/script.html – coolcfan

答えて

3

あなたはこのようなものを使用することができます

<project name="test" default="init"> 

    <property name="init.value" value="1A"/> 

    <scriptdef name="increase.label" language="javascript"> 
     <attribute name="value" /> 
     <attribute name="property" /> 
     <![CDATA[ 
     var initVal = attributes.get("value"); 
      var finalVal = String.fromCharCode(initVal.charAt(0) + 1); 

     for(i = 1; i < initVal.length(); i++) 
      { 
       finalVal = finalVal.concat(String.fromCharCode(initVal.charAt(i) + 1)); 
      } 
     project.setProperty(attributes.get("property"), finalVal); 
    ]]> 
    </scriptdef> 


    <target name="init"> 
     <increase.label value="1A" property="result"/> 
     <echo message="Result is : ${result}"/> 
    </target> 

</project> 

をあなたはもちろん、これを使用するには、Java 1.6以降が必要です。

出力:

init: 
    [echo] Result is : 2B 

編集:

は今、あなたは数ではない文字を増やしたいです。 parseInt(string, radix)を使用してください。

あなたは手紙で何をしたいのか分かりません。そこに新しい手紙を追加する必要があります。

+0

これは今の仕事の大部分ですFailedDev – picnic4u

+0

'init.value = 9I'それからそれを':J'にインクリメントしていますが、 '10J'にしたいのですがどうすればいいのですか? – picnic4u

+0

これは文字でも起こります。あなたがZに行くとどうなりますか?インクリメントはcharであるので、ASCIIで9が来た後:あなたが得るものです。あなたの質問では、文字データについて話していました。今あなたは数字について話している。これを行うには、数値を解析するか、これを行うロジックを追加します。私は最初の選択肢に行くだろう。 – FailedDev

関連する問題