論理式について伝授願います。
Do whileのあとの論理式のところで
例えば(0)〜(10)の配列の変数の内、
1,3,5,7,9,11
の変数しか欲しくない場合は論理式をどのように記述すれば
いのか迷っています。
Do While (???)の後に
どのような論理式を打てばいいのでしょう?
初心もので大変申し訳ないです。
>1,3,5,7,9,11
この数値は配列の添え字ですか?
(0) 〜 (10) なら 11 って存在しませんけど。
>Do While (???)の後に
>どのような論理式を打てばいいのでしょう?
この条件だとどんな論理式を打とうが Do ループ単体で実現するのは
ほぼ無理です。
# 配列内に次の添え字が格納されている場合は例外。
配列を先頭から走査していくとしたら、欲しくない変数を指した
ところで Do ループが終了してしまいます。
実際の処 (例示の数値を配列の添え字とすると) Do While 〜 Loop で
実現するなら例えば
dim idx ' 配列のインデックス値
Do While idx <= 配列添え字の最大値
idx が 1,3,5,7,9,11 かどうか?
欲しい変数に対して処理
idx = idx + 1
Loop
という感じになります。
...が、このようなループなら Do ループより For ループの方が楽です。
例示のように必ず 1 つおきに欲しい値が入っているならループ内で
idx の値をチェックする必要すらありません。(キーワード:Step)
(0) 〜 (10) なら 11 って存在しませんけど。
>>
すいません間違いました。
簡潔にいうと配列の奇数のインデックスだけ取り出したいのです。
添え字
>>
??ってなんですか?
Geo=TK3さん、返信ありがとうございます。
大変感謝したいところなのですが、
当方、初心者のため
より具体的なコードを提示してもらわないと
いまいちピン!ときません。
お手数ですが具体的なコードを記入してもらえませんか?
当方、別にDo whileにこだわっている訳ではございませんので
Forのコードの方も伝授して頂ければ幸いです。
>当方、初心者のため
>より具体的なコードを提示してもらわないと
>いまいちピン!ときません。
また初心者の特権乱用ですか?
教えを請う前にStepってキーワードが示されてるんだから
ちょっとぐらい自分で調べたらどうですか?
また、For分のサンプルなんてMSDNにもあるし
ネットで検索すれば山のようにあるでしょ
あなたも、くれくれ君ですか?
失礼で頭の悪そうな人が訪れたようなので、優しい私が相手してあげます。
但し、相手してあげるのは一回のみです。
返信されてもこれ以上馬鹿には付ける薬もないし自分の
している行為がどれだけ愚かか分かってないようなので。
↓サイトをクリックしてみてください。題名になんと書いていますか?
頭が特別に悪そうなので優しく教えてあげます。下のURLにカーソルを合わせて左クリックしてしばらく待ってみてください。
http://madia.world.coocan.jp/cgi-bin/VBBBS2/wwwlng.cgi
つまり、私が書いていることは当然のことなのです。
理解できますか?馬鹿のお前にわかりますか?
検索して調べろ!ということなら掲示板など必要ないのです。
初心者が嫌いならここに来る権利もあなたにはないのです。
さあ、権利のない君が言い返してきてください。
無視してあげますからw
> 無視してあげますからw
はいはいわろすわろす。
じゃ、次から君、無視ね。
私はバカなのでわかりませんが、For文とStepを組み合わせればいいという返答がついていることはわかります
それ以上をここで求める必要がないのもわかります
そしてガッさんの発言に同意するべきなのもわかります
私は、悲しい騎士さんがおっしゃっていることは正論だと思いますよ。
ここのサイトの人って具体的なこと教えれない人多いですよね。
長々とそんだけの文章書く間に言われた事調べてりゃ
そんな悩みはもうとっくに解決してるのに。
労力を注ぐ方向を間違ってるよ。
お前らってさあ、なんで人に教える気がないのにこの世に存在してる訳?
そっちの方が詳しくしりたいわ。
> お前らってさあ、なんで人に教える気がないのにこの世に存在してる訳?
> そっちの方が詳しくしりたいわ。
そんなことより質問したことは解決できたのか?
ヒントはもらっているはず、
全部コード書いてもらうのって自分で学ぶ気がないってこと?
で?もらったヒントは調べたの?
その上で、どこがわからないか聞いたら?
まぁここの人に馬鹿っていうくらいだからとっくに
解決してるよね?
>例えば(0)〜(10)の配列の変数の内、
>1,3,5,7,9,11
>の変数しか欲しくない場合
0〜10は固定なんでしょうか。
1,3,5,7,9,11はどうなんでしょう。
固定と可変を意識した質問をされた方が回答者には親切
ですよね。
勝手に0〜10は、配列の全ての要素。
1,3,5,7,9,11は一つ飛ばしと推測するばらば・・・。
For i = 1 to Ubound(配列変数名) Step 2
ほしい値 = 配列変数名(i) '但し11は代入されませんヨ。
Next i
1,3,5,7,9,11は奇数のみっていう意味なら
For i = 1 to Ubound(配列変数名)
if i Mod 2 <> 0 Then
ほしい値 = 配列変数名(i) '但し11は代入されませんヨ。
End If
Next i
回答者の立場を語れるような上級者ではありませんが、質問者へ
の厳しい指導(VB知識の向上)という意味で、「自分で調べろ!」
っていう親心的レスも、気持ちはわからないではないのですが、
質問者のここへ質問するまでの意欲や努力は、見えないわけです
から、「自分で調べろ!」って思う回答者はレスしなければいい
ので、単純に指導的立場は忘れて、知識供給のためだけの板って
割り切った板もありかなあって思う今日この頃です。
ありがとうございます!中途半端さん!いえ中途半端じゃ全然ないです。
ここにいる人はなぜ検索して調べろというのでしょうか?
それまでに検索しても分からなかったから使用がなく
ここに質問してくる人間もいるはずです。
回答者か釣師かしりませんが、回答する気もないのに
具体的なソースを聞いただけで教える気がないのか知識がないのか
血相をかえたようにMSDNで調べろとかぐぐれとかいいます。
そんなことするのであれば掲示板など最初から意味がないのです。
この掲示板の意図すら理解できてない人間が多いこと多いこと。
初心者だからこそ検索もままならないこともあるはずです。
中途半端(完璧)さんがいうように教える気がないなら
無視すればいいだけの話です。
こういう人は、道に迷ったとき地元の人がそこの地図で
自分で調べろと言われた時の気持ちは理解できないのでしょうか?
そういわれて嬉しい種族なのでしょうか?
まあ、文句はこれぐらいにして肝心のコードなんですが
中途半端(完璧)さんがおっしゃったとおりにコードを
打ちましたが私が欲しい変数ではなく10個のうちの頭の半分数が出てくるだけ
1 3 5 7 9といった等間隔の値が表示されません?
これは何がそうさせているのでしょう?↓にわたしがうったコードを示しますのでどこが悪いのか?見てください!!お手数ですがよろしくお願いします。
Dim i As Integer '配列の数字
i = 1
For i = 0 To UBound(nLOC) Step 1
nSTART = InStr(nSTART + 1, "sas(as(sda(ass(sasas(dasa(sas(s(((vrhr", "(") '"("の文字を探す
nLOC(i) = CStr(nSTART) '検索位置を保存
nLOC(i) = CStr(Mid("sas(as(sda(ass(sasas(dasa(sas(s(((vrhr", nLOC(i) + 1, 2))
TextBox1.Text = TextBox1.Text + nLOC(i) + vbCrLf
Next i
すいませんstepのところが2です。
ですが、これでも検索したい文字の半分数がでてくるのみです?
どうしてなのでしょうか?
M女史…?
> ここにいる人はなぜ検索して調べろというのでしょうか?
> それまでに検索しても分からなかったから使用がなく
> ここに質問してくる人間もいるはずです。
そういう人は淘汰されるべきで、擁護すべきではありません。
ここは「教えてあげる」掲示板ではなく、「技術を共有する」掲示板だからです。
また、質問者は確かに「プログラミング初心者」(という分別があるかどうかは分からないが)かもしれません。
しかし「質問初心者」であるべきでは無いと思います。
ここまで言えば、私の言いたいことが伝わったでしょうか?
> 回答者か釣師かしりませんが、回答する気もないのに
> 具体的なソースを聞いただけで教える気がないのか知識がないのか
> 血相をかえたようにMSDNで調べろとかぐぐれとかいいます。
> そんなことするのであれば掲示板など最初から意味がないのです。
具体的なソースを聞く前、貴方は重要なヒントを教えられましたよね?
それは例えば、
「おいしいスパゲティの作り方」を質問して「ソースは自家製がおいしいよ」と回答された後、
「すみません、自家製のソースの具体的な作り方を教えてください」と質問し返すようなものです。
回答者の答えをもとに自分で調べれば、
全てを教えてもらうよりももっと、回答者が建設的な意見を述べやすくなるとは思いませんか?
一時間もの間、貴方は何をしていましたか?
そこでした事をただ、回答者が回答し易くなるように情報を提供すればいいだけなのです。
> この掲示板の意図すら理解できてない人間が多いこと多いこと。
そうかもしれません。
> 初心者だからこそ検索もままならないこともあるはずです。
そうかもしれません。
しかしそれが言い訳として成り立たない掲示板もあるかと思います。
> 中途半端(完璧)さんがいうように教える気がないなら
> 無視すればいいだけの話です。
私は無視しませんでした。
そういう人もいます。
> こういう人は、道に迷ったとき地元の人がそこの地図で
> 自分で調べろと言われた時の気持ちは理解できないのでしょうか?
理解できます。
しかし、地元の人はその前に「あの鉄塔を目印にしていくといいよ」と答えたかもしれませんね。
> そういわれて嬉しい種族なのでしょうか?
さて、どうでしょう?
-----------------------------------
で、貴方が提示したコードですが、何をしたいのか分かりません。
なので、とりあえず nSTART の位置を調べてみては?
といっておきます。
ガッ
<<友達がいなからってオレに話しかけんな、
いちいち文章から読まずとも邪のオーラが
満ち溢れていましたのでまったくあなたの文章は
読んでいませんし、呼んでもいません。
勘違い野郎はさっさと寝ろ
はいはいわろすわろす。
オレ釣られてるし…
...アクセスしてない間にスレッドが何か凄い事に。
悲しい騎士さんの定義だと私もバカの仲間入りだけど、いきがかり上
今しばらく付き合わさせてもらいます。
>添え字
>??ってなんですか?
配列のインデックスと同じ意味で使ってます。
>より具体的なコードを提示してもらわないと
>いまいちピン!ときません。
>お手数ですが具体的なコードを記入してもらえませんか?
これはもう出してくれた方がいらっしゃるから大丈夫ですよね。
--(中略)--
>中途半端(完璧)さんがおっしゃったとおりにコードを
>打ちましたが私が欲しい変数ではなく10個のうちの頭の半分数が出てくるだけ
>1 3 5 7 9といった等間隔の値が表示されません?
奇数だけ辿るなら
For i = 1 To UBound(nLOC) Step 2
^^^^^
ですが、それでも 1 3 5 7 9 といった等間隔の値になるのは i であって
nLOC(i) の値は InStr で検索した "(" に続く 2 文字になってますから、
表示が等間隔にはならないのは当たり前のような。
もしかして、やりたい事は
(1) "sas(as(sda(ass(sasas(dasa(sas(s(((vrhr" から全ての "(" に
続く 2 文字を切り出して配列に保存。
nLOC(0) = "as"
nLOC(1) = "sd"
nLOC(2) = "as"
nLOC(3) = "sa"
nLOC(4) = "da"
〜
(2) インデックスが奇数の nLOC を表示
nLOC(0) = "as"
nLOC(1) = "sd" <- 表示
nLOC(2) = "as"
nLOC(3) = "sa" <- 表示
nLOC(4) = "da"
〜
なんでしょーか。
Geo=TK3さん、
またまた、ご返信ありがとうございます。
悲しい騎士さんの定義だと私もバカの仲間入りだけど、いきがかり上
今しばらく付き合わさせてもらいます。
<<
いえいえ、あなたを馬鹿の仲間入りにはしませんよ♪
ところで例の件なのですがw
私が↓の様に記述した動き的にはできるようになったのですが、
できたら、いちいち奇数の数を手入力せずに
関数か論理式で奇数の値だけを取り出してテキストボックスに表示させることは出来ないものでしょうか?
For i = 0 To 9 '配列10個が満タンになるまで代入
nSTART = InStr(nSTART + 1, "sas(lk(sec(ops(mjie(dgeta(emn(es(((ljgh", "(") '"("の文字を探す
nLOC(i) = CStr(nSTART) '検索位置を保存
nLOC(i) = CStr(Mid("sas(lk(sec(ops(mjie(dgeta(emn(es(((ljgh", nLOC(i) + 1, 2))
Select Case i
Case "1", "3", "5", "7", "9"
TextBox1.Text = TextBox1.Text + nLOC(i) + vbCrLf
End Select
Next i
>私が↓の様に記述した動き的にはできるようになったのですが、
>できたら、いちいち奇数の数を手入力せずに
>関数か論理式で奇数の値だけを取り出してテキストボックスに表示させることは出来ないものでしょうか?
出来ます。
...てゆーか、中途半端さんが出してくれたコードの中に奇数判定の
処理そのものが含まれてる版があるんですが...orz
# もちろんこれ以上ないほど具体的なコードです...
と、とにかく中途半端さんが出してくれたコードをもう一回じっくり
見返してください。
同じスレッドに投稿済みである以上、改めてコードは出しませんぜ。
みなさ〜ん!!
長々とお付き合いありがとうございました!
見事解決しました!
Geo=TK3さん
中途半端(完璧)さん
>>
ささいなことを訊いてしまってごめんなさい!多々協力感謝します。ありがとうございました!
♪o(⌒O⌒)o♪
ガッさん
悲しいのか?騎士さん
通ってみたさん
>>
人には優しくしましょうね?
そうじゃないと誰からも優しくされないし、相手にされなくなりますよ〜♪
それじゃみなさんバイバイきゅ〜ん♪♪(°▽^ *)ノ⌒☆
プログラミングは実力があれば相手にされる世界です。
仲良くなるのが目的じゃないので優しくなくても特に問題ないです。
…ってゆーか寧ろ回答者に優しい?w。
中途半端さんは
>質問者のここへ質問するまでの意欲や努力は、見えないわけですから
と書かれましたが、数百の質問に回答を付けると、質問文・コード
を見れば意欲や努力が分かるようになります。
目の前に答えがあっても見えてない時点で基礎が足りないことは
明白。示されたキーワードが目に入らないから
>ここにいる人はなぜ検索して調べろというのでしょうか?
>それまでに検索しても分からなかったから使用がなく
って書く。それまでと違う検索ができないのが努力不足なんです。
この手の質問者に回答を付けると具体的なコードを示しても
もう一度説明しないと理解してくれません。…見えてませんから。
まぁ、そういう人間を20人くらい相手してスレた心は
優しくないレスを必要とするほど壊れてますので今後とも
適度によろしくお願いしますm(__)m
優しさを何かと勘違いしてる人がいるようですが
提示してくれたものに対して自分で調べ、できればそれでOKだし、できなければまたできなかった部分を聞く
そうして自分の「実」にしていくのがプログラマじゃないのかと思うけど
まぁどうでもいいけど
※っていうか、For〜Step〜Next文が理解できないというだけでワロスワロス
いつも思うんだけど
自称初心者と言う人達は
どんなキーワードで何を探してるのか
非常に気になります。
VBの初心者は質問の初心者以上に
探し方も初心者では?
だからせめてどんなキーワードで探せばよいのか
またどんなキーワードで探したのかを伝えよう
自分はここまでは探したが解らない等
悲しい騎士さんへ。
きちんと仕事として依頼を請ければ優しく教えてあげますよ(^^)
もちろんお金を頂きますが。
>いなさん
>だからせめてどんなキーワードで探せばよいのか
>またどんなキーワードで探したのかを伝えよう
>自分はここまでは探したが解らない等
今回の事はそういう意味では自分にとっても
勉強になる面もありました。
自分では探すべきキーワードを指示したつもり
だったんだけど、あれでは伝わらないことも
あるというのが分かったのは収穫。
>id_rsa+
>きちんと仕事として依頼を請ければ優しく教えてあげますよ(^^)
>もちろんお金を頂きますが。
気持ちはよく分かります。
が、このスレッド中ではその台詞は悲しい騎士さんより
通ってみた2さんに言いたい...
ご、ごめんなさい、id_rsa+ さん m(__;;)m 。
上の書き込みで敬称が抜けてしまいました。
謹んでお詫びいたします。
というか悲しい騎士さんが何を期待していたのか凄く気になる。
※後半はネカマ口調しながら自傷してるし…
> 今回の事はそういう意味では自分にとっても
> 勉強になる面もありました。
> 自分では探すべきキーワードを指示したつもり
> だったんだけど、あれでは伝わらないことも
> あるというのが分かったのは収穫。
>idx の値をチェックする必要すらありません。(キーワード:Step)
ん〜、少なくとも私にはStepだけで必要十分だと思うんだけどなぁ〜
#さらにFor や VB6がつけばもう言うことなし
いや、知的好奇心なんだけどね。
知りたいのは、探したけど、わからない!と言っている人たちの
検索キーワード、検索アルゴリズム、極端な話どんな頭の構造をしているか?なんだよね。それがわかれば、あしらい方もわかるのにって話ですわ。
少なくとも、自分がVBやInternetを始めたレベルぐらいに
あわせて回答しているつもりだけど、
それでは、今の人たちには何故か伝わらないらしい・・・。
そういった諸々が、単なる甘えや手抜きの類と映ってしまうわけだと思う。
初心者質問者さんは立場的に、威張って良いものではないのですが、ネットでのコミュニケーションさえも初心者なので、サポートセンターと間違えたんでしょう。
実際、すぐに解答を出して当然という考えのようですので。
で、これに反応して煽っても、自体は悪化するだけなんですよね。
質問者も質問者ですが、煽ってる回答者も回答者だと思います。
ネットでのコミュニケーションも初心者である、質問者が引くことはありえないでしょう。
この場合は、回答者がうまく諭す必要があるわけです。
で、諭せないなら発言はしない方が良いでしょう。
ほかの人に迷惑ですから。
そもそも、ここは容量不足が深刻化していると聞いています。
こんなくだらないことで容量を使うのもバカバカしいと思います。
#ん、僕の投稿もそのバカバカしいことの一部ですが。
どうも、このBBSには「荒らし(天然も含む)の耐性」が低い人が多いように思えます。
まあ、GDNJや、@ITと違って登録制じゃないので、ある程度荒れるのは仕方ないのかもしれませんね。
質問に答える前に、
「あなたは、○○を学ぼうとしていますか?それとも、答えだけを求めいていますか?」
※○○には言語の名前が入ります。(どこの掲示板も同じなんで)
と聞いたほうがいいのかなぁとおもったり。
荒らしは…意味不明な発言をしたり意図的な暴言を繰り返したり…
サイトの運営を困難にするわけだけど…荒れてる?
確かに煽ってる部分はあるけど、ちゃんとした意味を持ってる
文章が多いし、質問者の真意が明らかになった時点で質問者を
諭そうなんて思ってないような気も…。後半は回答者同士の
コミュニケーションがメインで質問者はあんまり関係なくなってる。
そういった意味では、荒らしの耐性は高くないけど低くも無い。
普通じゃない?こんなもんだよ?(^^;)人間社会って。理想郷に
する必要は無いんじゃない?
>そういった意味では、荒らしの耐性は高くないけど低くも無い。
相手してる時点で低いと思いますよ。
まぁ、釣りエサは無視して、技術的な部分だけ聞くということにしておけばいいんじゃない?
でもForのどこが技術的…ぁぁ、調べ方とかも技術といえば技術か…
> >そういった意味では、荒らしの耐性は高くないけど低くも無い。
> 相手してる時点で低いと思いますよ。
そやね。
というわけで、この掲示板は容量不足のため(ry
>とめさん
>荒らしとは…意味不明な発言をしたり意図的な暴言を繰り返したり…
>>荒らし(天然も含む)の耐性
ってかいてあるよ。実際迷惑なんだから、煽りも荒らしもないと思うんですが。
言葉遊びではぐらかして、真意を汲み取れないようではやはりレベルが低いんでしょう。
>普通じゃない?こんなもんだよ?(
そう?ここは究極にレベルが低いよ。
諭せずにあいての気持ちを逆撫でするくらいなら、何も発言しない。スルーすればよい。
かといって、質問者を擁護するわけじゃあないですけどね。
どっちも、第三者から見ればガキのケンカってことです。
>>そう?ここは究極にレベルが低いよ。
逆撫
>>諭せずにあいての気持ちを逆撫でするくらいなら、何も発言しない。スルーすればよい。
矛盾
全ての人間が2chを見てると思ってる人が多すぎる。
コレが原因ですね。
スレが止まらないも原因の一つかモナ
>コレが原因ですね。
kwsk
>諭せずにあいての気持ちを逆撫でするくらいなら、何も発言しない。スルーすればよい。
後々、諭す可能性がある受け答えをされてる方もいらっしゃいますよね。
ただそれは、それなりに年齢を重ねて自分の子供が出来て子供の喧嘩に
苦労して修行を積んだりしないと結構厳しい。…どこかに相手との繋がり
がある中で、相手の無茶に付き合って許した経験を自分の中に持ってないと、
最初から他人だと思ってる質問者の無茶を諭せる可能性は極めて低いと思います。
単純に同じ立場でレベルが高くなるというより、老練なやりとりができる
という表現が近いと思いますが、同時に若い世代の勢いも無くなりがちです。
勢いはあるものの、若いゆえに逆撫でする表現を使ってしまう方は、この瞬間に
レベルアップする事はほぼ不可能だと思いますので、スルーのルールを守ると
発言は皆無になるでしょう?。単純に技術レベルの話のみすれば良いようにも
思いますが、相手によっては文末に土下座の顔文字が付いているだけで逆撫で
されるかもしれません。単語レベルで書き込む形式を決めてないと難しいのでは?
その状態をレベルが高いとして…サイトとして居心地悪い気もするのですが…。
。。。さんを含め、2ch で生まれた表現を好んで使われる方の多くが
回答者側の大きな戦力になっております。その方達は
>諭せずにあいての気持ちを逆撫でするくらいなら、何も発言しない。スルーすればよい。
というルールが1つの最終的な結論として一般化している事は当然ご存知
だと思います。ここの管理人さんが
http://madia.world.coocan.jp/cgi-bin/VBBBS/wwwlng.cgi?print+200008/00080001.txt
>VBに関する質問・解答以外は書かないようにして下さい。
と書いている事もご存知でしょう。で、実際問題、守ってみてどうですか?
発言を続けるのは、実は続けたいと自分が思ってるからではないんですか?
いらつきは溜まっていきませんか?。どうしても守れない時はありませんか?
守れなかった時に自己嫌悪に陥ってませんか?その後、別の質問者に十分な
配慮を持って回答をして頂けてますか?
質問者で失礼な表現を使われる方が訪れるのは事前に阻止できません。
質問者の方の事は置いておくとして、回答者側で守れない方への対処はどう
しましょう?スルーを徹底するよりそれなりに実績を持ったハンドルの方が
適度なツッコミを入れる方が効きませんか?。レベルが低いとか発言する
必要もないでしょう。今の状態をレベルが低いと思うなら、それも仕方の
ないことです。ただし、必ずしも悪い状態だと感じている人間ばかりでは
ない事をご理解頂けたらと思います。たまにガキのケンカが起こるのが
通常の状態で、嘆くほどの事では無いと思ったための発言でした。
どうしても収拾がつかない時は管理人さんにお願いすればよいですし、
後々、自分で反省できるような発言をつける方がいて、
喧嘩に付き合ってしまう方がいて、
それを諌める方がいれば、心配しなくてもそれなりにうまく回ると思ってます。
>スレが止まらないも原因の一つかモナ
私もそろそろ止めたいと思います。続けませんがチェックしておきます。
他人の意見を評すると議論になって更に続いてしまうでしょう。自分の
指針として他人の参考になるものがあれば聞かせて頂いても宜しいでしょうか?
実践して実績をあげているものであれば更に参考になります。特にコメントを
つける事はありませんが、今後の参考として自分の中で十分に吟味させて頂きます。
おっぱいよー
ツイート | ![]() |