■ 現在のこのページの役立ち度:
表示されない場合こちらのリンクからもご覧になれます。
■ このページの役立ち度を評価する:
役立ち度を評価してください。
(1(左):あまり役立たない - 5(右):大変役立った):
■ ページの共有:
[ サイト内検索 ]
カスタム検索
#22999-0一行づつ読み取り、各テキストボックスへ・・・初心者一年生2001-09-06(木) 19:35
     #23000-0RE#22999:一行づつ読み取り、各テキストボックスへ・・・レベル112001-09-06(木) 19:47
     #23002-0RE#23000:一行づつ読み取り、各テキストボックスへ・・・初心者一年生2001-09-06(木) 22:07
     #23010-0RE#23002:一行づつ読み取り、各テキストボックスへ・・・レベル112001-09-07(金) 10:40
     #23012-0RE#23010:一行づつ読み取り、各テキストボックスへ・・・初心者一年生2001-09-07(金) 12:39
     #23013-0RE#23012:一行づつ読み取り、各テキストボックスへ・・・レベル112001-09-07(金) 13:30
     #23014-0RE#23013:一行づつ読み取り、各テキストボックスへ・・・匿名230142001-09-07(金) 14:41
#22999-0
一行づつ読み取り、各テキストボックスへ・・・
いつもお世話になっています。今回も「壁」にぶち当たりました。
複行テキストボックスに表示してあるテキストを

.一行目をText2.Textへ
.二行目をText3.Textへ

と行で区切り各テキストボックスへ表示させたいのです。
一行づつ読み込む事はわかったのですが

Dim LinesFromFile As String, NextLine As String

Do Until EOF(FileNum)
   Line Input #FileNum, NextLine
   LinesFromFile = LinesFromFile + NextLine + vbCRLF
Loop

どうかよろしくお願いします。



#23000-0
RE#22999:一行づつ読み取り、各テキストボックスへ・・・
> いつもお世話になっています。今回も「壁」にぶち当たりました。
> 複行テキストボックスに表示してあるテキストを
> 
> .一行目をText2.Textへ
> .二行目をText3.Textへ
> 
> と行で区切り各テキストボックスへ表示させたいのです。
> 一行づつ読み込む事はわかったのですが
TextBoxがコントロール配列になっていれば簡単なんですが・・・


 Dim NextLine As String
 Dim intCtlCnt  As Integer
 
 Do Until EOF(FileNum)
    Line Input #FileNum, NextLine
    Text1(intCtlCnt).Text = NextLine
    intCtlCnt = intCtlCnt + 1
 Loop

こんな感じかと、
あと、文字列の接続は + ではなく & を使いましょう。
 
#23002-0
RE#23000:一行づつ読み取り、各テキストボックスへ・・・
ありがとうご゛います。
早速やってみたいと思います。
ちょっとだけ追加質問です。

Text10.Textの一行目をText1.Textへ
Text10.Textの二行目をText2.Textへ

となると

 Dim NextLine As String
 Dim intCtlCnt  As Integer
 
 Do Until EOF(FileNum)
    Line Input #FileNum, NextLine
    Text10(intCtlCnt).Text = NextLine
    intCtlCnt = intCtlCnt(Text2.Text) + 1
 Loop


と言う事でいいんでしょうか?(^^;
よろしくお願いしますぅぅ・・・

#23010-0
RE#23002:一行づつ読み取り、各テキストボックスへ・・・
> Text10.Textの一行目をText1.Textへ
> Text10.Textの二行目をText2.Textへ

前回書いた例題は、TextBoxがコントロール配列になっている事が前提ですので、
使用するTextBoxは<全て同じ名前>でなくてはなりません。

#と、いうかテキストファイルではないのですか?
#コードだけ見てたからテキストファイルだと思い込んでました(^^;)

>  Dim NextLine As String
>  Dim intCtlCnt  As Integer
>  
>  Do Until EOF(FileNum)
>     Line Input #FileNum, NextLine
>     Text10(intCtlCnt).Text = NextLine
>     intCtlCnt = intCtlCnt(Text2.Text) + 1
>  Loop
> と言う事でいいんでしょうか?(^^;
コードが書けているなら、実際試しましょう。と言いたい所ですが、
試すまでも無くコンパイルエラーですね。

一応、マルチラインのテキストBOXの内容取得は
こんな感じでしょうか・・・・
(CommandButtonとMultiLine = True のTextBoxを用意してください)
Private Sub Command1_Click()
    Dim sArray()    As String   'Splitで使用する動的配列
    Dim lCnt        As Long     'ループカウント

    If Text1.Text = "" Then
        Exit Sub
    End If

    sArray() = Split(Text1.Text, vbCrLf)
    For lCnt = 0 To UBound(sArray)
        MsgBox sArray(lCnt)
    Next lCnt
End Sub
#23012-0
RE#23010:一行づつ読み取り、各テキストボックスへ・・・
> > Text10.Textの一行目をText1.Textへ
> > Text10.Textの二行目をText2.Textへ
> 
> 前回書いた例題は、TextBoxがコントロール配列になっている事が前提ですので、
> 使用するTextBoxは<全て同じ名前>でなくてはなりません。
> 
> #と、いうかテキストファイルではないのですか?
> #コードだけ見てたからテキストファイルだと思い込んでました(^^;)

何回もすいません(^^;
説明不足だと思いますのでもう一度きちんと説明します。

まず、複行数入力可能なテキストボックス(Text11.Text)が一つあります。
(10行までしか書き込み出来ません)

複行数のテキストの一行目をText2へ二行目をText3へ三行目をText4へと、
行単位で文字列を区切り、各テキストボックスへと表示させたいのです。

コントロール配列になってい無いためどうしても無理な場合は
配列にテキストボックスを変えますのでコントロール配列での表示の仕方を教えてください。
ヘルプで確認していますがそん方法が見つかりません。
よろしくお願いします。
#23013-0
RE#23012:一行づつ読み取り、各テキストボックスへ・・・
> まず、複行数入力可能なテキストボックス(Text11.Text)が一つあります。
> (10行までしか書き込み出来ません)
> 
> 複行数のテキストの一行目をText2へ二行目をText3へ三行目をText4へと、
> 行単位で文字列を区切り、各テキストボックスへと表示させたいのです。
> 
> コントロール配列になってい無いためどうしても無理な場合は
> 配列にテキストボックスを変えますのでコントロール配列での表示の仕方を教えてください。
> ヘルプで確認していますがそん方法が見つかりません。
TextBoxをコントロール配列にしても良いと判断します。
まず、Text1とかText2とかいう発想に行かない為に、TextBoxの名前を変えてしまいましょう。
10行を表示するTextBoxを txtPearent と名づけ、
分割した文字を格納する10個のTextBoxを txtChild と名づけます。

<txtChildという名前のTextBox配列を10個作ります>
txtChildを一つ作り、後はコピー&ペーストすればコントロール配列にするかどうか聞いてきます
のでそこで「はい」をクリックすればOK。この要領で10個作って下さい。
#何番目のコントロール配列か?を知りたい場合は、Indexプロパティを参考にして下さい。

そこで、先ほどの例題をちょいと改造してと・・・
Private Sub Command1_Click()
    Dim sArray()    As String   'Splitで使用する動的配列
    Dim lCnt        As Long     'ループカウント

    If txtPearent.Text = "" Then
        Exit Sub
    End If
    sArray() = Split(txtPearent.Text, vbCrLf)
    For lCnt = 0 To UBound(sArray)
        txtChild(lCnt).Text = sArray(lCnt)
    Next lCnt
End Sub
と、こんな感じ
#もうただの答えになってしまったので勉強にならんかもしれませんけど
#23014-0
RE#23013:一行づつ読み取り、各テキストボックスへ・・・
ありがとうございました。レベル11 さん
教わった通り実行しましたら出来ました。
後は自分が作成しているプログラム用に適応させたいと思います。
本当にありがとうございました。
このページと関連する記事:
#14742-0CSV読込み時の動的配列2001-02-27(火) 12:14
#20778-0メモ帳の保存や開くを再現するには?2001-05-09(水) 14:44
#20695-0テキストから読み出して画面に表示するのは?2001-05-06(日) 14:04
#269-0TAB区切りのデータファイルの読み書きの方法1999-07-26(月) 14:43
#8055-0変数へのセット方法 と 配列?2000-05-18(木) 10:17
#45868-0判定2001-08-14(火) 18:10
#14278-0DO〜Loop分とLine Input文で全文を読み込み2001-02-01(木) 16:50
#5097-0RE#5088:データの読み込み方2000-01-18(火) 14:48
#10223-0複数のテキストボックスに同じ値をいれたい2000-08-04(金) 12:02
#3296-0TextBOXの読み込み1999-10-25(月) 22:46
お探しの情報は見つかりましたか?お困りの問題は解決しましたか?
サイト内検索, 似た記事検索で見つからなくてもあきらめずに掲示板で質問してみましょう。
VB初心者友の会があなたのお役に立てれば幸いです。また、本ページの投稿者の方々にこの場を借りて感謝致します。
本ページは過去ログを集めて自動構成しています。よろしければこのページに関するフィードバックをお願いします。
(※ 構成の誤り、広告等の不適切な記事、リンク切れ、読めないページの報告など)