コンピュータを楽しもう!!

今、自分が面白くていろいろやってみたことを書き綴りたいと思います。連絡先はtarosa.yでgmail.comです。

Luarida v1.67Betaを公開しました

Luarida v1.67Betaを公開しました。少しのバグフィックスとHttp関連のコマンドの追加、及びZIP圧縮関連のコマンドの追加を行いました。また、実行中のプログラムのPathを取得するgetAppPath()コマンドも追加しました。直接のダウンロードはここから(Luarida v1.67Beta)。最新版は[Luarida最新版]カテゴリーを選んでください。

実行しているプログラムのPathを取得する

system.getAppPath()はLuaridaが起動したプログラムの絶対Pathを返します。

 --縦向きに変更
 system.setScreen(1)
 --内部グラフィック画面設定の変更
 w,h = canvas.getviewSize()
 canvas.setMainBmp( w, h )

 dialog( "アプリのPathの表示", "AppPath = "..system.getAppPath() )
 touch(3)
 system.exit()

httpコマンドの追加

httpのGETプロトコルは以前からサポートしていたのですが、POSTプロトコルにも対応しました。下記のコマンドが新たに追加されました。

  • http.post(POSTするURL) : POST先のURLを指定してPOSTします。
  • http.setPostFile(POSTするファイル名) : POSTするファイルを指定します。
  • http.addParam(パラメータ) : POSTするときのパラメータを指定します。パラメータは追加できます。
  • http.clrParam() : パラメータを消去します。
  • http.clrHeader() : addHeader()によって追加したヘッダファイルを消去します。
  • http.setContentType(POSTファイルのコンテントタイプ) : POSTファイルのContent-Typeをセットします。text/plain、image/jpegtext/xml、application/zip などです。
 --縦向きに変更
 system.setScreen(1)
 --内部グラフィック画面設定の変更
 w,h = canvas.getviewSize()
 canvas.setMainBmp( w, h )

 --アプリと同じフォルダににある画像ファイルをPOSTします。
 http.clrParam()
 http.clrHeader()

 http.setPostFile( system.getAppPath().."/img_1.jpg"  )
 http.setContentType( "image/jpeg" )
 http.addParam("func=upload")
 http.post( "http://aaa.bbb.ccc.com/"  )
 while( http.status()==0 )do	end

 dialog( "POST処理の終了", "img_1.jpgをPOSTしました" )
 system.exit()	


ファイルをPOSTする必要が無くPOSTプロトコルのみ発行したい場合は、setPostFileを指定せずにPOSTすればOKです。

 http.clrParam()
 http.clrHeader()

 http.addParam("ccc=0")
 http.addParam("bbb=10")
 http.post( "http://aaa.bbb.ccc.com/"  )
 while( http.status()==0 )do	end

 dialog( "POST処理の終了", "http://aaa.bbb.ccc.com/?ccc=0&bbb=10 をPOSTしました" )
 system.exit()	

zipコマンドの追加

複数のファイルを圧縮するzipコマンドを追加しました。

  • zip.status() : zip圧縮処理の結果を取得します。
  • zip.exec(zipファイル名) : 圧縮ファイル名をフルパスで指定します。
  • zip.addFile(圧縮するファイル名) : 圧縮するファイルをフルパスで指定します。ファイルは追加して指定できます。
  • zip.clrFile() : 指定した圧縮ファイルを全てクリアします。

以下にzipしたファイルをPOSTするサンプルプログラムを書いておきます。

 --縦向きに変更
 system.setScreen(1)
 --内部グラフィック画面設定の変更
 w,h = canvas.getviewSize()
 canvas.setMainBmp( w, h )

 --ファイルを圧縮します
 zip.clrFile()
 zip.addFile( system.getAppPath().."/exitsample.lua"  )
 zip.addFile( system.getAppPath().."/graphicsample.lua"  )
 zip.addFile( system.getAppPath().."/hajimeni.lua"  )
 zip.addFile( system.getAppPath().."/luarida.lua"  )
 zip.addFile( system.getAppPath().."/textSample.lua"  )
 zip.addFile( system.getAppPath().."/textinput.lua"  )
 zip.addFile( system.getAppPath().."/touchsample.lua"  )

 zip.exec( system.getAppPath().."/luaridasample.zip"  )
 while( zip.status()==0 )do	end

 dialog( "zip圧縮の終了", system.getAppPath().."/luaridasample.zip" )

 http.clrHeader()
 http.clrParam()

 http.setPostFile( system.getAppPath().."/luaridasample.zip"  )
 http.setContentType( "application/zip" )
 http.addParam("func=upload")
 http.post( "http://aaa.bbb.ccc.com/"  )
 while( http.status()==0 )do  end

 dialog( "POST処理の終了", "luaridasample.zip をPOSTしました" )

以上です。

http.post( POSTするURL )

POST先のURLを指定してPOSTします。setPostFile()でPOSTファイルを指定しなくてもPOSTできます。そのときはPOSTパラメータのみ送信されます。
引数

  • POSTするURL: POST先のURLです。?パラメータ1&パラメータ2という風に書いても大丈夫です。

使用例

--アプリと同じフォルダににある画像ファイルをPOSTします。
 http.clrParam()
 http.clrHeader()

 http.setPostFile( system.getAppPath().."/img_1.jpg"  )  --POSTするファイルを指定します。
 http.setContentType( "image/jpeg" )      --コンテントタイプを指定します。
 http.addParam("func=upload")             --パラメータを設定します。
 http.post( "http://aaa.bbb.ccc.com/"  )  --POSTします。
 while( http.status()==0 )do end          --POSTが終了するまで待ちます。

http.addParam( POSTパラメータ )

POSTパラメータをセットします。
引数

  • POSTパラメータ: POSTパラメータとは、POSTするときにURLの後に付く & で区切られたパラメータのことです。addParamを繰り返して、複数個セットすることが可能です。

使用例

 http.addParam("ccc=0")
 http.addParam("bbb=10")
 http.post( "http://aaa.bbb.ccc.com/"  )
 while( http.status()==0 )do	end

 dialog( "POST処理の終了", "http://aaa.bbb.ccc.com/?ccc=0&bbb=10 をPOSTしました" )

http.setContentType( POSTファイルのContent-Type )

POSTファイルのContent-Typeを指定します。
引数

  • POSTファイルのContent-Type: POSTファイルのコンテントタイプです。jpgファイルなら"image/jpeg"、テキストファイルなら"text/plain"、zip圧縮ファイルなら"application/zip" などです。

使用例は、http.post()を参照してください。

zip.addFile( 圧縮するファイル名 [,解凍フォルダ] )

圧縮するファイル名と解凍するフォルダ名をセットします。
引数

  • 圧縮するファイル名: 圧縮するファイル名をフルパスで書きます。addFileを繰り返して、複数ファイルを設定します。
  • 解凍フォルダ: 省略すると解凍先はルートフォルダになります。解凍フォルダを指定すると、ルートフォルダ下にできる解凍フォルダに解凍されます。

以下の使用例では、生成されたluaridasample.zipを解凍すると、下記のようなフォルダに解凍されます。

  • luarida.lua
  • folder1/exitsample.lua
  • folder1/graphicsample.lua
  • folder1/folder3/textSample.lua
  • folder1/folder3/textinput.lua
  • folder2/hajimeni.lua
  • folder4/touchsample.lua

使用例

 --ファイルを圧縮します
 zip.clrFile()
 zip.addFile( system.getAppPath().."/exitsample.lua", "folder1" )
 zip.addFile( system.getAppPath().."/graphicsample.lua", "folder1" )
 zip.addFile( system.getAppPath().."/hajimeni.lua", "folder2" )
 zip.addFile( system.getAppPath().."/luarida.lua" )
 zip.addFile( system.getAppPath().."/textSample.lua", "folder1/folder3" )
 zip.addFile( system.getAppPath().."/textinput.lua", "folder1/folder3" )
 zip.addFile( system.getAppPath().."/touchsample.lua", "folder4"  )

 zip.exec( system.getAppPath().."/luaridasample.zip"  )
 while( zip.status()==0 )do end  --zip圧縮が終了するまで待ちます。

 dialog( "zip圧縮の終了", system.getAppPath().."/luaridasample.zip",1 )
 El_Psy_Congroo()