アプリ版:「スタンプのみでお礼する」機能のリリースについて

例えば、iniファイルの中で
a = "2"
という設定が最初にあったときに次の行のbは
a = "2"
b = a
という風にaに設定した値2をbに代入したいのですが
上のような記述だとbの内容は文字列aになってしまいます・・・
このようなプログラムでいう変数の値を代入するみたいなことは
iniファイルではできるのでしょうか?

A 回答 (4件)

追記。



こういう事をする時は「循環参照」に気をつけること。

例えば

a=%c
b=%a
c=%b

などと書いてあると「ぐるぐる回って、永久に止まらなくなり、無限ループ」してしまいます。

なので「1回の値の評価の中で、1度参照した変数をもう一度参照したら、エラーで止まる」などの処理が必要です。

こういう「構文解析」や「変数参照」は、アルゴリズムがかなり複雑になり、これだけで本が1冊書けてしまいます。実装するなら「構文解析のアルゴリズム」について書かれた本を5~6冊くらい熟読してからにしましょう。じゃないと絶対に無理です。
    • good
    • 0

「iniファイルの中の、変数の値」をどう取り扱うかは、アプリケーション任せです。



>上のような記述だとbの内容は文字列aになってしまいます・・・

取り出した値が「a」だった場合、それを「文字列だ」と扱えば、文字列になってしまいます。

しかし、それを「変数名だ」と扱えば、それは「変数名」です。

文字列と思うか変数名だと思うかは、アプリケーションの自由です。

そして、それを変数名だと解釈し、iniファイルの中の「a="2"」の行から「2」を取り出し直すのも、アプリケーションの自由です。

「文字列と思うか、変数名と思うかは、アプリケーションの自由」なのですから「最初に取り出した『a』を、文字列だと思わず、変数名だと思えば良い」だけの話です。

ただし、単純に「文字列が書いてあったら、それは変数名だ」などと安直な処理をすると「iniファイルの変数に、文字列を設定できなくなってしまう」のでご注意を。

なので、例えば
b=a ← この場合は、文字列「a」が設定されていると解釈する
b=%a ← 先頭に%が1個あった時だけ、変数名「a」が設定されていると解釈する
b=%%a ← 先頭の連続する2個の%は「文字の%が1個」と解釈し、文字列「%a」が設定されていると解釈する
などのように「ちょっとした工夫」が必要でしょう。

もちろん、設定した値をiniファイルに書き出す際も「設定しようとした文字列の先頭に%があったら、先頭に%をもう1個足してから書き出す」などの処理が必要です。

「取り出した値をどう用いるかは、アプリケーションの自由であり、アプリケーションの責任である」と言う事を忘れないように。

「文字列が設定されていたから、それは文字列だ」と思考停止してしまうのは「無責任」ですから、アプリケーションがちゃんと責任を持って「しかるべき処理」をしてあげなければなりません。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
なるほど、たしかにそういう風にこちら側(プログラム側)で
解釈して読み取らないと駄目ですよね。
なんかiniファイルが勝手にやってくれるものだと勘違いしてました・・・

お礼日時:2010/02/04 21:57

プログラム内で、 


b = a  であれば、

a の値を b に代入する という処理を追加してください。
    • good
    • 0

自分でプログラムを書いているのでなければできません。

    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!