はじめまして。AB初心者です。ABを使って、N88BASICで書けば、
INPUT A$
OPEN "bookcode,csv" as append #1
PRINT #1,A$
CLOSE #1
のようなことをしたいと思い、
' TODO: この位置にグローバルな変数、構造体、定数、関数を定義します。
Dim code As String
・
・
Sub MainWnd_EditBox1_Change()
GetDlgItemText(hMainWnd,EditBox1,code,13)
End Sub
・
・
Sub MainWnd_CommandButton1_Click()
open "bookcode.csv" for append as #1
print #1,code
close #1
End Sub
と、エディットボックスから文字列をcodeに取得し、ファイルに書き込もうとしたのですが、デバグでcodeに該当文字列が代入されているのが確認されているのにもかかわらず、bookcode.csvに出力されてくるのはNULです。実際にはいくつかのエディットボックスから複数の文字列を取得し、CSV形式で出力しています。コンマだけしかファイルに出力されないのです。やはり書き方が間違っているのでしょうか。
文字列の取得について
RE:文字列の取得について
以下のコードで成功しています
MAVEさんのコードは試していませんが、参考にしていろいろいじってみてください。
Dim code As String 'テキストバッファの格納用
Dim length As Long 'テキストの長さ
'本文テキスト データを格納するためのバッファ領域を確保
Dim hEdit As HWND
hEdit=GetDlgItem(hMainWnd,EditBox1) 'EditBox1のハンドル
length=GetWindowTextLength(hEdit)
code=ZeroString(length+1)
GetWindowText(hEdit, code, length+1)
'EditBox1から取得した文字列を保存しようとするとNULLが入ってしまう
'最後のNULLを取る
code=Left$(code,InStr(1,code,Chr$(0))-1)
'ファイルに追加書き込み
Open "send-log.ini" For Append As #2 '末尾に追加でひらく
'本文の書き込み
Write #2,code
close #2
MAVEさんのコードは試していませんが、参考にしていろいろいじってみてください。
Dim code As String 'テキストバッファの格納用
Dim length As Long 'テキストの長さ
'本文テキスト データを格納するためのバッファ領域を確保
Dim hEdit As HWND
hEdit=GetDlgItem(hMainWnd,EditBox1) 'EditBox1のハンドル
length=GetWindowTextLength(hEdit)
code=ZeroString(length+1)
GetWindowText(hEdit, code, length+1)
'EditBox1から取得した文字列を保存しようとするとNULLが入ってしまう
'最後のNULLを取る
code=Left$(code,InStr(1,code,Chr$(0))-1)
'ファイルに追加書き込み
Open "send-log.ini" For Append As #2 '末尾に追加でひらく
'本文の書き込み
Write #2,code
close #2
ありがとうございます
早速やってみようと思います。しばらく時間がまとまって取れないのですが、ぜひ完成させたいと思います。ありがとうございました。もしもっとアドバイスがあればよろしくお願いします。