• ベストアンサー

COBOLのINITIALIZEにあたるもの

配列や変数を初期化する際、 COBOLだとINITIALIZE文でクリア出来ますが、 VBのそれにあたるのは無いでしょうか? もし無ければ、他の方法があれば(特に配列を 1回でクリア出来る方法)、書き込みをお願い致します。

  • su-ta
  • お礼率54% (128/234)

質問者が選んだベストアンサー

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.2

配列の初期化はEraseがあります。 Eraseを使用すると、動的配列を解放し、固定配列の場合は内容の初期化を行う。 表記上ですが変数はA=B=C=0の書式も不可のようです。

その他の回答 (2)

  • TAGOSAKU7
  • ベストアンサー率65% (276/422)
回答No.3

履歴です。 配列初期化に関するスレッドです。

参考URL:
http://oshiete1.goo.ne.jp/kotaeru.php3?q=317246
su-ta
質問者

お礼

>回答者の方々 ありがとうございました。 参考になりました!

  • mfuku
  • ベストアンサー率50% (173/345)
回答No.1

配列をクリアするにはEraseステートメントがあります。 配列以外の通常の変数は地道に下記のようにするしかありません。 Dim strMoji As String Dim intSuji As Integer ・・・・・・・(略) strMoji = "" intSuji = 0

su-ta
質問者

お礼

ありがとうございました。 参考になりました。

関連するQ&A

  • COBOL

    COBOLから.NETへ移す作業をしております。 以下の点で詰まりました。 1、pic X(03) COLUMN 7. このうち、COLUMNは何をしているのでしょうか? 調べてもわかりませんでした。 2、 MOVE ZEROとイニシャライズの違いについて MOVE R-TBL TO ZEROとINITIALIZE R-TBL 実際に何が違うのでしょうか? R-TBL内にname pic X(08)という変数と number pic 9(2)という変数があったとすると ZEROの方は name⇒"00000000" で number⇒0 INITHLIZEの方は name⇒""  で number ⇒ 0 でしょうか? 3、HIGH-VALUEについて HIGH-VALUEが取りうる最大値を表すことはわかりました。 VBでもC#でもchar.MAXVALUEみたいに取れます。 name pic X(10)にHIGH-VALUEを入れるとすると.NETで実現しようとすると string name = char.MAXVALUEとなります。 これを 01 R-TBL. 02 box PIC 9(5). 02 id PIC 9(5). に代入したいのですがうまく出来ません。 どうすればよいのでしょうか?

  • COBOL

    こんにちわ。COBOLプログラムの解析をしています。 現状不可解な問題に直面しています。 IF A=189 AND B=200 or 201 or 202 プログラム内に上記のような判定文があります。 プログラムを実行するとこの判定分が真になる場合があります。 真になった際の変数A及び変数Bの中身を見てると以下の2通りでした。 (1)A=189 B = 200 (2)A= 299 B= 202 (1)は正しいと思いますが、(2)の場合に真になるということがありえるのでしょうか? いや実際に、なったのですがどういう原因が考えられるしょうか? 注:会社で使用しているプログラムの為本文は出せません。

  • COBOLで文字変数Aと絶対に一致しない特殊値は?

    COBOLでプログラミングをしています。ある変数AとBがあり、どちらも領域はPIC X(1)です。 この変数Aを、いかなるときでも変数Bと一致させたくないとき、Bに入れる「END OF FILE」のような特殊な値って無いのでしょうか? そのような値が存在するならば、AかBにその特殊な値を入れておけばいいと思うのですが、 もし無いとすれば、以下のような処理をスマートにCOBOLで作るには、どのように作るのが一般的ですか? PERFORM文を用いて終了条件がA=Bのとき、 最初の処理では必ずPERFORMの中の処理を行い、 2回目からは終了条件で実行するかどうかを判定するような処理 よろしくお願いします。

  • VB6 配列を初期化したい

    VB6でループさせて配列に値を入れて、計算させて最終的に求めたい値をRとします。そのときループで繰り返すためか同じ配列に値を入れてどんどん値がでかくなりRの値がおかしくなってしまいます; おそらく問題は一回前に入れた配列がそのままのこってしまってるからなのだと思うのですが; 配列の中の値をクリアする方法はないものでしょうか? 一応、配列=0として初期化しようとしても値は変わらず前のが残ったままになってしまっています; どなたかわかる方いらっしゃいましたらご回答宜しくお願いします その他何かいい方法があればそれも教えていただけたらと思います

  • 宣言した変数、配列をプログラム実行中なるべくたやすく初期化したい。

    VB.Net2003を使用しています。 最初プログラムを実行中、宣言した変数、配列をプログラムをなるべくたやすくまとめて初期化する方法はありませんか。

  • VisualBasic6からVB2005に移行に難儀しています。

    .NETが流行りだした時期にパソコンから遠ざかっていましたので、昔作成したVB6のアプリケーションをVB2005に書き直そうと大それたことを考えています。 VB6のソースをVB2005に自動的に書き直すVisualBasic アップグレードウィザードで変換しましたが、案の定、変換エラーだらけでした。 Public easy(5) As Boolean等はそのまま変換していますが、Typeでユーザー定義型を作成した配列は、 以下のようにVB6だけの知識では理解不能な書き換えや説明が付加されていました。 StructureはTypeの意味だとわかりますが、<VBFixedArray((10))>や 変数を初期化する必要があるなど、どのタイミングで初期化する (追加記述しなければいけない部分が何なのか)わかりません。 また、ステートメントやメソッド?が異なる(アップグレード)されたとか 詳細についてクリックしてくださいとありますが、クリックしても無反応でした。 Structure AruKata Dim num As Byte <VBFixedArray((10))> Dim pos() As Byte 'char 'UPGRADE_TODO: この構造体のインスタンスを初期化するには、"Initialize" を呼び出さなければなりません。 ... Public Sub Initialize() ReDim pos(10) End Sub End Structure 'UPGRADE_WARNING: 配列 AruKata で各要素を初期化する必要があります。 詳細については... Public difficult(8) As AruKata このようにVB6からVB2005に移行するにあたって、よく説明している書籍など(あるのかな?)ありましたら教えてください。

  • 配列と他の変数のメモリ領域重複の問題について質問

    dsPICで配列を使用する際、他の変数もその配列の存在するメモリ領域に配置されてしまいます。 プログラムにはC言語を用いています。環境は「MPLAB C30 v3.31」、「MPLAB LINK30 v3.31」「MPLAB v8.85」です。 状況としてはunsigned char型で要素数320の配列をグローバル宣言します。そしてmain関数やその他の関数内でローカル変数を宣言するとその変数が配列の中に存在することになってしまうというものです。色々試したところ、そのローカル変数をstaticで宣言するとそのような症状は出なくなりました。 この現象には、初期化をする関数内でカウンタとしてローカル変数を宣言し、for文で配列を0でクリアさせようとしたところ、MPLABSIMでデバッグすると永久ループしたことから気づきました。Watchを用いて確認したところ配列の中にそのカウンタ変数が配置されていたため最終的に自分自身を0でクリアしてしまうことで永久ループしてしまうことがわかりました。 なぜこうなるのかよくわかりません。この配列以外にはおおきな領域を必要とする変数は宣言していませんのでData memoryの容量的な問題ではないと思っています。staticで宣言すれば何とかなりますが、これでは無駄なメモリを消費してしまいます。また、絶対アドレス指定をする方法もありますが、「ignoring address attribute applied to automatic 変数名」というwarningがでて結局出来ませんでした。 。 このような現象を起こさせない様にするため,、確実にメモリを確保するためにはどうすればよいのでしょうか。 この問題のために先に進めず、大変困っております。どうかご教授ください。 もう一つ、変数の生存期間について質問なのですが、ある関数内で宣言したローカル変数をカウンタとして使い、指定の回数だけ他の関数を繰り返し実行する場合、他の関数に飛んだ時もそのローカル変数は確実に生存しているのでしょうか。重ねてお願いします。 不足がございましたら補足しますのでお教え下さい。

  • COBOLソースに記述するホスト変数を使用したSELECT INSER

    COBOLソースに記述するホスト変数を使用したSELECT INSERT分に関する質問です。 COBOLのソースに下記のようなSQL分を記述した際、どのような制御でホスト変数にはどのような値が代入されるのでしょうか? SELECT MAX(columnA) INTO :H1010:H2020 FROM A_TABLE WHERE …(以下抽出条件) ※H1010及びH2020はホスト変数定義しているものとします。 SELECTを行った項目数とINTO句にて指定した変数の数が異なる場合、エラーとなる記憶があります。 また、複数のホスト変数を使用する場合、カンマ区切りが必要だった記憶もあります。 実際に実行したところ、エラー等無く実行されました。結果を見るとH1010には値が代入され、H2020は初期値のままでした。 どのような制御でこの結果になっているのでしょうか? 参考までに、DBMSは「symfoware」です。 もしご存知の方がいらっしゃいましたら、ご教授頂けると助かります。よろしくお願いします。

  • 配列内の内容を全て表示する方法

    配列s(カウント)という変数があったとします。 この配列の中に、きちんと数値が入っているか 調べたいので、配列内の内容を全て表示する方法が あったら、書き込みお願い致します。 (イミディエイトウィンドゥを使ってみたのですが、 指定した配列内容しか表示されませんでした。 使い方がまずかったか?)

  • VBで配列に格納されているデータをUPDATEや INSERTするには

    配列変数にあるデータを一度に更新や追加したい場合SQL文を(繰り返し)ループするのが良いのでしょうか?ほかに方法はありますか 例えば dim AAA(100) as integer dim BBB(100) as string にさまざまな値データが入っているとしてそれらを、SQL文にして書き込みしたい 場合です。データテーブルはあるものしますが、何番目の配列までデータが 入っているか可変です よろしくお願い致します

専門家に質問してみよう