2012-02-01 3 views
0

mxlから文字列を読み込みます。 一部の文字列はファイルパスであり、一部は通常の文字列です。 誰がファイルで、誰が正規の文字列であるかをどのように判断できますか?ファイルパスは、他の文字列には従わない特定のパターンに従っている場合ファイルまたは通常の文字列を確認する方法は? AS3

おかげ

+0

私はASの経験はありませんが、ファイルが存在するかどうかをテストすることができます。ファイルが存在しない場合は、うまくいけば文字列です。完璧ではありませんが、始まりです。 –

+0

@Dan:これらの相対パス(file.jpg)または絶対パス(http://site.com/file.jpg)またはその両方ですか? – ToddBFisher

+0

パスは相対的なものだけです –

答えて

0

各文字列で正規表現チェックを使用できます。 Thisページでは、RegExp構文の使用法といくつかの例について説明します。あなたの正規表現が含むものは、あなたのファイルの場所がどのように見えるかによって異なりますが、あなたが探すことができるのはファイルタイプの接尾辞です。

さらに、正規表現の作成とテストにはthis toolが見つかりました。

次の正規表現は、.pdfや.mp3などのファイル拡張子で終わる任意の単語(空白のない部分文字列)に一致します。しかし、それはまた、.com、.orgなどを認識するので、あなたの文字列にはウェブサイトのURLが含まれていないことを願っています。

var str:String = inputString; // Each string you want to test. 
var regEx:RegExp = /\.[a-zA-Z0-9]+\b/; // Note that no quotes are needed. 
var matches:Boolean = regEx.test(str); // True for match, false for no match. 
0

は、あなたがそのパターンに基づいて区別することができます。たとえば、すべてのパスがhttp://で始まる場合は、文字列にhttp://が存在するかどうかを確認できます。パスと他の文字列の間にそのような区別がない場合は、XMLタグに属性または子要素を追加して、どのXML要素にパスが含まれているかを示すことができます。ここでは例です:

XMLは、XMLを編集することができた場合、私は私のXMLで<file>または<string>タグ(または属性)を使用することになり

<root> 
    <string>abc<string> 
    <string isPath="true">abc.txt</string> 
    <string isPath="false">xyz</string> 
</root> 

AS3

var xml:XML; // I'm assuming that this variable already contains the XML 

var paths:XMLList = xml.string.(@isPath == 'true'); 
var regularStrings:XMLList = xml.string.(@isPath != 'true'); 
+0

答えてくれてありがとう、私はXMLに頼りたくないので、最初のオプションを使うと思います。 –

2

構造。それからあなたがそれを読んでいるときに、ファイルが存在するかどうかを見る余分のオーバーヘッドを持たずに、それが何であるかを確かに知ってください。

あなたはファイルが存在するかどうかを確認したい場合は、AIRまたは他のサードパーティのSWFラッパーを使用せずに、あなたがURLRequestを使用してパスをロードするように試みることができ、URLLoader

IOErrorEvent.IO_ERRORをリッスン(存在しません)

Event.COMPLETE(読み込んで存在します)。

前述のように、XMLを編集するのが最善の方法です。

+0

nice ...あなたは私にアイデアをくれました、ありがとう:) –

関連する問題