関数内での配列の使用について


たかし  2003-02-01 17:05:19  No: 2773  IP: [192.*.*.*]

関数内で配列を使うとうまくいきません。
StrToInt(Format('%',[FloatToStr(Ldexp(1,i))]))  →○

StrToInt(Format('%',[FloatToStr(399*(TOPO[1,ITEMP]-ELMIN)/(ELMAX-ELMIN))]))→×

TOPO:array [0..100,0..100] of Real48;と宣言しています。

配列の使用方法が間違っているのでしょうか?
もしくはFormat関数の中身が間違っているのでしょうか?
どうかよろしくお願いします。

編集 削除
たかみちえ  URL  2003-02-01 20:04:22  No: 2774  IP: [192.*.*.*]

うまくいかないとは?
エラーメッセージが出るんでしょうか?
もしそうなら、どんなメッセージでしょうか?

編集 削除
にしの  2003-02-02 00:25:20  No: 2775  IP: [192.*.*.*]

Formatの形式文字列に、'%'のみはあり得ません。必ず変換型文字がつきます。
なので、最初の1文も失敗するはずなのですが、うまくいってしまうのですか?

エラーメッセージなども含めて、もう少し詳しくかかれると、コメントしやすいかと思います。

編集 削除
たかし  2003-02-02 04:52:48  No: 2776  IP: [192.*.*.*]

たかちみえさん、にしのさんありがとうございます。
「'.'が必要な場所に'['があります」とメッセージが出ます。
FloatをIntegerにしたいのですが、
Int関数を使うと戻り値はExtendedなので一度Format関数でStringに
変換してIntegerに変換しようとしています。

編集 削除
たかみちえ  URL  2003-02-02 09:10:34  No: 2777  IP: [192.*.*.*]

'.'が必要な場所に'['があります
  このエラーメッセージは単純な構文ミスです。
[や(の数などを確認してみてください。
(確認してみただけでも]が一個抜けてますね)

  にしのさんの言うとおり、一個目のコードも問題なんですけど、
いちおう、コードを通ってなければ、エラーにはならないはずなので^^;

  ヘルプのFormat型とその形式文字列のページを、
もう一度よく見てみてください。

編集 削除
たかみちえ  URL  2003-02-02 09:12:43  No: 2778  IP: [192.*.*.*]

ごめんなさい^^;見た限りではまったく問題ないですね。

編集 削除
たかみちえ  URL  2003-02-02 09:15:12  No: 2779  IP: [192.*.*.*]

たびたび書き間違えています^^;
"まったく問題ない"と言うのは、"確認しただけでは構文エラーはないですね"と言うことです。

編集 削除
たかし  2003-02-02 09:27:47  No: 2780  IP: [192.*.*.*]

ありがとうございます。
]が抜けているところはどこなのでしょうか?
自分で見てもわからないので教えて頂きたいのですが・・・

Extended型から切り捨ててInteger型にするにはどのようにするのが
スマートなのでしょうか?

編集 削除
たかみちえ  URL  2003-02-02 09:31:40  No: 2781  IP: [192.*.*.*]

わたしもエラーを見てどこだかわからなくなること、よくあります。

  だいたいエラーメッセージをクリックしたときにキャレットがそのそばにあうので、
それでわかるんですけど、
少し上の構文エラーが、そこに来て問題を起こしている可能性もあります。
エラー行を含め、ちょっと上も合わせて探して見てください。

  どうしても見つからないなら、その辺りをもう一度書き直して見てください。
多分見つかるはずです。

編集 削除
たかし  2003-02-02 10:06:59  No: 2782  IP: [192.*.*.*]

タイトルの内容がふさわしくないと思われるので他のタイトルとして移動します。
たかちみえさん、ありがとうございます。

編集 削除