■ 現在のこのページの役立ち度:
表示されない場合こちらのリンクからもご覧になれます。
■ このページの役立ち度を評価する:
役立ち度を評価してください。
(1(左):あまり役立たない - 5(右):大変役立った):
■ ページの共有:
[ サイト内検索 ]
カスタム検索
#17803-0テキストエディタを作るときに分からない事うこ2001-01-15(月) 23:40
     #17809-0RE#17803:テキストエディタを作るときに分からない事匿名178092001-01-16(火) 08:06
     #17813-0RE#17803:テキストエディタを作るときに分からない事よねKEN2001-01-16(火) 09:50
#17803-0
テキストエディタを作るときに分からない事
  質問が長くなってすみません(泣)
 よろしくお願いします。 
 今テキストエディタらしいものをつくっています。
 ですが、分からないことだらけです・・・・
 
 以下のコードではテキストを読みこむ時間がかなり長くなってしまいます。

 Private sub command1_click()
         CommonDialog1.Filter = "テキスト(*.txt)|*.txt|all files(*.*)|*.*"
         CommonDialog1.FilterIndex = 1
         CommonDialog1.Flags = cdlOFNFileMustExist
         CommonDialog1.ShowOpen
         If CommonDialog1.filename = "" Then Exit Sub
         Myfile = CommonDialog1.filename
         FileRead
 End Sub

 Private Sub FileRead()
   Dim buf As String
   On Error GoTo Errtrap1
   Open Myfile For Input As #1
   RichTextBox1.Text = ""
   While Not EOF(1)
      Line Input #1, buf
      RichTextBox1.Text = RichTextBox1.Text & buf & Chr(13) & Chr(10)
   Wend
   Close #1
   Exit Sub

 Errtrap1:
   MsgBox Err.Description
   Err.Clear

 End Sub
 


 次の下のコードは文字のフォントとサイズを変えるためのものです
 
 Private Sub command1_click()
   CommonDialog1.Flags = cdlCFScreenFonts Or cdlCFEffects
   CommonDialog1.FontName = "MS Pゴシック"
   CommonDialog1.ShowFont
   RichTextBox1.FontName = CommonDialog1.FontName
   RichTextBox1.ForeColor = CommonDialog1.Color
   RichTextBox1.FontSize = CommonDialog1.FontSize
   RichTextBox1.FontBold = CommonDialog1.FontBold
   RichTextBox1.FontItalic = CommonDialog1.FontItalic
   RichTextBox1.fontstrikethuru = CommonDialog1.FontStrikethru
   RichTextBox1.FontUnderline = CommonDialog1.FontUnderline
 End Sub

 となってるんですが、どうしても 
   RichTextBox1.FontName
   RichTextBox1.ForeColor
   RichTextBox1.FontSize
       〃    .FontBold
         〃        .FontItalic
         〃        .Fontstrikethuru
         〃        .FontUnderLine
   の、右側(メソッド)?の部分(7つ全部)でエラーが出てしまいます。
   どうしてでしょうか?              
         
 最後にしつもんです。
 ピクチャボックスなどでJPEGやGIF,PNGなどの画像を表示させることは出来るのですか?
 
  長くなって本当にすみません!
  どうぞよろしくお願いします。
#17809-0
RE#17803:テキストエディタを作るときに分からない事
richtextbox1.loadfile("c:\***.txt")
#17813-0
RE#17803:テキストエディタを作るときに分からない事
RichTextBoxを使うなら、LoadFile、SaveFileメソッドを
使えば何の苦もなくファイルの読み書きができるのですが、
まぁそれはおいといて、コードが遅くなっている原因と対処を書きます。

>    While Not EOF(1)
> Line Input #1, buf
> RichTextBox1.Text = RichTextBox1.Text & buf & Chr(13) & Chr(10)
>    Wend
・プロパティの参照は遅いので、文字列変数に読み込んだ文字を追加していき、
最後に一回だけTextプロパティに代入するようにしましょう。
・Chr(13) & Chr(10)は変わりに定数vbCrLfがあるのでそれを使いましょう。

この2点を踏まえると
Dim s As String
     :省略
Do Until EOF(1)    ' 私はDo〜Loopを使います。
    Line Input #1, buf   ' EOF関数のところもそうですが、本当はファイル番号を
       ' 直接数値を指定するのではなく、FreeFile関数を使った方がよいです。
    s = s & buf & vbCrLf
Loop
RichTextBox1.Text = s

のようになります。これで随分速くなるでしょう。
が、データを1行ずつ取り込む必要がないなら、
Input関数で一気に読み込む、または、バイナリー読み込みで一気に読み込むなど
の方が断然速いです。

また、1行ずつ連結する必要がある場合もデータ量が多い場合は
上記のように&演算子で文字列を連結するのではなく、
Midステートメントで置換するようにした方が速いです。

>  となってるんですが、どうしても 
>    RichTextBox1.FontName
    :略
>    〃  .FontUnderLine
>    の、右側(メソッド)?の部分(7つ全部)でエラーが出てしまいます。
>    どうしてでしょうか?  
何のエラーが出ているのですか?
それがわからないとちょっとわかりません。
    
>  ピクチャボックスなどでJPEGやGIF,PNGなどの画像を表示させることは出来るのですか?
ヘルプを見ましょう。
pngは表示できません。そういうことをやってくれるocxかdll等を探しましょう。
お探しの情報は見つかりましたか?お困りの問題は解決しましたか?
サイト内検索, 似た記事検索で見つからなくてもあきらめずに掲示板で質問してみましょう。
VB初心者友の会があなたのお役に立てれば幸いです。また、本ページの投稿者の方々にこの場を借りて感謝致します。
本ページは過去ログを集めて自動構成しています。よろしければこのページに関するフィードバックをお願いします。
(※ 構成の誤り、広告等の不適切な記事、リンク切れ、読めないページの報告など)