メイン 迷える子羊の部屋【初心者専用】 改行を区切りにした split() | 投稿するにはまず登録を |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
ebi | Åê¹ÆNo.49704 投稿日時: 2013-3-29 20:51 |
フォーラム芸人 居住地: nagoya 投稿: 926
使用環境:
.6.8 CS6 <参考書> ・基本からしっかりわかるActionScript 3.0(既読) ・ActionScript3.0プロフェッショナルガイド(進行中) ・ActionScript3.0パフォーマンスチューニング(未読) ・ActionScript 3.0 逆引きクイックリファレンス(購入予定... |
改行を区切りにした split() こんにちは。えびです。
テキストフィールド「FLD」に3行の文字列を入れます。
これを改行を区切りにsplit()で配列に入れようと思いましたが…
あれ? できません。 いろいろ試して、先程とは違うテキストフィールド「RTN」に改行のみ入れ、 それを参照してsplit() したところ…
うまくいきました。 参照はテキストフィールド内の改行でないといけないようで、
変数での参照では最初と同じ結果。できません。 やりたいこと(改行を区切りにsplit)は2番目の方法で可能なんですが、 もっとスマートな方法(セオリー)があるのでは? と思い質問させて頂きました。 なにとぞ、ご教示ください。┌〇 追記 「なぜsplit("\n")ではできないのか」 「なぜテキストフィールド内の改行を参照したらできたのか」 も、よろしければ、併せて。┌〇 ┌〇 |
野中文雄 | Åê¹ÆNo.49706 投稿日時: 2013-3-29 23:39 |
ちょんまげら 居住地: 東京 投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1) |
Re: 改行を区切りにした split() 以下を試して、[出力]結果を確かめられるとよいでしょう。
参考: ActionScript 3.0リファレンスガイド「TextField」の「textプロパティ」の項 引用: ebiebiさんは書きました: |
ebi | Åê¹ÆNo.49707 投稿日時: 2013-3-30 9:12 |
フォーラム芸人 居住地: nagoya 投稿: 926
使用環境:
.6.8 CS6 <参考書> ・基本からしっかりわかるActionScript 3.0(既読) ・ActionScript3.0プロフェッショナルガイド(進行中) ・ActionScript3.0パフォーマンスチューニング(未読) ・ActionScript 3.0 逆引きクイックリファレンス(購入予定... |
Re: 改行を区切りにした split() ご返信ありがとうございます。
引用:
簡潔! ありがとうございます。さっそく確かめました。 結果は
はー なるほど。文字コード。 テキストフィールドの改行は \n で代入しても \r に変換されるんですね。 試しにテキストフィールド「FLD」に代入の時点で \r を使用したところ 「FLD」内でもキチンと改行され split() も無事適用されました。 スッキリです。
\n と \r …んー 未だに使い分けがよく分からないのですが… 2.0までは改行挿入には newline が使えました(3.0からは使えない) newline定数 ↑こちら改めて確認したところ、newlineもキャリッジリターン(\r)ですね。 Flash内のみで使う分には \r に統一して使用、という理解で差し支えないでしょうか。 |
ひろゆき | Åê¹ÆNo.49709 投稿日時: 2013-3-30 12:37 |
ちょんまげら 居住地: 東京砂漠 投稿: 4403
使用環境:
10.8.5 Flash Professional CS4/CS6/CC Safari 6.1 |
Re: 改行を区切りにした split()
|
野中文雄 | Åê¹ÆNo.49712 投稿日時: 2013-3-30 13:22 |
ちょんまげら 居住地: 東京 投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1) |
Re: 改行を区切りにした split() TextField.textプロパティの値を扱う場合には、「\r に統一して使用」します。
ActionScript 3.0リファレンスガイド「TextField」より引用: 行は復帰文字('\r'、ASCII 13)で区切られます。 外部テキストファイルを読込む場合には、プラットフォームにより改行に用いられる文字は異なります。改行の文字を統一するには、正規表現を使うと便利です。 参考:『ActionScript 3.0プロフェッショナルガイド』p.518 (PDF) 引用: ebiebiさんは書きました: |
ebi | Åê¹ÆNo.49713 投稿日時: 2013-3-30 15:33 |
フォーラム芸人 居住地: nagoya 投稿: 926
使用環境:
.6.8 CS6 <参考書> ・基本からしっかりわかるActionScript 3.0(既読) ・ActionScript3.0プロフェッショナルガイド(進行中) ・ActionScript3.0パフォーマンスチューニング(未読) ・ActionScript 3.0 逆引きクイックリファレンス(購入予定... |
Re: 改行を区切りにした split() ひろゆきさん、ご返信ありがとうございます。
記事のご紹介ありがとうございます。拝見しました。なるほど。 プラットフォームごとに3パターンの改行があるのですね(まず、ここから…) ややこしやぁ? こちらの記事の改行コードを統一する関数、内容も理解でき、 参考になりましたが、最終的にラインフィード(\n)でjoinされてます。 今回の実験(?)で変数でもテキストフィールドでも キャリッジリターン(\r)が有効だと分かったのですが、 それでもラインフィード(\n)に統一するメリットはあるのでしょうか? あ、べつにケチをつけてるわけではありません。 ぼくなんぞはワケもわからずラインフィード(\n)を使ってましたが、 それなりの理由がおありなのかなーと思いまして…(´?`;)ゞ なんかFlashの話題なのかやや微妙になってきましたが、 よろしければ、お教えください。 ※このスレッドを参照される方へ。 環境によっては¥が\になってると思います。同じモノなので、ご注意を(共に半角の) |
ebi | Åê¹ÆNo.49714 投稿日時: 2013-3-30 16:38 |
フォーラム芸人 居住地: nagoya 投稿: 926
使用環境:
.6.8 CS6 <参考書> ・基本からしっかりわかるActionScript 3.0(既読) ・ActionScript3.0プロフェッショナルガイド(進行中) ・ActionScript3.0パフォーマンスチューニング(未読) ・ActionScript 3.0 逆引きクイックリファレンス(購入予定... |
Re: 改行を区切りにした split() 野中さん、ご返信ありがとうございます。
TextField.textプロパティの値を扱う"場合には"と言われるからには、 そうでない場合もありえるのでしょうか。 あ、いえ、それが「外部テキストファイルを読込む場合」なのでしょうけれど、 改めまして、 Flash内のみで(外部テキストなどを読み込まず)使う分には (テキストフィールドだろうが変数だろうが)\r に統一して使用、 という理解で差し支えないでしょうか。 えー、要するにですね… これまで2.0で何の疑いもなく使ってたnewlineが「使えない?パニック!」 だったので、ここ数日、あれこれといじくってたワケです。 ワケがわからないながらも、最初に \r ではなく \n で試し、 テキストフィールド上では改行されたので「ウム間違いない!」と確信したのが 運の尽き。見事にハマッておりましたぁ…(´?`;)ゞ ここらで「ええぃ、うるさい!そういう事だ!差し支えない!m9(;`Д´)」と 野中さんからお墨付きを頂ければ「ハハァーありがたやー」と 安心してnewline頭を卒業 \r を使えそうなのです。(いや使えるんですが、安心して) しかし、考えてみればsplitの区切りにnewlineを指定してもダメだった覚えが… これまで、どうしてたんだっけ? 改行でsplitする機会がなかっただけか。 そして… でました! 正規表現… ぐぉぉ ちらほら目にはしてましたが、サッパリ正体がつかめないので ひとまずスルーしていたのでした…ウーン 『ActionScript 3.0プロフェッショナルガイド』は座右にございますので ご紹介いただいたページの2ページ前『T.3.2正規表現(RegExpクラス)』から 読ませていただきましたが…_| ̄| ...○ 現段階の頭では転がり落ちるばかり… いや、まだ1/3しか進んでいないので順路を辿れば理解できるのかも! とはいえ、未だ「xml? なにそれ? クリスマスじゃなくて?」って段階ですので、 どの参考書もxmlの項は「おらっちには関係ねぇやい」とばかりにスルーしてますが…ェェ ちなみに、このサイトで「改行」で検索したら過去に自分とご対面! 変数の行を配列のように処理 「ああ、この時に改行についてもう一歩踏み込んでいたら、 今回のハマリもなかったんだろうな」とか思うと、 スルースルーばっかりじゃな、とは思うんですがね、ナカナカ。 過去の自分もがんばってたので、がんばろうと思います。( ・`ω・´)」=3 |
ebi | Åê¹ÆNo.49715 投稿日時: 2013-3-30 16:56 |
フォーラム芸人 居住地: nagoya 投稿: 926
使用環境:
.6.8 CS6 <参考書> ・基本からしっかりわかるActionScript 3.0(既読) ・ActionScript3.0プロフェッショナルガイド(進行中) ・ActionScript3.0パフォーマンスチューニング(未読) ・ActionScript 3.0 逆引きクイックリファレンス(購入予定... |
Re: 改行を区切りにした split() もう1つ、念のため確認です。
テキストフィールドに入力されれば改行はとにかく \r! という理解で良いのですかね? 例えば、Unix(改行コード\n)、Windows(改行コード\r\n)から Flash内の入力テキストフィールド(input)にて改行を入力したとしても、 テキストフィールド内の改行は一律(\r)という事で。 |
ひろゆき | Åê¹ÆNo.49716 投稿日時: 2013-3-30 21:17 |
ちょんまげら 居住地: 東京砂漠 投稿: 4403
使用環境:
10.8.5 Flash Professional CS4/CS6/CC Safari 6.1 |
Re: 改行を区切りにした split() 引用:
ebiebiさんは書きました: LFが一般的だから。 改行コード
|
野中文雄 | Åê¹ÆNo.49717 投稿日時: 2013-3-31 2:08 |
ちょんまげら 居住地: 東京 投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1) |
Re: 改行を区切りにした split() TextField.textプロパティに"\n"を加えれば、"\r"に変換されます。ただし、文字数には気をつけた方がよいでしょう。
すると、扱うテキストの改行が予め決まっていない場合には、どれかに統一しておく方が安心です。そして、TextFieldインスタンスに加えることも考えると、"\r"にすれば戸惑うことも少なそうです。ただし、SWFの外にテキストを渡すときは、その仕様にしたがいます。 引用: ebiebiさんは書きました: |
(1) 2 » |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |
投稿するにはまず登録を | |