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


たかし  2003-02-02 02:05:19  No: 2773

関数内で配列を使うとうまくいきません。
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-02 05:04:22  No: 2774

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


にしの  2003-02-02 09:25:20  No: 2775

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

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


たかし  2003-02-02 13:52:48  No: 2776

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


たかみちえ  URL  2003-02-02 18:10:34  No: 2777

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

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

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


たかみちえ  URL  2003-02-02 18:12:43  No: 2778

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


たかみちえ  URL  2003-02-02 18:15:12  No: 2779

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


たかし  2003-02-02 18:27:47  No: 2780

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

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


たかみちえ  URL  2003-02-02 18:31:40  No: 2781

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

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

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


たかし  2003-02-02 19:06:59  No: 2782

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


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加