取得、結合を行う関数

オープンソース形式でコードを共有するフォーラムです。お役立ちコード、あなたも投稿してみませんか?
返信する

使えそうか?

1 個までオプションを選択できます

 
 
投票結果を見る

メッセージ
作成者
雷電
記事: 104
登録日時: 2006年8月21日(月) 14:26
お住まい: 兵庫県
連絡する:

取得、結合を行う関数

#1 投稿記事 by 雷電 »

関数の説明

SelUnite関数:

二つのアイテムの文字列を取得して、結合させる関数。
パラメータを少なくするのにてこずった・・・

パラメータ:

nID1・・・結合させる文字列のあるアイテムのハンドル
nID2・・・結合する文字列のあるアイテムのハンドル
AfterUnion・・・結合後の文字列を格納する文字列変数

定義は パラメータの数は多くなったが、GetDlgItem関数を使わないようにしたバージョン
※これは上記の関数と一緒に定義してください。 追記:この関数は、ActiveBasic Ver4.24で動作確認しています。
最後に編集したユーザー 雷電 [ 2006年9月01日(金) 13:57 ], 累計 2 回
===============================
MyHomePage;; raiden.no.land.to/
===============================
7
記事: 473
登録日時: 2005年5月31日(火) 18:51
お住まい: 新潟県
連絡する:

Re: 取得、結合を行う関数

#2 投稿記事 by 7 »

> nID1・・・結合させる文字列のあるアイテムのハンドル
> nID2・・・結合する文字列のあるアイテムのハンドル
> buffer1=malloc(nID1+1)
> buffer2=malloc(nID2+1)
nID1がアイテムのハンドルだと分かっているのに、どうしてmalloc関数に指定してしまうんでしょう?
malloc関数に渡すべき値はハンドルではなくて、確保するメモリのサイズです。

ご自分で気付いているか分かりませんが、雷電さんはたまにそういうことをしています。
数値でしか表現されないので分かり辛いかもしれませんが、どういった意味を持つ数値なのかをしっかり把握しましょう...。
追記。
あ。ユーザー登録してますね!
雷電
記事: 104
登録日時: 2006年8月21日(月) 14:26
お住まい: 兵庫県
連絡する:

#3 投稿記事 by 雷電 »

失礼しました

訂正しておきます。
7さんは配列を使っておられますね。
配列を使うとどうしてもメモリ使用率が高くなってしまうので、なるべく避けています。
最後に編集したユーザー 雷電 [ 2006年9月01日(金) 13:58 ], 累計 1 回
===============================
MyHomePage;; raiden.no.land.to/
===============================
Indigo Visualist
記事: 33
登録日時: 2006年5月22日(月) 21:01
お住まい: 山口
連絡する:

#4 投稿記事 by Indigo Visualist »

ええと、7さんのようにSelUnite=1なりTRUEなりを返さないと、意味がないと思います。
メモリ使用率もそれほど気にする必要はないのではないでしょうか?
配列を使わずに書けるコードなら気にするほどのメモリを使っているとは思えませんし、
逆にメモリを大量消費するようなコードは、配列を使わないと流石に管理が大変だと思いますから。
雷電
記事: 104
登録日時: 2006年8月21日(月) 14:26
お住まい: 兵庫県
連絡する:

#5 投稿記事 by 雷電 »

> ええと、7さんのようにSelUnite=1なりTRUEなりを返さないと、意味がないと思います。
> メモリ使用率もそれほど気にする必要はないのではないでしょうか?
> 配列を使わずに書けるコードなら気にするほどのメモリを使っているとは思えませんし、
> 逆にメモリを大量消費するようなコードは、配列を使わないと流石に管理が大変だと思いますから。

コード: 全て選択

If Data="" Then 
        SelUnite=0 
        Exit Function 
    End If
このコードが入っています。失敗すれば、0が返ります。
戻り値はちゃんと設定してあります。
===============================
MyHomePage;; raiden.no.land.to/
===============================
Mario2
記事: 205
登録日時: 2005年5月31日(火) 13:31
お住まい: 大阪市
連絡する:

#6 投稿記事 by Mario2 »

> ええと、7さんのようにSelUnite=1なりTRUEなりを返さないと、意味がないと思います。
> メモリ使用率もそれほど気にする必要はないのではないでしょうか?
> 配列を使わずに書けるコードなら気にするほどのメモリを使っているとは思えませんし、
> 逆にメモリを大量消費するようなコードは、配列を使わないと流石に管理が大変だと思いますから。

コード: 全て選択

If Data="" Then 
         SelUnite=0 
         Exit Function 
     End If

このコードが入っています。失敗すれば、0が返ります。
戻り値はちゃんと設定してあります。
勘違いならすいませんが、関数って、(この場合"SelUnite"は)最初から0(FALSE)だったのでは?
だから、失敗しても成功しても0を返すような感じがします。
と言う事を、Indigo Visualistさんは言いたかったのだと思いますが・・・・見当違いならすいません。
だから、End Ifの次の行にでも"SelUnite=TRUE"と付け足せば成功なら1、失敗なら0が返ってくるのだと思います。
雷電
記事: 104
登録日時: 2006年8月21日(月) 14:26
お住まい: 兵庫県
連絡する:

#7 投稿記事 by 雷電 »

それが抜けてました。

失礼しました・・・

訂正します。
===============================
MyHomePage;; raiden.no.land.to/
===============================
返信する