文字から数字に

返信する


答えを正確に入力してください。答えられるかどうかでスパムボットか否かを判定します。

BBCode: ON
[img]: ON
[url]: ON
スマイリー: OFF

トピックのレビュー
   

展開ビュー トピックのレビュー: 文字から数字に

Re: 二倍勉強になった。

by 淡幻星 » 2006年3月17日(金) 20:41

解決済みのようですが、蛇足でつっこんで(?)みます。
任三郎さん さんが書きました:> しかしメモリ確保って多めでも支障ないのですかね?
基本的には支障ないです。
もちろん必要な分だけ確保するのが正しいのですが、
いまどきのパソコンであれば、少々無駄に多く確保したところで、
影響は高が知れていると思います。


以下、蛇足の蛇足。
無駄に多く確保して困った例としては・・・ローカルの配列を静的にたくさん
宣言しすぎたときに、実は確保に失敗しているのにエラーメッセージがでず、
関数を抜けるときに開放エラーしたことがあります。
エラー発生箇所と原因箇所がずれていたので、特定にやたら苦労しました。
確か256Byte×10以上は確保してたかと。C++の話ですけど。
ABでも同じように確保しすぎて落ちたことがあります(数値は忘れました)。
こちらはコンパイル自体が通りませんでしたけど。
これらはどちらも静的確保の場合の話なので、動的(calloc等)に確保する分には
問題は起きないと思います。少なくとも私は起きたことがありません。
起きた(確保失敗)としても、try,catchなどの例外処理がABにはまだ
無かったと思うので、手のうちようがないですし・・・^^;

二倍勉強になった。

by 任三郎 » 2006年3月14日(火) 01:29

みどるべあさん、7さん

ありがとうございました。
2通り試せて二倍に勉強できました。

しかしメモリ確保って多めでも支障ないのですかね?

まだまだですね・・・。

またお願いします。

by みどるべあ » 2006年3月13日(月) 17:53

とっても暇だったので一カ所に固めてしまいました。
見づらいとかそういうのは…気にしないでください(爆

コード: 全て選択

Sub MainWnd_CommandButton1_Click()
   Dim szStr[255] As Byte
   GetDlgItemText(hMainWnd,EditBox1,szStr,255)
   SetDlgItemText(hMainWnd,EditBox2,Str$(Val(szStr)*10))
End Sub

Re: 文字から数字に

by 7 » 2006年3月13日(月) 16:24

> Sub MainWnd_CommandButton1_Click()
> c=Str$(b)
> SetDlgItemText(hMainWnd,EditBox2,c)
> End Sub
BytePtr型変数はまず必要に応じてmalloc()かcalloc()関数でメモリを確保しなければなりません。
BytePtrに関する関数は、lstrcpy(),lstrcat(),lstrlen(),lstrcmp()などがあるのでヘルプを読んで下さい。

確保したメモリは使い終わったらfree()関数で解放する必要があります。

文字から数字に

by 任三郎 » 2006年3月13日(月) 15:42

質問します。

EditBoxに数字を入力しプログラム内部で
その数字を計算させるためにValで変換し
その答えを再び別のEditBoxに表示させるには
Str$を使ったのですがうまくいきません。

Dim a[255] As Byte
Dim b[255] As Double
Dim c As BytePtr

b=Val(a)*10

Sub MainWnd_CommandButton1_Click()
c=Str$(b)
SetDlgItemText(hMainWnd,EditBox2,c)
End Sub

基本的にcをBytePtrにしなければいけないのかが
分かっていないみたいです。
変数を関数に渡すポインタのことを勉強しなければ・・・・・。
どなたかよろしくお願いします。


Sub MainWnd_EditBox1_Change()
GetDlgItemText(hMainWnd,EditBox1,a,255)
End Sub[/code]

ページトップ