tsuduki123 の回答履歴

全96件中41~60件表示
  • Perlでの文字列置換

    大学での研究でperlを使用しているのですが、次のような問題が起こって少し困っています。 Perlで以下のようなscriptを書いたのですが、うまく置換してくれないのです。 *************************************************************************** printf(STDERR "start replacement\n"); $L1_before="+ L1_01\n"; $L1_after=3.14; $string=~ s/(=$L1_before)/=$L1_after/g; printf(STDERR "L1_before=%s",$L1_before); printf(STDERR "L1_after=%.2f\n",$L1_after); printf(STDERR "string=%s\n",$string); printf(STDERR "end replacement\n"); **************************************************************************** 実行結果は、以下の通りです。 **************************************************************************** start replacement L1_before=+ L1_01 L1_after=3.14 string= end replacement **************************************************************************** これは簡易版なのですが、やっていることはそのままです。 何が問題になっているのでしょう。わかる方は教えていただけると助かります。 ちなみに、私はPerlを勉強し始めたばかりです。

  • perlで一定の範囲ごとにカウントさせる方法について教えてください。

    perlで一定の範囲ごとにカウントさせる方法について教えてください。 例えば、data.txtに、-10≦n≦10の範囲で様々な数が入ったファイルがあるとして、 -10.0 ≦ x < -9.9 -9.9 ≦ x < -9.8 .... 9.8 ≦ x < 9.9 9.9 ≦ x ≦ 10.0 (←最後は≦のほうがいいですが、<でもOK) と0.1ごとに区切って、 その範囲に入る数をカウントしたいとき、 ifや+=を使って範囲を指定して、カウントアップさせる方法もありますが、 指定したい範囲の数が多いと、ifばかりをプログラム内に羅列するのは面倒です。 できれば以下のような結果が表示されるとうれしいのですが… 中間値 カウント数 -9.95 3 -9.85 6 ... すっきりした書き方はありませんか?よろしくお願いします。

    • 締切済み
    • phymk
    • Perl
    • 回答数5
  • 割り込み処理について

    割り込み処理について 初心者です。 割り込み処理について質問させて頂きます。 (1)割り込みルーチン中から別のルーチンに飛ばすことは可能でしょうか? (2)割り込みルーチンの途中で最後まで処理を終えずに、割り込み先に復帰させることは可能でしょうか? 割り込み {    処理1    a();           ・・・(1)    処理2    return;        ・・・(2)    処理3 } 以上、よろしくお願い致します。

  • C++のfriend classについて

    C++のfriend classについて C++の初心者です。 C++でのfriend classは基本的に、全プロパティに対するsetter,getterを持たせて 集約、コンポジションにより代替が可能だと思うのですが、今勉強の為に読解して いるソースではsetter,getterの実装がなされているクラスの使用に対しても friend 宣言が多発していて中途半端なルールになっていると感じてしまいます。 friend 宣言によって別途実現可能になる事や、パフォーマンス的に有利(微々たる 物なはず)な事ってあるのでしょうか?

  • C++のfriend classについて

    C++のfriend classについて C++の初心者です。 C++でのfriend classは基本的に、全プロパティに対するsetter,getterを持たせて 集約、コンポジションにより代替が可能だと思うのですが、今勉強の為に読解して いるソースではsetter,getterの実装がなされているクラスの使用に対しても friend 宣言が多発していて中途半端なルールになっていると感じてしまいます。 friend 宣言によって別途実現可能になる事や、パフォーマンス的に有利(微々たる 物なはず)な事ってあるのでしょうか?

  • C言語でのsleep機能について

    C言語でのsleep機能について  C言語で3Dゲームを作っている所です。今情報学科の大学1年でC言語歴は4年程度です。3Dゲームを作るのは初めてなのですが、普通ゲームって1秒間に何フレーム(fpsとか言ったかな?あまり詳しいことは知りません)というように、1秒間に画面を更新する回数って決めますよね?というより、決めないと早く更新しすぎてCPUが持たないですよね?  そこで、60フレームなら1/60秒間待って画面を更新する。というようにしたいのですが、「1/60秒待つ」というしっくりくる方法が、あまり見つかりません。いろいろ検索してwindowsで使えるsleep関数を見つけたのですが、家の環境はMacですし、なるべく多くのOSに対応するゲームを作りたいと思っています(最低Mac, Win, Linaxの3つぐらいは…)。  現在自分が用いている方法は、timerinit()という関数を自分で定義して、for分の1回のループにかかる時間を計測し(clock()を用いて)、その値を元にsleepf(double sec)という関数を定義し、sleepを行うようにしています。または、while分を用いてclock()をそのまま使ってsleepする方法をとっているときもあります。  これより良い方法って無いですか?あまりCPUなどは詳しくないですが、CPUとかが節約できるような方法があればとても嬉しいです。というより、自分が今やっている方法とWindowsで使えるsleep関数と比べると、やはり自分の方法のほうが精度が悪いのでしょうか?(CPUなどへの負担は大きいのでしょうか?)  長い質問になってしまいましたが、宜しくお願いします。 ちなみに… 【環境】MacOS 10.5 【エディタ】Xcode3.0 【言語】C言語(GLUTとOpenGLを使って3Dを描画しています) 【CPU】2GHz Intel Core 2 Duo 【メモリ】2G (CPUとメモリはこんなもんですが、もう少し性能の低いパソコンにも対応させたいかな?)

  • ゲッタ、セッタについて

    ゲッタ、セッタについて 質問させて頂きます。 あるクラスのメンバに、int型の変数hogeがあるとし、これをハンガリアンに則って、_nHogeと命名したとします。 これに対するゲッタ・セッタを作る場合、正しい関数名はどうなるのでしょうか? ただし、関数名に対する規約は無いものとします。 (1) int get_nHoge(); (2) int getnHoge(); (3) int getHoge(); (4) int Hoge(); (5) その他

  • CVSコマンドrlogでブランチにつけたタグで実行したいがうまくいかな

    CVSコマンドrlogでブランチにつけたタグで実行したいがうまくいかない CVSコマンドのrlogを実行したいのですが、うまくいきません。 「cvs rlog: invalid branch or revision pair…」というメッセージが出ます。 ※「コマンド」と表現していますが、シェルの中で「FROM_TAG」「TO_TAG」 を指定し、連続的に指定ファイルのrlogを機械的に取得するという 処理を行ないたいと思っています。 コマンドは以下のような単純なコマンドです。 ------------------------------- PERIOD=${FROM_TAG}::${TO_TAG} cvs -d ${CVSROOT} rlog -N -r${PERIOD} ${ファイル名} ------------------------------- 指定しているタグはブランチに付与した「つもり」のタグです。 そこで、タグを確認してみたところ TO_TAGは確かにブランチに付与されていました。一方で FROM_TAGはtrunkに付与されていました。 「それが原因だろ」といわれるとそのとおりなのですが、 タグは確かにブランチを指定しタグを付与しました。 FROM_TAGをつけたのはブランチを作成した直後です。 つまり、trunkとまったく同じファイル。 なので、リビジョンはtrunk用の「1.n」のままです。 この時点で、ブランチの最新にタグをつけたのですが、 するとタグは「1.n」系のリビジョンにつきました。 ファイル自体はまったく変更していないので当然といえば当然です。 それではと、とりあえず以下のコマンドにしたところ一応うまくいきました。 ------------------------------- PERIOD=::${TO_TAG} cvs -d ${CVSROOT} rlog -N -r${PERIOD} ${ファイル名} ------------------------------- ただ、これが通用するのはブランチを作成してから 何も修正していない状態のファイルにだけです。 つまり、ブランチを作成してから、タグA, B, Cを打っており BとCを指定してrlogを取得するときに、 AとBの間、BとCの間で修正があったソースは成功するけれども BとCの間だけで修正があったソースは失敗してしまうことになると思います。 この現象を回避するコマンドの書き方はありますでしょうか? タグのつけ方が何か悪いのでしょうか? タグを適切につけたらこのようなことはおこらないのでしょうか? (SVNならこんな苦労はしないはずなのに…とも思っています) 対応方法・アドバイス等よろしくお願いします。 (SVNを使ってとかはナシで)

  • SQLで取得可能でしょうか

    SQLで取得可能でしょうか 今2つのテーブルがあるとします。 ---------------------- テーブル1  KEY    項目   1   テスト1   2   テスト2   3   テスト3 ----------------------- ---------------------- テーブル2   CD  名称    1   か   1   き   2   さ   2   し   2   す   3   た ----------------------- テーブル1のKEYはキーで重複しません。 テーブル2のCDは重複しますが、内容はテーブル1のKEYとリンクします。 今、テーブル1のKEY1件につき、データを1件取得したいのですが、 テーブル2の名称も取得したいです。 データは1件しか取得しない為、名称は、特定文字(例として/)で 区切って取得したいです。 期待したい結果 ----------------------  KEY  名称   1  か/き   2  さ/し/す   3  た ---------------------- このような取得は可能でしょうか? 尚、SQLの発行は1回のみで行いたいです。 よろしくお願いします。

  • CとC++をスクールで習おうと思うのですが。

    CとC++をスクールで習おうと思うのですが。 私は現在勤め先でデザイナーをしておりまして、アプリを作るのでプログラマーと一緒に仕事をしています。 しかし最近、デザイナーもプログラミングの習得が必要だと感じてきました。 といってもプログラミングが全く未経験なわけではありません。 初級ですが、以下の言語を使って簡単なツールを作った経験があります。 c、c#、javascript、vba(excel)、php、html、perl、独自言語、など ・excel上で外部ファイルを読み込んで様々な解析を行なうツール(vba) ・Web上で外部データや他のサイトからデータを収集して解析し、それをWebで結果を表示(php、js、perl、html) ・windows上で動く特殊な計算機(c#) ・CGツール(コンピュータグラフィック)上で動作する独自言語 こういう経験があるのですが、function関数を作ってファイルを読み書きして超初歩的なGUIを作れる程度のことしかできないんです。 私に足りないのは、「クラスって何?」「ポインタって?」「メモリ管理なんてしかことない」「リソースってどういうこと?」。 これらが仕事上で使わないので全然使い方がわからないのです。 しかしプログラマーと会議するときにこういう話が出てきて、理解できていないのでなんとかしなくてはなりません。 あと、VisualStudioを使ってみたことはあるのですが、いろいろなファイルが最初からあってこれらの意味もわかりません。 私は多少使ったことがある言語は習ったわけではなく本で勉強しながら覚えたので、プログラミングの基本が全くわかっていないようなのです。 こういうときにスクールに通うのは有効でしょうか? 都内なのでKen Schoolとかいいのかなあと思っているのですがどうでしょうか?

  • CとC++をスクールで習おうと思うのですが。

    CとC++をスクールで習おうと思うのですが。 私は現在勤め先でデザイナーをしておりまして、アプリを作るのでプログラマーと一緒に仕事をしています。 しかし最近、デザイナーもプログラミングの習得が必要だと感じてきました。 といってもプログラミングが全く未経験なわけではありません。 初級ですが、以下の言語を使って簡単なツールを作った経験があります。 c、c#、javascript、vba(excel)、php、html、perl、独自言語、など ・excel上で外部ファイルを読み込んで様々な解析を行なうツール(vba) ・Web上で外部データや他のサイトからデータを収集して解析し、それをWebで結果を表示(php、js、perl、html) ・windows上で動く特殊な計算機(c#) ・CGツール(コンピュータグラフィック)上で動作する独自言語 こういう経験があるのですが、function関数を作ってファイルを読み書きして超初歩的なGUIを作れる程度のことしかできないんです。 私に足りないのは、「クラスって何?」「ポインタって?」「メモリ管理なんてしかことない」「リソースってどういうこと?」。 これらが仕事上で使わないので全然使い方がわからないのです。 しかしプログラマーと会議するときにこういう話が出てきて、理解できていないのでなんとかしなくてはなりません。 あと、VisualStudioを使ってみたことはあるのですが、いろいろなファイルが最初からあってこれらの意味もわかりません。 私は多少使ったことがある言語は習ったわけではなく本で勉強しながら覚えたので、プログラミングの基本が全くわかっていないようなのです。 こういうときにスクールに通うのは有効でしょうか? 都内なのでKen Schoolとかいいのかなあと思っているのですがどうでしょうか?

  • ロック処理について

    ロック処理について my$id="abc"; open(IN,"file"); while(<IN>){ my ($cid) = split(/\,/); if($cid eq $id){&error;} } close(IN); open(OUT,">>$file"); print "$id,$pass\n"; close(OUT); いままで上記のような書き方でも普通にロック機構を使っていたのですが、 ふと、追加書込みなら必要ないのではと思い至りました。 上記のようにファイルに追加書込みする場合は、ロックは必要ないのでしょうか?

    • ベストアンサー
    • yuutoOK
    • Perl
    • 回答数3
  • C言語にてプログラミングを行っていて、FindFirstFileにてフ

    C言語にてプログラミングを行っていて、FindFirstFileにてファイル名を取得しようとしていますがうまくいきません。 第一引数に「D:\test\aaa*」と指定して、aaa01、aaa02、aaa03のようなファイル名が取得したいと考えています。 FindFirstFileの戻り値として、INVALID_HANDLE_VALUEがくるため目的の動作になりません。 上記のような事はできないのでしょうか? いろいろ調べてみましたが解決できなくて質問させていただきました。 以上ですが、よろしくお願いいたします。

  • perlのシングルクォートとダブルクォートの置き換えについて

    perlのシングルクォートとダブルクォートの置き換えについて お世話になります。 現在、perlにて開発を行っているのですが、一つ問題に当たってしまいました。問題になっているのは、文字列を扱う部分です。perlにおいて文字列はシングルクォートに囲まれたものと、ダブルクォートに囲まれたものがあると思うのですが、この両者の違いは、内部に書かれた変数等を展開するか否かだったと思います。 実は開発の途中でこのシングルクォートで囲まれた文字列を、ダブルクォートに囲まれた文字列に変更しなければいけなくなりました。つまり $test = 'aaa';  を  $test = "aaa"; としたいのです。これってperlの仕様的に可能なのでしょうか? かなり悩んだのですが、どうしてもわかりませんでした。 ちなみに、なぜこの処理が必要なのかというと、HPの製作をしているのですが、設置したフォームからその内容を得るというプログラムを書いた際に、そのフォームの内容がシングルクォートでしか得られないからです。シングルだとそののちの処理に影響が出てしまうのです。 だれかご存じないでしょうか。よろしくおねがいします。

    • ベストアンサー
    • icomic
    • Perl
    • 回答数8
  • perlによる ファイル内容 検出方法について

    perlによる ファイル内容 検出方法について なかなかPerlに慣れない初心者です。 大量のデータ処理のため、効率よいプログラムを教えてください。 下記のような2ファイルがあります。 ファイル(1) 数千万行 タブ区切り 5列 00:00:00^ 1212bb121ab21^ AAAA^ あいす なつ^ 1 00:00:00^ 1212bb121ab21^ BBBB^ ちゃいろ^ 1 00:00:00^ 3a12bb121ab21^ ABABCDD^ さんすう 理科 100点^ 1 00:00:00^ fa12bb1333b1e^ ACF^ さんすう 理科 100点^ 1 00:00:00^ ea12bb1333b1e^ ZZZZZ^ 社員 会社^ 1 00:00:00^ za12bb1333b1e^ ZZAZZ^ 担当^ 1 … ファイル(2) 百万行 タブ区切り 2列 1212bb121ab21^ あいす 3a12bb121ab21^   98点 ea12bb1333b1e^ 社員 ea12bb1333b1e^   会社 … この場合、ファイル(2)の内容がファイル(1)にあった場合、そのリストをファイル出力したい。 OUTPUTファイル 1212bb121ab21^ あいす ea12bb1333b1e^ 社員 ea12bb1333b1e^   会社 … どのように書けばよいか 教えてください。

    • ベストアンサー
    • 1204533
    • Perl
    • 回答数4
  • Excelのcsv形式の読み込み

    Excelのcsv形式の読み込み 前回、http://okwave.jp/qa/q6018540.htmlで 質問させていただきましたJurassic_periodです。 お力を貸していただきました方々本当にありがとうございました。 今回ですが同じプログラムでまた壁にぶつかってしまいました。 どうかよろしくお願いいたします。 Excelのcsv形式の「file.csv」のようなデータを読み込んでいます。 「out.csv」のように出力したいのですが 未入力「""」のデータ箇所が多々ある事に気が付きました。 次データを読み込むため出力データがズレてしまい困っています。 「file.csv」 "2010/1/1","C","こんにちは","田中","end", "2009/10/2","B","おはよう","","end", "2007/3/20","E","Good mor ning","佐藤","end", "1988/8/16","","こんばんは","中 村","end", "","A","Hello","木村","end", "2005/9/17","D","おはようご ざいます","斎藤","end", 「out.csv」(このように出力したいです) C,こんにちは,田中,2010/1/1,end, B,おはよう, ,2009/10/2,end, E,Good morning,佐藤,2007/3/20,end, ,こんばんは,中村,1988/8/16,end, A,Hello,木村, ,end, D,おはようございます,斎藤,2005/9/17,end, 解決法として、正規表現を用いて「半角スペース」を入れようとしました。 また、直接「file.csv」の「,"",」を置換で「," ",」にしましたが 基データを操作するのは好ましくないのでプログラムで どうにか処理ができないでしょうか。 「今書いているプログラムです」 #!/usr/local/bin/perl use strict; use Fatal qw/ open /; my $csv_file = "file.csv"; my @csv; &readCsvFile($csv_file); open(OUT,">out.csv"); for(my $i=0; $i<=$#csv; $i++){ $csv[$i][0] =~ s/"//; #行頭の"を削除 $csv[$i][4] =~ s/"//; #行末の"を削除 $csv[$i][0] =~ s// /; #空データを半角スペースに置換 $csv[$i][1] =~ s// /; $csv[$i][3] =~ s// /; print OUT $csv[$i][1],","; print OUT $csv[$i][2],","; print OUT $csv[$i][3],","; print OUT $csv[$i][0],","; print OUT $csv[$i][4],",\n"; } close(OUT); sub readCsvFile { open(IN, $_[0]); my $line = ""; while(<IN>) { chomp; $line .= $_; next if $line !~ /end/; push @csv, [ grep { length } split(/","|",|"/, $line) ]; $line = ""; } close(IN); } どうか、よろしくお願いいたします。

  • 職業Windowsプログラマの方へ質問です。

    職業Windowsプログラマの方へ質問です。 Windowsプログラムの勉強を始めて早2ヶ月ちょっとたちますが 連日悩むことばかりです。 関数多いし引数多いし変数の型多いしメッセージ&パラメータもめっちゃ多いし。 お仕事でプログラム作られてる方ってまさか全部覚えてるんですか? この処理どうやったらいいんだろうって悩んだりしないんですか? 僕はしょっちゅうです。 是非そのへんが聞きたいです。 合わせて一つ教えてください。 switch文の中でbreak;とreturn 0;の使い分けがわかりません。 どちらを使っても今のところ何の問題も起きていません。 break;はその処理を抜けさせて次へ移る。 たとえばforやifで特定条件に合致したら抜ける。みたいな使い方しています。 return 0;は関数等で戻り値が必要ないときとかにvoidと合わせて使っています。 switch文ではどのように考えればいいんでしょうか?

  • Perlにおける(もしくはPHP)日付の比較について

    Perlにおける(もしくはPHP)日付の比較について csvデータで下記のようなファイルがあります。 ブラウザに表示させる時、古い順に10件ずつ表示させたいと思いますが、初心者なりに調べたのですがどうも分かりません。 こうした場合どういう技術を使うのでしょうか 2010/06/24,りんご,青森 2010/05/10,みかん,和歌山 2010/3/10,もも,山形 お手数をおかけしますがご教授頂ければ幸いです

    • 締切済み
    • jm3atn
    • Perl
    • 回答数2
  • 日付の差を求める関数はないでしょうか。

    日付の差を求める関数はないでしょうか。 SQLのDATEDIFFのような単純明快な関数があればいいなぁと思っています。 できれば、Perlの組み込み関数か、標準モジュールで・・・x_x

    • ベストアンサー
    • zyousuke
    • Perl
    • 回答数3
  • Cプログラミングの関数電卓のアルゴリズムについてですが、

    Cプログラミングの関数電卓のアルゴリズムについてですが、 標準入力からの文字列式を、トークンに区切り、先頭から配列型スタックに格納して、計算を行う処理を考えていて、 a-b-cという処理のアルゴリズムに困っています。 どういった解決策があるのか教えて頂けませんか?? お願いします!! フローチャートを書くほどの事でも無いと思うので、僕が考えていたアルゴリズムを、文で記載しますが、できれば、このアルゴリズムからどうすれば解決できるかを考えて頂けたらとても助かります!! 1. 別のスタックを用意して、元々のをstack1,コピー用をstack2とし、stack1のトップからstack2に格納。(スタックの構造は二次元文字型配列) この場合、cからstack2に格納される。 2. 演算子を見つけると、その前後の数字をその演算子によって処理。 この場合なら、c-bという処理。 3. 計算結果を、cが格納されていた、演算子の前に格納。 4.引き続き、この操作を繰り返す。 これを考えてたんですが、実行すると、(c-b)-aという式になり、違う答えが出てしまいます。加算ならば影響はでません。 きちんと(-c-b)+a の処理をさせるにはどうしたら良いかがわからないです。 お願いします!! ※返事が多少遅れるかもしれませんが、すみません!!