ページ 1 / 1
txtファイルに書かれているものを・・・
Posted: 2005年8月04日(木) 00:46
by Mario2
たとえば、Wドライブにfile.txtのファイルがあり、そのテキストファイルには
W:\ActiveBasic\ProjectEditor.exe
W:\ActiveBasic\BasicCompiler.exe
W:\ActiveBasic\BasicHelp.chm
と言うものが書かれていたとします。それをListBoxに追加していきたいのですが、InstrやDo~Loopを用いて自分でがんばってみましたが、自分のしたい結果にはなりませんでした。
この少し下のトピックスにTXTファイルを複数行読める関数「File_Open」もつかってみましたが、やはり自分の力不足なのか、できませんでした。
簡潔にまとめると、
「TXTファイルに書かれている内容(複数行)を、順番にListBoxに追加していきたい」
と言うことです。
簡単なサンプルでも良いので、教えてください。よろしくお願いします。
Re: txtファイルに書かれているものを・・・
Posted: 2005年8月04日(木) 03:17
by 淡幻星
> 自分のしたい結果にはなりませんでした。
というのが、どういう状況かは分かりませんので、なんとも言えませんが。
> 簡単なサンプルでも良いので、教えてください。よろしくお願いします。
RADを使用して、MainWnd に貼り付けたリストボックスのIDを
ListBox1 とします。
以下の MainWnd.sbp で変更した場所は「
TODO: この位置に~」と「
Sub MainWnd_Create()」です。
WSLib_MacroEmuVer2.x.sbp は実践コードモジュール
の
http://www.discoversoft.net/forum/viewtopic.php?t=214のコードです。
まぁ、使っているのはLineInputだけですが(^^;)。
コード: 全て選択
'-----------------------------------------------------------------------------
' イベント プロシージャ
'-----------------------------------------------------------------------------
' このファイルには、ウィンドウ [MainWnd] に関するイベントをコーディングします。
' ウィンドウ ハンドル: hMainWnd
' TODO: この位置にグローバルな変数、構造体、定数、関数を定義します。
#include <WSLib_MacroEmuVer2.x.sbp>
'-----------------------------------------------------------------------------
' ウィンドウメッセージを処理するためのコールバック関数
Function MainWndProc(hWnd As DWord, dwMsg As DWord, wParam As DWord, lParam As DWord) As DWord
' TODO: この位置にウィンドウメッセージを処理するためのコードを記述します。
' イベントプロシージャの呼び出しを行います。
MainWndProc=EventCall_MainWnd(hWnd,dwMsg,wParam,lParam)
End Function
'-----------------------------------------------------------------------------
' ここから下は、イベントプロシージャを記述するための領域になります。
Sub MainWnd_Destroy()
TestWnd_DestroyObjects()
PostQuitMessage(0)
End Sub
Sub MainWnd_Create(ByRef CreateStruct As CREATESTRUCT)
Dim strBuf As String
Dim strFile As String
Dim retAns As Long
Dim hList As Long
'読み取るファイルの絶対パスを指定して下さい。
strFile = "***\ActiveBasic3.x\project\TestWnd\file.txt"
'リストボックスのハンドルを得る。
hList = GetDlgItem( hMainWnd, ListBox1 )
Open strFile For Input As #1
While( Eof(1)=0 )
'ファイル内容の一行ずつの読み取り
LINEINPUT 1, strBuf
'読み取ったファイル内容の追加
retAns = SendMessage( hList, LB_ADDSTRING, 0, StrPtr( strBuf ) )
Wend
Close #1
End Sub
Ver3.13で確認。
Re: txtファイルに書かれているものを・・・
Posted: 2005年8月04日(木) 12:25
by Mario2
> > 自分のしたい結果にはなりませんでした。
> というのが、どういう状況かは分かりませんので、なんとも言えませんが。
説明不足でしたね・・・すいません。
それと、
#include <WSLib_MacroEmuVer2.x.sbp>
は、同じフォルダ(Includeフォルダにはいれずに)に入れたかったので、
#include "WSLib_MacroEmuVer2.x.sbp"
としました。
さらに、
LINEINPUT 1, strBuf
も、AB4では
LINEINPUT( 1, strBuf)
でないといけないみたいです。
' Ver3.13で確認。
Ver4.04.00でも確認しました。
それと、結果ですが、上手く行きました。淡幻星さん、ありがとうございました。
Posted: 2005年8月05日(金) 01:08
by mako20
僕にも、役立ちます^^。ちょうど同じことを考えていたので、淡幻星さん、僕からもお礼で
ありがとうございます