|
>>2106 ten >#program align foo, var とりあえず program じゃなくて pragma でしょう。あと、試して ませんが書き方が怪しいのではないかと思います。こちらを参考に。 http://docs.sun.com/htmlcoll/coll.674.1/euc-jp/CUG/accOptions.html#1407 >>2105 ふくし > また、RTF の規格についてわかりやすく書いているリンクなども、、。 Rich Text Format は Microsoft が作った規格なので、Microsoft に 仕様書が存在するはずなのですが、見付けられませんでした。もしかしたら 今は別の団体が管理しているのかもしれません。 |
|
こんちは、お初です。最近Perlはじめました。 ほかの言語はからっきし使えません(TT関西弁ならいけるけど。。。 で、Perlのプログラミングで質問させてもらいます。 テキストファイルで、↓こういうかんじ name age year -------------------------- CCIE 22 2001 みたいな感じのテキストがあって、そこから3行目だけを出力させたいのと この場合だと22だけを取り出したいっていう2つのことがどうすれば いいか今格闘中です。 たぶん正規表現かなーっとおもって オライリーの正規表現見てますがさっぱりで・・・(^^;) どなたか助言よろしくお願いしますm(__)m |
|
>>2108 CCIE > 3行目だけを出力させたい 自分で何行読んだかを数えます。 $line = 1; open(IN, "file"); while (<IN>){ if ( $line == 3 ){ print "これが 3行目の内容です: $_"; } $line++; } > 22だけを取り出したい $_ に "CCIE 22 2001\n" が入っている状態で、 ($name, $age, $year) = split(/\s+/, $_); とすれば $age に '22' が入ります。 \s は空白・タブを表し、\s+ は1文字以上連続した空白・タブを表しますので、 $_ を1文字以上連続した空白・タブで分割し、それぞれのフィールドを $name、$age、$year に代入 という意味になります。 あるいは ($name, $age, $year) =~ m/^(.*)\s+(\d+)\s+(\d+)$/; という方法もあります。^ は行頭、\d は数字、$ は行末を表し、 括弧でくくった部分がそれぞれ $name、$age、$year に代入されます。 |
|
>>2109 68user > ($name, $age, $year) =~ m/^(.*)\s+(\d+)\s+(\d+)$/; 余計なような足りないような… ($name, $age, $year) = m/^(.*)\s+(\d+)\s+(\d+)$/; 若しくは ($name, $age, $year) = $_ =~ m/^(.*)\s+(\d+)\s+(\d+)$/; では無いでしょうか? |
|
早々の返事ありがとうございますm(__)m 参考に勉強させてもらいます. みなさんすごいですね.ってこういうのでつまづいているのは僕だけかな(TT いまから,↓の$や()や\や+がごちゃごちゃしたものをゆっくり理解していきたいとおもいます. 実は今,これでいうと22の部分をTkのGIFgraphで表現しようと思ってるんです. テキストファイルが定期的に書きかえられるのでグラフ化したいと思って. それで,いま撃沈しているところを聞かせていただいたんです. 出きるだけ御迷惑をかけないように自分で努力したいと思いますが,また質問してしまうと思うのでそのときはよろしくお願いします. |
|
はじめまして。68userさんのページはとても勉強になります。時間があったら、全文を熟読したいと思います。(そんな時間ないかもしれませんが。) それにしても、毎回いろいろな人からの質問に応えることのできる知識に、 少し圧倒されました。自分はまだまだ未熟者です。今後どーしてもわからないことがあったら、質問するかもしれませんので、そのときは、どうかよろしくお願いします。 |