■ 現在のこのページの役立ち度:
表示されない場合こちらのリンクからもご覧になれます。
■ このページの役立ち度を評価する:
役立ち度を評価してください。
(1(左):あまり役立たない - 5(右):大変役立った):
■ ページの共有:
[ サイト内検索 ]
カスタム検索
#5713-0Mid関数について匿名57131999-12-15(水) 18:09
     #5733-0RE#5713:Mid関数についてたまお1999-12-16(木) 03:45
     #5763-0RE#5733:Mid関数について匿名57631999-12-16(木) 17:28
     #5766-0RE#5733:Mid関数について匿名57661999-12-16(木) 17:52
     #5785-0RE#5766:Mid関数についてたまお1999-12-17(金) 03:07
     #5792-0RE#5785:Mid関数について匿名57921999-12-17(金) 12:31
     #5794-0RE#5792:Mid関数についてobara1999-12-17(金) 12:44
     #5798-0RE#5794:Mid関数について匿名57981999-12-17(金) 15:12
     #5802-0RE#5798:Mid関数についてobara1999-12-17(金) 16:29
#5713-0
Mid関数について
ある文章から必要な言葉を抜き出したいのですが、
Open TargetFileName For Input As #1
     Do Until EOF(1)
     Line Input #1, temp
    readData = readData & temp & vbCrLf
    Loop
Close #1
mid関数をどこにどのように入れればいいのでしょうか?
#5733-0
RE#5713:Mid関数について
> ある文章から必要な言葉を抜き出したいのですが、
> > mid関数をどこにどのように入れればいいのでしょうか?Open TargetFileName For Input As #1
>      Do Until EOF(1)
>      Line Input #1, temp
>     readData = readData & temp & vbCrLf
>     Loop
> Close #1


Instr関数を使って「必要な言葉」の位置を探し出してMid関数で
抜き出す、という方法で良いと思います。具体的には...

Dim FileNumber As Integer
Dim ChPos As Long
Dim temp As String
Dim ReadData As String
Dim Word As String

FileNumber = FreeFile
Open "F:\test.txt" For Input As #FileNumber
   Do Until EOF(FileNumber)
      Line Input #1, temp
      ReadData = ReadData & temp & vbCrLf
   Loop
Close #FileNumber

Word = "必要な言葉"
ChPos = InStr(ReadData, Word)
Text1.Text = Mid(ReadData, ChPos, Len(Word))

詳しくはヘルプで。
#5763-0
RE#5733:Mid関数について
たまおさん、ありがとうございます。教えて頂いた方法でできました。
そこで、もう一つ教えて頂きたいのですが抜き出した言葉が先頭のときそれを含む文章(行)を
表示させる事は(Len)に代入してできたのですが、抜き出した言葉が真ん中や最後のときは
(Len)に先頭からたとえば(−10)のように入れたらいいのですか?
あと、取り出した文章が2.3個あるときは、どうしたらいいのですか?
お願いします。
#5766-0
RE#5733:Mid関数について
たまおさん、ありがとうございます。教えて頂いた方法でできました。
そこで、もう一つ教えて頂きたいのですが抜き出した言葉が先頭のときそれを含む文章(行)を
表示させる事は(Len)に代入してできたのですが、抜き出した言葉が真ん中や最後のときは
(Len)に先頭からたとえば(−10)のように入れたらいいのですか?
あと、取り出した文章が2.3個あるときは、どうしたらいいのですか?
お願いします。
#5785-0
RE#5766:Mid関数について
> たまおさん、ありがとうございます。教えて頂いた方法でできました。
> そこで、もう一つ教えて頂きたいのですが抜き出した言葉が先頭のときそれを含む文章(行)を
> 表示させる事は(Len)に代入してできたのですが、抜き出した言葉が真ん中や最後のときは
> (Len)に先頭からたとえば(−10)のように入れたらいいのですか?

申し訳ない...質問の意味が理解できません (¨)?
例えば、「♪ハロ〜ボンジュ〜ルウエ〜ルカムっ♪」という文字列があって、
そこから「ンジュ〜」とか「カムっ」を抜き出したい、と言うことでしょうか?
だとすると、前回のレスと同じようにInStr関数で抜き出したい文字の
文頭からの位置を調べて、Len関数で抜き出したい文字の文字数を取得し、
最後にMid関数で...、という感じでできますよ。

> あと、取り出した文章が2.3個あるときは、どうしたらいいのですか?
> お願いします。 

どうしたいか、というのが分からないので私にも分かりません。
もう少し具体的に...。
#5792-0
RE#5785:Mid関数について
たまおさんすいません。文章力がなくて・・・。
具体的に例を書くと

あなたの投稿用のニックネームを入力します。
何も入力しない場合は「匿名」に記事番号がついた名前に設定されます。
あなたのメールアドレスを入力します。
メールアドレスを公表したくないときは空白にすることができます。

という、文章があったとしてこの4行の文章から(匿名)、(空白)を含む行を取り出したいとき

Word = "匿名"
    ChPos = InStr(ReadData, Word)
    Debug.Print ChPos, Len(temp)
    txtDisplayBox.Text = Mid(ReadData, ChPos-11, 33)
    
    Word = "空白"
    ChPos = InStr(ReadData, Word)
    Debug.Print ChPos, Len(temp)
    txtDisplayBox.Text = Mid(ReadData, ChPos - 19, 31)

と、打てばいいのですよね?すると結果が

「メールアドレスを公表したくないときは空白にすることができます。」

の文章しか表示されません。(匿名)を含む文章は表示されないのです。
2行とも表示させたいときは具体的にどうすればよいのでしょうか?
度々すいません
#5794-0
RE#5792:Mid関数について
> 「メールアドレスを公表したくないときは空白にすることができます。」
> 
> の文章しか表示されません。(匿名)を含む文章は表示されないのです。
> 2行とも表示させたいときは具体的にどうすればよいのでしょうか?
> 度々すいません
匿名文字列をテキストボックスに代入した後で空白文字列を再度代入しているからですよ。
Text1 = Text1 & vbcrlf & "追加したい文字列"
のようにしてはどうでしょう
#5798-0
RE#5794:Mid関数について
> 匿名文字列をテキストボックスに代入した後で空白文字列を再度代入しているからですよ。
> Text1 = Text1 & vbcrlf & "追加したい文字列"
> のようにしてはどうでしょう

 'txtDisplayBox.Text = txtDisplayBox.Text & vbCrLf & "匿名"
にすると、

「メールアドレスを公表したくないときは空白にすることができます。」
「匿名」

しかでません。匿名の文章が出てこないのです。私の理解の仕方がまちがってるのでしょうか?
#5802-0
RE#5798:Mid関数について
>  'txtDisplayBox.Text = txtDisplayBox.Text & vbCrLf & "匿名"
                                                     -------- 
> にすると、
> 「メールアドレスを公表したくないときは空白にすることができます。」
> 「匿名」
> 
> しかでません。匿名の文章が出てこないのです。私の理解の仕方がまちがってるのでしょうか?
そのようですね。
txtDisplayBox.Text = txtDisplayBox.Text & vbCrLf & "匿名"  と記述したのであれば
その結果は当然の結果です。 「& "匿名"」のところには2行目に表示するべき文字列を指定しないと。
「"匿名"」の変わりに表示したい文字列(今回の場合はMidを使用して取り出しておいた文字列)
を連結してみましょう。
このページと関連する記事:
#10022-0OPENファイルの仕方。。。2000-07-27(木) 13:55
#145-1ファイルシステムコントロ−ルの活用2003-12-05(金) 23:05
#46280-0テキストファイルの読み込み2001-08-29(水) 11:01
#21351-0読み出しの時間2001-06-14(木) 07:00
#1411-0OpenステートメントとInput関数について1999-09-09(木) 13:31
#269-0TAB区切りのデータファイルの読み書きの方法1999-07-26(月) 14:43
#46642-0ファイルの行数カウント2001-09-07(金) 11:56
#20778-0メモ帳の保存や開くを再現するには?2001-05-09(水) 14:44
#17803-0テキストエディタを作るときに分からない事2001-01-15(月) 23:40
#40587-0テキストファイルの文字列置換方法2001-03-21(水) 15:34
お探しの情報は見つかりましたか?お困りの問題は解決しましたか?
サイト内検索, 似た記事検索で見つからなくてもあきらめずに掲示板で質問してみましょう。
VB初心者友の会があなたのお役に立てれば幸いです。また、本ページの投稿者の方々にこの場を借りて感謝致します。
本ページは過去ログを集めて自動構成しています。よろしければこのページに関するフィードバックをお願いします。
(※ 構成の誤り、広告等の不適切な記事、リンク切れ、読めないページの報告など)