すいません初心者なのですが
変数の中にテキストボックスから文字列をいれてその中に何個改行があるかって
調べられますか?
自分で調べてもよくわからりませんよろしくお願いします。
まっとぅな方法としては、Instrとループ使ってvbCrLfの個数をカウントするとか。
手抜きの方法としては、vbCrLfでSplit関数使ってできた配列のUBoundを撮るとか。
さるべーじさん即答ありがとうございます!
>Instrとループ使ってvbCrLfの個数をカウントするとか
って具体的にどうやるんですか?
> って具体的にどうやるんですか?
まずヘルプを使って調べてみてください。
ここで直で聞くよりもあなたのためになるし、早いです。
ってか、最近このての質問が
乱立してるので
夏休みの課題とみてまず間違いないな
自分で課題をやらないのはかまわないですがせめて、さがしてください
Blue さんご返答ありがとうございます
>まずヘルプを使って調べてみてください
もっともだとおもいまして
InStr(logvbCrLf, strMojiretu, vbCrLf)
って作ってみたのですが
改行が一個しかないのに6がかえってきてしまいます・・・
やっぱり勉強不足でしょうか?
補足がありましたらお願いします。
ちなみにいつループを使うのかよくわかりません
> 改行が一個しかないのに6がかえってきてしまいます・・・
ほんとによんだのかなぁ。。。
InStrの戻り値は何であるって書いてありますか?
InStrの第1引数(Start)は検索の開始位置ですから、、、
dim logvbCrLf as long
dim strMojiretu as string
dim A as long
logvbCrLf = 1
A = InStr(logvbCrLf, strMojiretu, vbCrLf)
で6個目に改行が入っているのはわかったんですが
たとえば二個三個とあった場合はどのようにループを回せば取得できるのですか?
説明へたくそですいませんです
よろしくお願いします。
ヒント:6個目に改行があった=6個目より前はもういらない
>で6個目に改行が入っているのはわかったんですが
じゃ
次の改行は何個目かを出す方法をかんがえてみましょう
そして
その次の改行は何個目かを出す方法をかんがえてみましょう
:
:
これを繰り返すのですが これをいちいち書かなくてもいい方法を
考えましょう。
あと改行の数を出す方法も考えましょう。
みなさん本当にありがとうございます。
logvbCrLf = 1
Do Until 0 = InStr(logkaishi, strMojiretu, vbCrLf)
logkaishi = InStr(logkaishi, strMojiretu, vbCrLf)
logkaishi = logkaishi + 1
logKaigyou = logKaigyou + 1
Loop
で多分いけたと思うのですがどうでしょうか?
採点していただけるとありがたいです。
>ほんとによんだのかなぁ。。。
読んではいません。
これは、正しい日本語では眺めたといいます。
>採点していただけるとありがたいです。
初心者ではなく、これでは怠け者です。
>で多分いけたと思うのですがどうでしょうか?
実行してみれば分かることでは?
実行を他人に任せるのが初心者の特権ですか?
もちろん初心者の特権です。
http://glossary.tank.jp/t004C.html
Dim I As Integer
Dim IntStart As Intger
Dim IntCount As Integer
Dim Str As String
Do Until InStr(IntStart+1,Str,VbCrLf) = 0
IntStart = InStr(IntStart+1,Str,VbCrLf)
IntCount = IntCount+1
Loop
こんなもんすかね
この掲示板の一週間前のスレ参照
http://madia.world.coocan.jp/cgi-bin/VBBBS/wwwlng.cgi?print+200508/05080078.txt
手抜きな方法その1
lngCount = UBound(Split(strText, vbCrLf))
手抜きな方法その2
lngCount = (Len(strText) - Len(Replace(strText, vbCrLf, ""))) / 2
http://madia.world.coocan.jp/cgi-bin/VBBBS/wwwlng.cgi?print+200508/05080096.txt
こっちの過去ログのやり方ですな
>+Do Until InStr(IntStart+1,Str,VbCrLf) = 0
> IntStart = InStr(IntStart+1,Str,VbCrLf)
> IntCount = IntCount+1
>Loop
これだと最初に改行(一行目が改行のみ)のときまずいですね
他にもおかしいとこあるかも・・
>これだと最初に改行(一行目が改行のみ)のときまずいですね
>他にもおかしいとこあるかも・・
ごめん こっちはIntStartを1で初期化してないのか・・
しかしInStrを2回呼ぶの抵抗あるなあ
>しかしInStrを2回呼ぶの抵抗あるなあ
InStrの概念を理解できると思って書いたんですが余計な真似をしたようで。
他の場所に誤爆したけど、コチラにも参考URL書いておきます(TT
http://www.gizshare.com/vbtomo/boards/vbhajikari.php?do=spread&num=2884#2888
意地悪テストとして少なくても、空の文字列と改行だけの
文字列はクリアーしたいな。
>意地悪テストとして少なくても、空の文字列と改行だけの
>文字列はクリアーしたいな。
そうですね。
あと
AAAA「改行」BBBB も
AAAA「改行」BBBB「改行」も
行数なら2に本当はしないといけないと思うけど
今回は「改行」の数だからいいのかな?
ツイート | ![]() |