abwiki @ ウィキ (ActiveBasic非公式wiki)内検索 / 「Len」で検索した結果

検索 :
  • Len
    名称 |Len 読み |レン、レンクス 定義 |Len(variable$) 説明 |指定した文字列、または変数のバイト数を取得します。 戻り値 |文字列、または文字列変数を指定すると、そのバイト数が返ります。 その他の型の変数(構造体も可)を指定すると、その変数が使用するバイト数を返します。 参照 |SizeOf
  • Boyer--Moore法
    /***********************************************************sboymoo.c -- Boyer--Moore法***********************************************************//* 簡略Boyer-Moore法 */Const UCHAR_MAX= 255Function position(text As *Byte, pattern As *Byte) As LongDim i As Long, j As Long, k As Long, len As LongDim skip[UCHAR_MAX] As LongDim c As Byte, tail As Bytelen = lstrlen(pattern) /* 文字列の長さ */If len = 0 Then *N...
  • データー圧縮
    データー圧縮 Function Encode(src As *Byte, srclen As DWord, dst As *Byte) As DWord Dim i As DWord, j As DWord, k As DWord While i srclen dst[j] = src[i] k = 0 While src[i] = dst[j] If k = 255 Or i srclen Then Exit While k=k+1 i=i+1 Wend j=j+1 dst[j] = k j=j+1 Wend Encode = j End Function Function Decode(src As *Byte, srclen As DWord, dst As *Byte) As DWord Dim i As DWord, j As DWord, k As DWo...
  • mpglib.dllを使ったmp3再生
    ...e dwBufferLength As DWord dwBytesRecorded As DWord dwUser As DWord dwFlags As DWord dwLoops As DWord lpNext As *WAVEHDR reserved As *DWord End TypeType MMTIMEwType As DWordu As DWordu2 As DWordEnd TypeClass Mp3PlayerPrivatebuffer[2] As *Bytehwo As HWAVEOUTwfe As WAVEFORMATEXswitch As LongFunction GetMp3Header() As LongDim head[3] As ByteDim r As DWordDim c As DWordGetFormat(VarPtr(r), VarPtr(c)...
  • ステップ11 「テキスト エディタを作る」
    ...rPtr(ofn),Len(ofn),0) ofn.lStructSize=Len(ofn) ofn.hwndOwner=hMainWnd ofn.lpstrFilter=Ex"テキスト ファイル(*.txt)\0*.txt\0すべてのファイル(*.*)\0*\0\0" ofn.nFilterIndex=1 ofn.lpstrFile=FileName ofn.nMaxFile=MAX_PATH ofn.lpstrTitle="ファイルを開く" ofn.Flags=OFN_FILEMUSTEXIST or OFN_HIDEREADONLY or OFN_PATHMUSTEXIST ofn.lpstrDefExt="*" 「ファイルを開く」ダイアログ ボックスを...
  • ステップ27 「メモリ監視ツールを作る①」
    ...USEX dwLength As DWord dwMemoryLoad As DWord uulTotalPhys As QWord uulAvailPhys As QWord uulTotalPageFile As QWord uulAvailPageFile As QWord uulTotalVirtual As QWord uulAvailVirtual As QWord ullAvailExtendedVirtual As QwordEnd Type' ----------------------------------ここまで----------------------------------Sub MainWnd_Destroy() If hDLL Then FreeLibrary(hDLL) &...
  • ステップ8 「構造体とファイルオープンダイアログ」
    ...rPtr(ofn),Len(ofn),0) ofn.lStructSize=Len(ofn) 構造体のサイズ ofn.hwndOwner=GetDesktopWindow() 親ウィンドウ(ここではデスクトップ ウィンドウを指定) FileFilter="テキスト ファイル(*.txt)" + Chr$(0) + "*.txt" + Chr$(0) + _ "すべてのファイル(*.*)" + Chr$(0) + "*" + Chr$(0) ofn.lpstrFilter=StrPtr(FileFilter) ofn.nFilterIndex=1 ファイル フィルターの数...
  • SizeOf
    ... 参照 |Len
  • ステップ14 「DLLを作る」
    ...rPtr(ofn),Len(ofn),0) ofn.lStructSize=Len(ofn) ofn.hwndOwner=hWnd SetDWord(VarPtr(ofn.lpstrFilter),lpFilter) ofn.nFilterIndex=1 SetDWord(VarPtr(ofn.lpstrFile),lpBuf) ofn.nMaxFile=MAX_PATH ofn.Flags=OFN_FILEMUSTEXIST or OFN_HIDEREADONLY or OFN_PATHMUSTEXIST ofn.lpstrDefExt="*" If bOpen Then ofn.lpstrTitle="ファイルを開く" '「ファイルを開く」ダイアログ...
  • ステップ28 「メモリ監視ツールを作る②(設定をレジストリに保存)」
    ...sTopMost),Len(IsTopMost)) 値 "RenewalTiming" に変数 RenewalTiming の内容をセットする RegSetValueEx(hKey,"RenewalTiming",0,REG_DWORD,VarPtr(RenewalTiming),Len(RenewalTiming)) レジストリ ハンドルを閉じる RegCloseKey(hKey) SystemWatcher_DestroyObjects() PostQuitMessage(0) End Sub ↑Destroyイベントでは、設定内容のレジストリへの書き込みを行います。 Sub MainWnd_Create(ByRef CreateStruct As CREAT...
  • ステップ31 「ツールバーを使う④(ツールチップを表示する)」
    ...ic.dwSize=Len(ic) ic.dwICC=ICC_BAR_CLASSES InitCommonControlsEx(ic) 'ボタン情報をセット SetTbButtonData(tbb[0],0,IDM_NEW,TBSTATE_ENABLED,TBSTYLE_BUTTON) SetTbButtonData(tbb[1],1,IDM_OPEN,TBSTATE_ENABLED,TBSTYLE_BUTTON) SetTbButtonData(tbb[2],2,IDM_SAVE,TBSTATE_ENABLED,TBSTYLE_BUTTON) SetTbButtonData(tbb[3],0,0,TBSTATE_ENABLED,TBSTYLE_SEP) SetTbButtonData(tbb[4],3,IDM_ABOUT,T...
  • ステップ9 「ビットマップビューワを作る」
    ...tructSize=Len(ofn) ofn.hwndOwner=hMainWnd ofn.lpstrFilter=StrPtr(BitmapFileFilter) ofn.nFilterIndex=1 buffer=ZeroString(MAX_PATH) ofn.lpstrFile=StrPtr(buffer) ofn.nMaxFile=MAX_PATH If GetOpenFileName(ofn)=0 Then Exit Sub FileName=ofn.lpstrFile 再描画要求を出す InvalidateRect(hMainWnd,ByVal 0,1) End Sub 「終了」メニュー イベント 終了メニューがクリックされると、WM_CLOSEメッセージを送るようにします。W...
  • リファレンス
    ...Str Left$ Len MakeStr Mid$ Oct$ Right$ Space$ Str$ String$ Time$ Val ZeroString ファイル関連の関数 _splitpath Eof Loc Lof メモリ関連の関数 malloc, calloc, realloc, free その他の関数 AddressOf ELM RGB SizeOf VarPtr サポート関数(非標準) ldexp frexp ipow pow rand srand II.命令 入出力命令 Open Close Print Write Input Field Get Put グラフィックス命令(N88) Cls Circle Line Pset Paint ウインドウ操作命令 Window DelWnd MsgBox その他命令 Beep ChDir Color De...
  • ステップ25 「ツールバーを使う②(ボタンが浮き出すフラットツールバー)」
    ...ic.dwSize=Len(ic) ic.dwICC=ICC_BAR_CLASSES InitCommonControlsEx(ic) ボタン情報をセット SetTbButtonData(tbb[0],0,IDM_NEW,TBSTATE_ENABLED,TBSTYLE_BUTTON) SetTbButtonData(tbb[1],1,IDM_OPEN,TBSTATE_ENABLED,TBSTYLE_BUTTON) SetTbButtonData(tbb[2],2,IDM_SAVE,TBSTATE_ENABLED,TBSTYLE_BUTTON) SetTbButtonData(tbb[3],0,0,TBSTATE_ENABLED,TBSTYLE_SEP) SetTbButtonData(tbb[4],3,IDM_ABOUT,TBST...
  • すごいスワップ
    ...wap(s, t, Len(s))swap(VarPtr(i), VarPtr(j), SizeOf(Long))swap(VarPtr(a), VarPtr(b), SizeOf(Double))Print MakeStr(s);" - ";MakeStr(t), i;" - ";j, a;" - ";b, 2つの値を交換する別の方法として、こにょうな方法は速度が遅く、 大量のデータを扱うには不向き。 そこでポインタを差し替える方法もあるが、 いずれにせよ値を交換することの内容なアルゴリズムを採択したいものだ。
  • ステップ32 「アナログ時計を作る」
    ...位置 Dim Length_Second As Long '秒針の長さ Dim Length_Minute As Long '短針の長さ Dim Length_Hour As Long '長針の長さ GetClientRect(hMainWnd,rc) '針の中心位置 CenterPos.x=rc.right/2 CenterPos.y=rc.bottom/2 'ウィンドウの大きさをもとに、秒針、短針、長針の長さを計算 If rc.right rc.bottom Then Length_Second=rc.bottom/2-2 Else Length_Second=rc.right/2-2 End If Length_Minu...
  • マニフェスト埋め込み(XPスタイルへの変更)
    ...AULT),xml,Len(xml))=0 Then MessageBox(0,"埋め込み失敗",0,MB_OK)End IfEndUpdateResource(hUpdate,FALSE)End
  • ステップ26 「ツールバーを使う③(ホットイメージ)」
    ...ic.dwSize=Len(ic) ic.dwICC=ICC_BAR_CLASSES InitCommonControlsEx(ic) ボタン情報をセット SetTbButtonData(tbb[0],0,IDM_NEW,TBSTATE_ENABLED,TBSTYLE_BUTTON) SetTbButtonData(tbb[1],1,IDM_OPEN,TBSTATE_ENABLED,TBSTYLE_BUTTON) SetTbButtonData(tbb[2],2,IDM_SAVE,TBSTATE_ENABLED,TBSTYLE_BUTTON) SetTbButtonData(tbb[3],0,0,TBSTATE_ENABLED,TBSTYLE_SEP) SetTbButtonData(tbb[4],3,IDM_ABOUT,TBST...
  • ステップ24 「ツールバーを使う①」
    ...ic.dwSize=Len(ic) ic.dwICC=ICC_BAR_CLASSES InitCommonControlsEx(ic) ボタン情報をセット SetTbButtonData(tbb[0],0,IDM_NEW,TBSTATE_ENABLED,TBSTYLE_BUTTON) SetTbButtonData(tbb[1],1,IDM_OPEN,TBSTATE_ENABLED,TBSTYLE_BUTTON) SetTbButtonData(tbb[2],2,IDM_SAVE,TBSTATE_ENABLED,TBSTYLE_BUTTON) SetTbButtonData(tbb[3],0,0,TBSTATE_ENABLED,TBSTYLE_SEP) SetTbButtonData(tbb[4],3,IDM_ABOUT,TBST...
  • 文字列
    ...ot; Print Len(b), b 答えは 16abc となります。 これは+演算が文字列の実際の長さを見ていないからです。 _System_StrCalc_Plus関数を見てください。
  • ステータスバー
    ...ic.dwSize=Len(ic) ic.dwICC=ICC_BAR_CLASSES InitCommonControlsEx(ic) 'ステータスバーを作成 hStatusWnd = CreateStatusWindow( _ WS_CHILD or WS_VISIBLE or CCS_BOTTOM or SBARS_SIZEGRIP, _ NULL, _ hMainWnd, _ ID_STATUS) 'ステータスバーサイズを設定 Statusbar_Sizes[0]=150 Statusbar_Sizes[1]=300 Statusbar_Sizes[2]=450 SendMessage(hStatusWnd,SB_SETPARTS,3,Statusb...
  • N88BASICとの互換性
    N88BASIC互換性について PC8801とかのようにOSなんてものがROM-BASICとゴチャ混ぜ状態だったころのようなあの時代には戻れません。 以下にABのN88BASIC互換性のポイントを挙げる ダイレクトモードは無い 各種コマンドは無い。SAVE,LOAD,LIST,RUNはもちろんAUTO,KEYも無い。 READ,DATA関連は無い 変数はDimで明記しなければならない ON 〇〇 GOTO/GOSUB関連も存在しない SCREEN 3,0,0,1 CONSOLE ,,0,1 DEFINT A-Z CLS 3←CLSしか無い テキスト、グラフィックの重ね合わせはできない。 BEEP(0) BEEP(1)でブザーを作ることはできない。 関数は大文字小文字を区別する(ABSはAbs、ASCはAscとなる) このようなワケで、N88BASICのプログラムを移植す...
  • ステップ22 「ステータスバーを使う②」
    ...ic.dwSize=Len(ic) ic.dwICC=ICC_BAR_CLASSES InitCommonControlsEx(ic) ステータスバーを作成 hStatusWnd = CreateStatusWindow( _ WS_CHILD or WS_VISIBLE or CCS_BOTTOM or SBARS_SIZEGRIP, _ NULL, _ hMainWnd, _ ID_STATUS) ステータスバーサイズを設定 Statusbar_Sizes[0]=150 Statusbar_Sizes[1]=300 Statusbar_Sizes[2]=450 SendMessage(hStatusWnd,SB_SETPARTS,3,Statusbar_Siz...
  • ステップ21 「ステータスバーを使う①」
    ...ic.dwSize=Len(ic) ic.dwICC=ICC_BAR_CLASSES InitCommonControlsEx(ic) 'ステータスバーを作成 hStatusWnd = CreateStatusWindow( _ WS_CHILD or WS_VISIBLE or CCS_BOTTOM, _ NULL, _ hMainWnd, _ ID_STATUS) 'タイマー開始 SetTimer(hMainWnd,0,100,NULL)End Sub ↑Createイベントでは、CreateStatusWindow関数によるステータスバーの生成を行います。その後、タイマー処理を開始させます。ここでは、100ミリ秒ごとにTimerイベントが呼び出されるようにセットしてお...
  • ステップ23 「ステータスバーを使う③」
    ...ic.dwSize=Len(ic) ic.dwICC=ICC_BAR_CLASSES InitCommonControlsEx(ic) インスタンスハンドルを取得 hInst=GetModuleHandle(0) アイコンを読み込む hIcon1=LoadImage(hInst,IDI_ICON1,IMAGE_ICON,16,16,0) hIcon2=LoadImage(hInst,IDI_ICON2,IMAGE_ICON,16,16,0) hIcon3=LoadImage(hInst,IDI_ICON3,IMAGE_ICON,16,16,0) ステータスバーを作成 hStatusWnd = CreateStatusWindow( _ WS_CHILD or WS_VISIBLE or CCS...
  • While~Wend
    名称 |While~Wend 読み |ワイル~ウェンド 文法 |While condition ... [Continue] ... [Exit While] ... Wend 説明 |ループ処理の王様。conditionが真の間だけWhile~Wend間をループ。
  • クラスを作ってみよう
    N88BASICしか知らない人にとってABを初めて触ったときは手も足も出ないというのが本音でしょう。 ABは構造化というものがサポートされているからです。 構造化はN88BASICのプログよりわかりやすいという人もいますが、実際は逆です。 構造化(関数に分割すること)は上から順に読むことができず、かのGotoよりもたちが悪いです。 またClassはその上を行く難解で複雑でカオスで信者とかアンチとかが入り交じっている世界です。 ブログなどでオブジェクト指向とはなんて語ると、どこからともなく変な人が現れて荒らされてしまいます。 さてここではオブジェクト指向よりもクラスの作り方、使い方を説明します。 なおABのヘルプには必要なことが書いてなかったり、どうでもいいことに冗長な説明があったりして使いにくいのですが、 クラスに関してはそこそこまとまっているので、是非、是非、...
  • ウインドウにファイルをドラックドロップする方法
    メインウインドウのプロパティ、拡張属性から、ドラックドロップを許可する、をちぇっく。 ウインドウのイベントコードの中から、DropFilesをコーディング。 Sub MainWnd_DropFiles(hDrop As HDROP) Dim FileName[MAX_PATH-1] As ByteDim fpath As String 'FileName配列にファイルパスを1つ格納 DragQueryFile(hDrop,0,FileName,MAX_PATH) '使用後はドラッグ&ドロップに関する情報を解放 DragFinish(hDrop)fpath=MakeStr(FileName)msgbox hMainWnd,fpath,"File Path"End Sub 複数のファイルを受け取る場合も同様...
  • 文字コードの変換
    UTF82SJIS http //blog.goo.ne.jp/xmldtp/e/7eaeeb3dabfe975dbc57f73aefb1c059からコピペ #N88BASIC Function utf8ToSjis(utf8 As *Byte) As *Byte Dim utf16 As *Word Dim wlen As Long Dim sjis As *Byte utf8ToSjis = NULL If utf8 = NULL Then Exit Function End If ============================== UTF8=>UTF16変換 ============================== まずは、wlenの長さをとる wlen = MultiByteToWideChar(CP_UTF8, 0, utf...
  • エディットボックス(1)
    ...WindowTextLength(hEditBox) 方法2 return = SendMessage(hEditBox,WM_GETTEXTLENGTH,0,0) どちらの方法でもreturnに文字数が入る ↑ [edit] テキストを設定する † 方法1 SetWindowText(hEditBox,Buffer) 方法2 SendMessage(hEditBox,WM_SETTEXT,0,Buffer) Bufferはセットしたい文字列の先頭のポインタを示すBytePtr型の変数 もしくはString型変数をStrPtrに渡した戻り値 ↑ [edit] テキストを取得する † 例としてエディットボックスの文字列を全て取得してみる Dim Buffer As BytePtr Dim Length As Lon...
  • ABのヘルプを充実させよう!
    ...WindowTextLengthok GetWindowThreadProcessIdok HideCaretok InsertMenuItemok InvalidateRectok InvalidateRgnok InvertRectok IsCharAlphaok IsCharAlphaNumericok IsCharLowerok IsCharUpperok IsChildng IsDialogMessageok IsIconicok IsWindowok IsWindowEnabledok IsWindowVisibleok IsZoomedok keybd_eventok KillTimerng LoadBitmapok LoadCursorok LoadCursorFromFileok...
  • コンソールアプリ
    'コンソール#consoleDeclare Function SetConsoleTextAttribute Lib "kernel32" (hConsoleOutput As HANDLE, wAttributes As Word) As LongDeclare Function GetConsoleScreenBufferInfo Lib "kernel32" (hConsoleOutput As HANDLE, lpConsoleScreenBufferInfo As *CONSOLE_SCREEN_BUFFER_INFO) As LongType COORD X As IntegerY As Integer End TypeType SMALL_RECTLeft As IntegerTop As IntegerRight As In...
  • コンストラクタ、デストラクタ
    前回は簡単なクラスをつくってみますた。ファイルを読み込むだけのABFILEクラスです。 でもおこんなものなーんの役にもたちゃしねえわけです。 さて今回お話するのはコンストラクタとデストラクタです。 コンストラクタを笑うものはデストラクタに泣くという格言があるくらい重要なパートです。 こいつを理解するとオブジェクト指向なんて小難しいことは知らなくて構いません。 そもそもABでオブジェクト指向しようなんてのが土台無理な話なのです。 ABは大規模いや中規模開発すら大変なクソ言語です。 正直ファイルの分割なんてあって無いようなものだしスコープに対する静的オブジェクトも作れないし。 他の言語でつくられたモジュールとの連携も多大な制約を受け、 もしオブジェクト指向を勉強したいなら他の言語でやってくれ。と声を大にして言いたい。 ABなんぞホビーで使う言語であり、それに特化してい...
  • Space$
    名称 |Space$ 読み |スペースドル、スペースダラー等 定義 |Space$(length As Long) As String 説明 |length個のスペースを持つ文字列を返します。 戻り値 |文字列が返ります。 参照 |
  • Input$
    名称 |Input$ 読み |インプットドル 定義 |Input$(length As Long) As String 説明 |プロンプトウィンドウ専用。 文字をlengthだけ入力。 戻り値 |文字列が返ります。 参照 |Inkey$
  • デレクトリの再帰検索を行う
    /*デレクトリの再帰検索を行うdir → 検索ディレクトリfukasa → 最大深さ。0ならサブディレクトリを検索しないcallback_func → 検索結果のファイル、フォルダの名前を返す関数のアドレス返り血 なし*/Sub hxtree(dir As *Byte, fukasa As DWord, callback_func As *Sub(p As *Byte))Dim wfd As WIN32_FIND_DATADim hF As HANDLEDim noah[428] As Bytewsprintf(noah, "%s\*.*", dir)hF = FindFirstFile(noah, wfd)DoIf lstrcmp(".", wfd.cFileName) = 0 or lstrcmp("..", wfd.cFil...
  • インターネット
    ...lpdwBufferLength As Long,ByRef lpdwIndex As Long) As Long Declare Function InternetCloseHandle Lib "wininet.dll"(hInternetHandle As Long) As Long Declare Function InternetOpenUrl Lib "wininet.dll" Alias "InternetOpenUrlA" (hInternetSession As Long,_ sUrl As BytePtr,sHeaders As Long,lHeadersLength As Long,lFlags As Long,lContext As Long) As Long Declare Function...
  • ファイルを扱う
    旧来の方法を模した(open,close,inputなどを使う)方法と、APIを使う方法がある。 旧来の方法 昔のBASICを知っている人はこれを使いたいと思うだろうが、実は互換性に乏しい。 エラーが起きたときに適切に処理する方法が用意されていないので注意が必要。 シーケンシャル これで書き込み。 open "test.dat" For output As #1write #1, "test",1,"a"close #1 test.datはこのようになる。 test,1,a[cr][lf] 読み込むときは、型をあわせて Dim a$,b$,c$,i,j,kopen "test.dat" For input As #1input #1, a$,i,c$close #1 とやればok。...
  • シリアルポートを使う
    ... ByteDim wLen As LongDim rData(500) As ByteDim rLen As LongZeroMemory(wData,32)ZeroMemory(rData,500)wData=lstrcpy(wData,"U"+Chr$(13))'データ出力(2byte)dummy=WriteFile(hComm, wData, 2, VarPtr(wLen), ByVal 0)'データ入力(500byte)dummy=ReadFile(hComm, rData, 500, VarPtr(rLen), ByVal 0)print rData(1)'ポートを閉じるdummy=CloseHandle(hComm)end txrx1.sbp 'シリアルポートのオープン関数の定義'Declar...
  • Base64 エンコード
    文字列を入力しBASE64にエンコードしてみるテスト。 #N88BASICFunction Base64Enc(src As *Byte, dst As *Byte) As LongDim Base64Tbl = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=" As *ByteDim i As Long, j As Long, n As Long, t As LongDim p As *Bytep = calloc((lstrlen(src)\3+1)*3+1)lstrcpy(p, src)While p[i]t = (p[i] 16) or (p[i+1] 8) or (p[i+2] 0)i=i+3For n=3 To 0 Step -1dst[j] = Base64T...
  • ステップ29 「WAVEファイルを再生する」
    今回は、WAVEファイルを再生するだけの超簡単プログラムを作ってみます。 同期式でのWAVE再生 #include api_mmsys.sbp 'WAVEファイルを再生PlaySound("C \Winnt\Media\Notify.wav",0,SND_FILENAME)'プロセスを終了するEnd っと、これだけです(^^; 1行目の "#include " で、マルチメディア用の関数が定義されているファイルを読み込みます(PlaySound関数が利用可能になります)。 次に、PlaySound関数を呼び出し、WAVEファイルを再生します。第1パラメータに適当なWAVEファイルへのパスを指定します。第2パラメータは、リソースを利用する場合に指定しますが、今回はリソースを利用しないので、0を指定し...
  • ダウンローダーを作ってみよう
    ...lpdwBufferLength As Long,ByRef lpdwIndex As Long) As Long Declare Function InternetCloseHandle Lib "wininet.dll"(hInternetHandle As Long) As Long Declare Function InternetOpenUrl Lib "wininet.dll" Alias "InternetOpenUrlA" (hInternetSession As Long,_ sUrl As BytePtr,sHeaders As Long,lHeadersLength As Long,lFlags As Long,lContext As Long) As Long Declare Function Int...
  • 暗号化
    #N88BASIC データを暗号化 Function EnC(in As *Byte, out As *Byte, l As Long) As Long Dim Cind As Long out[0] = in[0] For Cind = 1 To l-1 out[Cind] = in[Cind]-in[Cind-1] Next End Function データを複合化 Function DeC(in As *Byte, out As *Byte, l As Long) As Long Dim Cind As Long out[0] = in[0] For Cind = 1 To l-1 out[Cind] = in[Cind]+out[Cind-1] Next End Function Function Show(in...
  • クリップボード
    クリップボードの処理は面倒だ。 GlobalAllocなんていう化石の関数を使わなければいけない。 注意すべき点はSetClipboardDataで登録したメモリはユーザが開放してはいけないこと。 Sub PutClipText(buf As *Byte)Dim bufsiz As LongDim hGlob As HANDLEDim hMem As HANDLEbufsiz = lstrlen(buf)+1hGlob=GlobalAlloc(GHND, bufsiz) hMem=GlobalLock(hGlob) lstrcpy(hMem,buf) GlobalUnlock(hGlob) OpenClipboard(NULL) EmptyClipboard() SetClipboardData(CF_TEXT,hGlob) CloseClipboard() End SubFu...
  • INIファイル
    #N88BASICDeclare Function GetPrivateProfileInt Lib "kernel32" Alias "GetPrivateProfileIntA" _ ( lpApplicationName As BytePtr, _ lpKeyName As BytePtr, _ nDefault As Long, _ lpFileName As BytePtr) As LongDeclare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" _ ( lpApplicationName As BytePtr, _ lpKeyName As VoidPtr, _ lp...
  • リストビュー(3)
    リストビューにアイコンを付ける~他タイプのリストビューについて † ↑ [edit] リストビューにアイコンをつける † 特定フォルダ内のファイルリストをリストビューに表示しアイコンをつけてみます ↑ [edit] 準備 † iml.sbp ↑を前回までのプロジェクトに追加 ↑ [edit] イメージリスト † イメージリストというのはコモンコントロールの一種で同サイズのイメージをインデックスで管理できるようにしたものです コモンコントロールでアイコンを使う場合はほぼ例外なくイメージリストを要求されますが 画像を用意するのが面倒くさいので今回はシステムが持っているイメージリストを使います iml.sbpをインクルードしてあればGetSystemImageList関数で取得できます GetSystemImageList(IconTyp...
  • スクリーンセーバーを作る必要性
    MinGWのパブリックドメインのソース を ABに変換する 途中まで…あとはまかせた Const DLG_SCRNSAVECONFIGURE= 2003Const idsIsPassword=1000Const idsIniFile=1001Const idsScreenSaver=1002Const idsPassword=1003Const idsDifferentPW=1004Const idsChangePW=1005Const idsBadOldPW=1006Const idsAppName=1007Const idsNoHelpMemory=1008Const idsHelpFile=1009Const idsDefKeyword=1010Const IDS_DESCRIPTION =1Const ID_APP =100Const WS_GT =WS_GROUP or...
  • リストビューを使う
    ...ction ListLength(hWnd As Long) As LongListLength=SendMessage(hWnd, h1004,0,0)End Function
  • HTTPの初歩
    ... Content-Length 25222length CRLF メッセージボディ hostname、uriはGETと同じ typeはフォームデータだけ場合はapplication/x-www-form-urlencoded 何らかのリソースを含む場合はmultipart/form-data 殆ど前者だけで事足りると思うが、アップローダーのようなリソースを受け付けるCGIは後者を利用する lengthは後に続くメッセージボディの長さ メッセージボディはapplication/x-www-form-urlencodedの場合 変数名1=値1 変数名2=値2... のように変数名と値を=で結んだ物を を区切りとして羅列する。変数名も値もURLエンコードされていなければならない multipart/form-dataは大変なので省略 成功...
  • gogo.sbp
    ...ned long nLength ); 要求を処理する際に ・void *buf には nLength バイト分のデータを格納、 return ME_NOERRで抜ける ・ファイルの最後に達して、nLength分読み込めない(かつ少なくとも1バイト以上読み込める)場合、 memset( buf + 読み込んだデータbyte, 0, nLength - 読み込んだデータサイズ) ; として return ME_NOERR する。 ・1バイトも読めない場合は、何もせず return ME_EMPTYSTREAM; で抜ける */ ------------------------------ for OUTPUT ( now stdout is not support ) Const MC_OUTPUTFILE = 2...
  • @wiki全体から「Len」で調べる

更新順にページ一覧表示 | 作成順にページ一覧表示 | ページ名順にページ一覧表示 | wiki内検索