2010-09-01から1ヶ月間の記事一覧
Haskell で Excel を操作するためにまずはファイル名からフルパス名を求めます。 import System.Win32.Com import System.Win32.Com.Automation import Debug.Trace getFullPathName :: String -> IO String getFullPathName fname = do createObject "Scrip…
C で Excel にアクセスするのには COM の invoke を使ってアクセスします。C で書く前に Ruby の invoke メソッドだけを使ってアクセスしてみます。 参考:Win32OLE 活用法 【第 2 回】 Excel COM を学ぶ(5) : Mingw で MS-Access,SQL server に接続 requir…
C++ で書かれた wxTutorial by Franky Braem の例を wxHaskell に置き換えながら wxWidgets と wxHaskell の学習をしようと思います。 まず、C++のソースです。 HelloWorldApp.h // http://wiki.wxwidgets.org/Hello_World #ifndef INCLUDED_HELLOWORLDAPP_H…
Ubuntu Linux でも wxHaskell が動作したのでメモしておきます。 wxWidgets ライブラリを apt-get コマンドでインストールしての cabal install wx はコンパイルに失敗。 WxHaskell/Building を参考にソースからインストールしました。 wxWidgets のインスト…
module Main where import Graphics.UI.WX import Graphics.UI.WXCore.Frame (frameCenter) main :: IO () -- start :: IO a -> IO () -- Defined in Graphics.UI.WX main = start hello {- frameCenter :: Frame a -> IO () Center the frame on the screen…
import Char (isDigit) toHanDigit :: String -> String toHanDigit = toDigit.zenToHan -- 数字以外は無視します。 toDigit :: String -> String toDigit [] = [] toDigit (x:xs) = if isDigit x then x:toDigit xs else toDigit xs zenToHan :: String -> …
frame や button は clientSize でオブジェクトの大きさを変更しますが、テキストボックス(textEntry)は clientSize の値を変更してもオブジェクトの大きさは変化しません。 [wxhaskell-users] Size of an entry field に minsize を使う方法が紹介されてい…
関数で定義した局所変数に、ほかの関数からアクセスできる場合がある。 (defun foo () (let ((a "Hello")) (print a) (bar))) (defun bar () (print a)) (setq a "world") (bar) ;; => "world" (foo) ;; => "Hello" "Hello" (Emacs Lisp の場合) "world" (Co…