• ベストアンサー

文章の改行数を取得する

Flash 8を使用しています。 テキストファイルから文章を取得して、それを変数に代入するんですが、 代入された文章が何回改行されているかを 取得するにはどうすればいいのでしょうか? よろしくお願いします。

  • Flash
  • 回答数2
  • ありがとう数2

質問者が選んだベストアンサー

  • ベストアンサー
noname#35109
noname#35109
回答No.2

そう言えば, 私も他の方にその方法が聞いてみたいと思っていたのです。 以下は私なりの方法です。 大筋は, テキストフィールドの文字列を改行コードで区切って(splitして), 区切られたそれぞれの文字列を配列の要素にし, 配列の要素の個数を求めれば,行数が出るので, 行数から1を引いて改行の個数を求める。 という方法です。 つまり,#1の方の「改行コードの個数を調べる」の具体的方法です。 しかし,困ったことに,改行コードは "\n" と "\r" の2種類あります。 Windows環境でテキスト入力のテキストフィールドに, 手入力で改行を入れると "\r" になります。 しかし,スクリプトの newline で改行を入れたり, 外部テキストをロードしたり, Macからの入力を考えると,"\n" になります。 全体的に主流は "\n" です。 だから,まどろっこしいですが, "\r" と "\n" でそれぞれ区切った2つの配列を用意し, それぞれの個数を求め,それを足して,改行の個数を求めるという方法です。 ステージ上に memo という "インスタンス名" のテキスト入力のテキストフィールドを用意します。 そして,ボタンシンボルを用意し,ボタンをクリックしたときに個数を調べるスクリプトです。 変数の型宣言などは省略しています。 ----------------------------------- on (release) { //配列 memoSpl1 を作成 memoSpl1 = new Array(); //memo.text を "\n"で区切って配列に代入 memoSpl1 = _root.memo.text.split("\r"); //改行個数を算出 nLine1 = memoSpl1.length-1; //配列 memoSpl2 を作成 memoSpl2 = new Array(); //memo.text を "\n"で区切って配列に代入 memoSpl2 = _root.memo.text.split("\n"); //改行個数を算出 nLine2 = memoSpl2.length-1; //上の改行個数を加算 nLine = nLine1+nLine2; trace(nLine); } ------------------------------------ これで,ムービープレビューし,ボタンをクリックしたとき, memo という "インスタンス名" のテキスト入力のテキストフィールド内の改行の個数が trece されます。 他に良い方法はないものかとたまに考えてはみるのですが, 良い悪いは別にして,一応上のような方法で実際には調べられるので 実際に使っている方法です。 --余談:ちなみに上の方法の発展---------------- "\n" や "\r" に限定した物ではなく, 文字列1 をある 文字列2 で区切って配列の要素とし, 区切った要素をそのまま連結させると, その 文字列1 の中から 文字列2 を一括削除するということもできます。 それのさらに応用で, 要素を連結させる前に各要素間に違う文字列を挿入してやると,文字列置換もできます。 Flash の配列は前もって要素の個数を宣言しなくて良いので,すごく便利です。 しかし,上の方法で改行の個数を調べると言うのは,良いのか悪いのかわかりません。 もっと簡単な方法もあるようには思います。 できる自信はありますが,方法的に良い方法かどうかは全く自信なしです。

is_may
質問者

お礼

できました! ありがとうございました!

その他の回答 (1)

回答No.1

フラッシュを直接触ったことがないのですが… テキストの改行文字がコードで入っている筈ですので、 その回数を数えてやればいいのではないでしょうか?

is_may
質問者

お礼

解決しました。 ありがとうございました。

関連するQ&A

  • ASP C# 改行させたい

    マルチラインのテキストボックスに改行の入った文字列を入力して、そのテキストボックスをセッション変数に入れてからラベルに代入して表示すると改行がされないのですが、なにかいい方法があるのでしょうか?

  • 外部テキスト読み込みで改行をなくしたい。

    過去のアンサーを見たのですが希望の回答が見つからなかったため質問させていただきました。 フラッシュで外部テキスト読み込みにしているのですが、そのテキストファイルの本文を改行するとフラッシュの中でも改行されてしまいます。 できれば<BR>を記入したところ以外は改行されたくありません。 かといってテキストファイル内で改行を入れておかないと1列で表現することとなり見づらくなります。 解決するにはどうすればいいでしょうか?

    • ベストアンサー
    • Flash
  • HTMLから自動的に文章取得

    HTMLデータの中から、狙った文章をPerlで抜き出すプログラムを書こうとしています。 (1)urlが並んでいるテキストファイルから、1番上を$urlに入れる (2)urlからHTMLを取得する (3)HTMLを解析、文字列の取得 (4)「author: title: 」のように、形を変えて、新たなテキストファイルに1行printする。 (5)すべてのurlに繰り返す と動くプログラムです。 LWP::Simpleのget関数を使うか、wgetを使うかも考えています。 ここでの質問は、(1)の、URLを上から順に引っ張ってくるプログラムの作り方を聞きたいです。 $i行目の改行までを取得、という考えでいいでしょうか? ベターな方法や、少しでも参考になる情報がありましたら教えていただけると嬉しいです。

    • ベストアンサー
    • Perl
  • 【Excel】テキストが改行位置以外で改行される

    こんにちは HTMLのテキストファイルをテキストファイルウィザードを通して開くと 改行位置ではないところで改行されてしまい困っています。 メモ帳で開くと1行になっています。 そのメモ帳の文字をコピーしてExcelにペーストしても同じでした。 メモ帳で見えない改行コードが入っているのでしょうか? まったく同じような文章でも、改行されてしまう行と改行されない行があります。 改行されないように開くにはどうしたらよいでしょうか。 Excel2013です。

  • 書いた文章を改行など含めて文字列として変数に代入するには?

    あいうえお かきくけこ さしすせそ を変数に文字列として代入したいのですが、 my $string = "あいうえお\nかきくけこ\nさしすせそ\n"; などと改行文字を自分で入れたりといったことをせず、 変数に文字列として代入する方法を教えてください。 print <<END; あいうえお かきくけこ さしすせそ END という方法があるのは分かったのですが。。。

    • ベストアンサー
    • Perl
  • PDFにて、改行された文章を一度にコピーするには?

    お世話になります。 以下の質問にお答えいただける方、お願いします。 PDF形式のファイルの文章をWORDにコピー&ペーストするときのことです。 テキストツールでコピーしたいのですが、例えば、見出しと本文が改行されて分離していると 同時にコピーすることができません。 このため、見出しと本文をそれぞれ一回ずつコピペしなければならず不便です。 何か良い方法はないでしょうか。 よろしくお願いします。

  • [VB6]指定されたファイルまでのパスを取得

    Microsoft VisualBasic 6.0(SP6)を使用しています。 例えばテキストボックスに、ユーザが任意のファイル名を入力します。 そこで入力されたファイルまでのパスを取得して、 変数「test」に代入しFunctionに引き渡すというような処理をしたく思っています。 実際にこのような処理は可能でしょうか? なにか良い知恵があればご教授お願い致します。

  • メール文章の改行

    LiveMail を使用しています、それに限ったことではないのですが、メール作成時の改行と 送信した後の改行位置が異なります。使用しているメーラーの横幅(文字数)の影響かと思ったのですが、広げても同じです。作成時のようにメールを送るには、どうすれば良いのでしょうか?(テキスト形式です)お教えください。

  • 改行をなくしたい

     ワードやメモ帳などのテキストファイルを一太郎で読み込んだ際に文章の途中で改行が頻繁に入ってしまいます。何か通常の形で一太郎にコピペできる方法はないでしょうか?

  • Access フィールド2つの文章を改行入れ一つに

    Access2013 フィールドA(短いテキスト)に入力してある文章の頭に、フィールドB(短いテキスト)に入力してある文章を一挙にコピーし貼り付ける際、この文章間を改行する方法を教えて下さい。 更新クエリで、レコードの更新の欄に何と記入したらよいでしょうか。 宜しくお願いします。

専門家に質問してみよう