2009-04-10 6 views

Répondre

12
<?xml version="1.0" encoding="utf-8" ?> 
<project xmlns="http://nant.sf.net/release/0.86-beta1/nant.xsd" 
     name="Company.Portal.Domain" default="GetFile"> 
    <call target="GetFile" /> 
    <target name="GetFile"> 
    <echo message="Retrieving file contents"/> 
    <property name="file.contents" value="0" /> 
    <loadfile file="file.txt" property="file.contents" /> 
    <property name="file.contents" value="${string::trim(file.contents)}" /> 
    <echo message="contents of file is ${file.contents}"/> 
    </target> 
</project> 

Bien sûr, vous pouvez sauter les lignes 6, 9 et 10 si vous voulez. [Modifier]

<if test="${file.contents=='someValue'}"> 
    <echo>Some value found</echo> 
</if> 

Obtenez tous les détails à this link

[EDIT2]

Puisque vous voulez obtenir la valeur de la 3ème ligne du fichier texte puis faire

<?xml version="1.0"?> 
<project name="Read3rdLine" default="main"> 
    <property name="myInt" value="0"/> 
    <property name="x" value="0"/> 
    <property name="LineToRead" value="3"/> 

    <target name="main" description="compiles the source code"> 
    <property name="i" value="0"/> 
    <foreach item="Line" in="file.txt" property="x" trim="Both"> 
     <property name="i" value="${int::parse(i) + 1}"/> 
     <if test="${i==LineToRead}"> 
      <property name="myInt" value="${x}"/> 
     </if> 
    </foreach> 
    <echo>found ${myInt} at line ${LineToRead}</echo> 
    </target> 
</project> 
+0

Merci un lot (?) binoj.J'ai un autre doute? Je suis vraiment nouveau à nant.So j'ai une valeur dans ce fichier.txt qui est lu comme vu de votre code ci-dessus, maintenant je veux le comparer avec une valeur fixe et chercher la validation .Si cette valeur est plus ou moins grande, je vais faire quelques vérifications. Pourriez-vous nous aider? – Maddy

+0

devrait l'être –

+0

Merci pour l'exemple. Cela fonctionne très bien! J'écrirai dans un fichier à partir d'une base de données, puis j'utiliserai ant pour enregistrer cette valeur dans une variable à utiliser dans une commande exec. – PHPGuru

0

J'ai trouvé que l'utilisation d'une expression régulière est plus flexible car elle ne dépend pas d'une ligne pour être dans un emplacement spécifique et est plus facile à coder.

<loadfile file="${filename}" property="assemblyInfo" /> 
<regex input="${assemblyInfo}" pattern="(?'assemblyVersion'AssemblyVersion[0-9.()&quot;]+)" /> 

La syntaxe est un peu étrange, mais le résultat de la 2ème ligne est de remplir un appel de propriété assemblyVersion avec la chaîne adaptée par le motif de regroupement regex: tout à l'intérieur de

Questions connexes