• ベストアンサー

変数を選択する方法はありませんか

いつもこのカテゴリーでお世話になっている初心者です。 ファイルから読み込んだ単純な数値などを対応する変数に順番にセットするときプログラム上の順番にファイル構造を作って読み込ませています。 この場合、ファイル内のデーターの順番は任意とし読み込んで変数にセットする際に対応する変数にセットすることは出来ないでしょうか。 ファイル内のイメージとしては //名称(変数対応) ,データー beer3 ,150 sake2 ,500 beer1 ,200 beer4 ,250 beer2 ,170 sake1 ,100 と・まこんな感じでファイル内のデーターは任意で用意しておきプログラムの中で対応する変数にセットしたいのですが 変数名 の 変数? 的になりどうにも良い方法が思いつきません。 なにか良い方法はないでしょうか

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

  • ベストアンサー
  • MASA_H
  • ベストアンサー率42% (64/151)
回答No.1

STLのstd::mapで連想配列が使えるのでそれで実装してみてはどうでしょう。

yzm250
質問者

お礼

MASA_H様 ありがとうございます。STL、連想配列って初めてしりました。 何かすごく難しそうですが見てみますと配列変数の指定数字を 文字列などを添え字とすることが出来るとあります。 この文字列を変数と置き換えると何とか行きそう?までは解りました。 チャレンジして見ます、ありがとうございました。

その他の回答 (1)

  • yama5140
  • ベストアンサー率54% (136/250)
回答No.2

>プログラムの中で対応する変数にセットしたいのですが ★「ランダム」なデータを全て読み込んで、「ソート」(*)でよいのでは。 *:プログラムに対応する順番になるように行(データ)を並び替え。 beer3 ,150 sake2 ,500 beer1 ,200 beer4 ,250 beer2 ,170 sake1 ,100 これを beer1 ,200 beer2 ,170 beer3 ,150 beer4 ,250 sake1 ,100 sake2 ,500 としたい、ですよね?。 「違う」場合は、私の「回答」はここまで。 ------------------------------------------------- ★スケルトンを・・・。 #define GYO 6 void SortData( char cWork[][64], int iLine ) { ヒント  strcmp() を用いる(戻り値、正負で大小判定)。  char cDummy[64];  for( i = 0; i < iLine; i++ ){    ・    if( 0 < strcmp( cWork[i], cWork[j] ) ) continue;    ( [i] [j] の入れ替え) } void main() {  int iLine = 0;  char cStore[GYO][64], cBuf[64];  (ファイルオープン)  while( NULL != fgets( cBuf, 64, fp ) ){   strcpy( cStore[iLine++], cBuf );  }  (ファイルクローズ)  SortData( cStore, iLine ); // 「ソート」呼び出し  (本体処理) } ☆「ソート」については、検索してください(参考URLのトップは文字列でなく「数」のソート例)。

参考URL:
http://lecture.ecc.u-tokyo.ac.jp/~cichiji/cp-01/cp-01-10-1.html
yzm250
質問者

お礼

yama5140さんありがとうございます。 実際の変数名は作業に応じた名前となっていてランダムです。 ソート出来るような名前と数字などで構成すればよいのですが プログラム作成の都合上それも出来ないので未だ方式が固まっていません。 1000個ほどの変数となります。 MASA_Hさんに解答して頂いた連想配列に挑戦中です。

関連するQ&A

  • 変数の内容をファイルに書き込む方法を教えてください。

    Visual Basic 2005です。 変数にはカンマ区切りのデータが記録されています。 例・2006,12,6,11,23,00,23.5 のような感じです。 これがDataという変数に入っている場合、このファイルをtxtファイルに上から順に書き込んでいくと言うプログラムです。 ファイル内はこのようになります 2006,12,6,11,23,00,23.5 2006,12,6,11,24,00,23.6 (改行される) 2006,12,6,11,25,00,23.7 (改行される) ・ ・ ちょっと手を貸していただけませんか。 お願いします

  • ファイル名を変数に取り込む方法について

    vbを使った例を教えてください。 ある指定されたフォルダーに複数のファイルがあるとして、 そのファイル名を変数に順番に取り込むプログラムの 参考がありましたら教えてください。 尚、プログラムでは、取り込んだ後に別の処理があり、 それが終了後にまた次のファイル名を取り込むような ステップを組む予定にしています。 こんな質問でご理解頂けますでしょうか? 宜しくお願い致します。

  • perlで変数の中身を変数とみなす方法ってありますか?

    perlで、変数の中身を変数とみなし、その中身を知る方法ってありますか? 具体的に言うと、 $abc = "$xyz"; $xyz = "test"; なる状況だったとして、$abc から "test" という文字列にたどりつく 方法ってあるのでしょうか? 何をしたいのかというと、テキストファイル上に "$xyz" と書かれてたと します。そのテキストファイルを perl で解読したとき、その時点での 実行中の $xyz に何が入っているかを得たいのです。 もちろん、連想配列を使えば似たようなことができるのは知っていますが、 性質上、できればスタティック変数を使いたいのです。 そのような方法は、perl には用意されているのでしょうか?

    • ベストアンサー
    • Perl
  • VBで環境変数をSETする方法

    バッチファイルを呼び出してセットする方法を用いてきたのですが、各マシンにより既に使用されている環境変数の領域がまちまちなため(?)、うまくいったり行かなかったりします。 VBで環境変数をセットする方法はないでしょうか? どなたか教えて下さい。よろしくお願いします。

  • phpで外部ファイルを取り込み変数にセットしたいです。

    phpで外部ファイルを取り込み変数にセットしたいです。 いつもお世話になっております。 外部ファイル(data.ini)を作ってphpで読み込み変数にセットして ブラウザに表示したいのですが外部ファイルを読み込む方法が わかりません。 外部ファイルの中身は 変数A=1 変数B=2 という変数が保存されています。 これを読み込んでphp側で取得、表示したいのですが 可能でしょうか?ご教示お願いします。

    • ベストアンサー
    • PHP
  • 変数にファイルの内容を定義する方法について

    バッチファイルでファイルの内容を変数に入れたい のですが方法がわかりません。 変数「FLG」にテキストファイルの内容を入れたいです。 set FLG = ここに何を書けばよいのでしょうか。 初歩的な質問で恐縮ですがよろしくお願いします。

  • ファイルのアップロードPGでのファイル名称変更

    いま、php にてファイルのアップロードのプログラムを作っています。 アップロードするときにそのファイルの名称を変更する方法はありますか? php もしくは javascript にてできればいいなと思っています。 なお、ファイルの名称はデータに登録されている変数の値を持ってきたいと思っています。 どうぞよろしくお願いいたします。

    • 締切済み
    • PHP
  • VC++でのプログラム実行中に変数の数値を確認する方法

    VC++でのプログラム実行中に変数の数値を確認する方法 VC++でプログラムを実行している間に、変数の中の数値がどのように変化するかを表示させるためにはどのような機能があるのでしょうか? 思いつくのは次の2つなのですが、具体的な方法が分かりません。 ご存知方がいたら教えてください。 ?ソースの中に特定の表示名令文を書いておく ?VC++の機能を使って変数の中身を表示させる

  • ファイルのデータを構造体に代入する方法

    学習し始めてから時間が経ちましたが、まだ初心者のまま・・・少しずつ頑張っている状態の者です。 今回はタイトルのことで御質問させてください。 関数Read(自己作成)でcsvファイルの内容を読み取り、読み取ったデータを用意しておいた構造体の変数ポインタを利用して代入しようと試みているのですが・・・要領がつかめません。 それで気になったのですが、読み込んだファイルを用意しておいた構造体に入れるにはどんな方法があるかよろしければご教授下さい。 私としてはforを使ったやり方があるのなら是非見本を見せてほしいのですが・・・ ちなみに、私が考えていたプログラム案は以下の通りです。 構造体にはcsvファイル・1レコード分の情報が入る構成。 構造体と読み取るファイルの構造は酷似しているが構造体全てに入る情報でない場合がある。 構造体には必要な分、配列領域を確保する ファイルの先頭アドレスはファイルポインタに代入。 構造体の先頭アドレスはポインタ変数に代入。   main関数とは別の関数の引数に2つのアドレスをコピー。 ★ そこでファイルデータを構造体へ代入しmainに戻って出力する。    その関数での戻り値は特になし(成功したら0・・・と考えていたのですが使い道が今のところはreturnだけです) ★で特に悩んでいるので、よろしくお願い致します。

  • ダミー変数

    エクセルでダミー変数を含んだデータをつくりました。 例えば、以下のようにです。 ABCD 0013 0109 1002 0106 A、B、Cがダミー変数です。Dはそのまま普通に数値として読ませたいです。 これをCSVファイルにしてRにインポートしたんですが、 そのまま統計分析するとエラーが出てしまいます。 ABC列がダミー変数だと認識していないからじゃないかと思ってるんですが(違うかもしれません)どうすればダミー変数と認識してくれるでしょうか。 (「数値変数を因子に変換」かと思ったんですが、 ABCを変換したい変数に選択すると、統計量の分析で選択できる変数から消えてしまってDしか出てこないんですがどうなってるんでしょう・・・あと水準名と数値のどちらを選べばいいかもよくわかりません・・) 基本的な質問ですみません。誰か助けてください。。

専門家に質問してみよう