ページ 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
				僕にも、役立ちます^^。ちょうど同じことを考えていたので、淡幻星さん、僕からもお礼で
ありがとうございます