Ψ(`∀´)Ψケケケ と (´・ω・`)ショボーン

AviUtl用のスクリプト配布やBlender、自作PCのパーツやガジェットの情報を配信中

 

【AviUtl】Luaの覚書 loadstring()を使った文字列のプログラム化【自分用】

Edit Category Aviutl > スクリプト(配布物や制御法関係)

20150724104856

Luaの覚書。以前、あれこれと悩んだ末にこの方法での作成を断念した処理の解答を得られたので、忘れないように記事に残しておきます。……完全に自分用です。

ちなみに【AviUtl】TA簡易数値出力スクリプト【拡張編集】 を作っているときに悩んで別の手段にし、これとは全く関係ないことを調べていたら今になってやりたかった手段を見つけるという……。

アーチャー 「……答えは得た(震え声)」
(´;ω;`)ブワッ

loadstringを使った可変する文字列の文法

i = nil --初期化
str = “i=”..”i*”..obj.track0..”+”..obj.track1
f = loadstring(str)

i = i or 5
f()
f()

obj.setfont(“”,24)
obj.load(“text”,i)

↓ ↓ ↓ ↓ 

obj.track0=10, obj.track1=2のとき出力される数値は522。


『動作の流れ』

  1. i の初期値はnilなので、まず i には5が入る。
  2. 次にひとつめのf()の処理で、i = 10 * 5 +2 で i は52になる。
  3. ふたつめのf()が処理されるが、i には既に52が入っているので、i には5ではなく52が使用される。
  4. i = 10 * 52 + 2 で i の値は522となって出力される。

 

loadstringの文字列の扱い

loadstring(string , chunkname)

string … 文字列型

文字列stringをチャンクとみなし、関数を返します。戻り値、chunknameの意味等はloadと同様です。

以下の例は、文字列で与えられたチャンクをロードし、実行するときの常套句です。

assert(loadstring(str))()


loadstring(str)で文字列strをコンパイルし、関数にします。assertを使うのは、strにエラーがあった場合にそれを捕まえるためです。最後のカッコ()で、コンパイルされた関数を実行しています。

引用元:Lua言語のライブラリ関数

※ 太字、赤字はΨ(`∀´)Ψケケケが行いました。

『 str = “i = i +1” 』という式があったとして、この前後に『 i = 5 』と記述しても、当然ながら『 str 』の中身は文字列である『 i = i + 1 』のまま。

ところが、loadstring()を使ってやると、『 i = i + 1 』が式に早変わり。また関数化されているので、f()で計算が行われる。

 

ちなみにDLLの作り方 - AviUtlスクリプト Wikiを参考にして、重い処理を肩代わりしてくれるdllを作ろうとしたのだけど、C++入門未満レベル、雛型見ても理解に苦しむ(←自分が賢くないだけ)、VSC++2008よりもVSC++2010のほうが良さそうだったので、バージョンアップしたら現在、ユーザー登録ができない状況とか……。orz

 

でもまあ、あれ。ネットをさまよい、あれこれと調べているうちに既読の記事を読み直して、見落としていた部分や理解できなかった部分を理解できるようになるなどしているので、無駄ではない、無駄ではない無駄ではない……はず。

 

 

対応TDPが高い! 独特の形(向きを変えてパーツ同士の干渉を防ぐ感じ?)だけどかなり冷えるのかな? 人柱になった方のレビューがネット上に出てくるのを期待!
+(0゚・∀・) + ワクテカ +

関連記事
スポンサーサイト
Community テーマ - プログラミング  ジャンル - コンピュータ

Newer Entry【AviUtl】『音』でランダムラスター(発生条件が音)を配布【拡張編集】

Older Entry【AviUtl】微速度撮影風(通常版&音で再生速度緩急版)のカスタムオブジェクト 2種類を配布【拡張編集】

Comments


Trackbacks

 
09 2017
SUN MON TUE WED THU FRI SAT
- - - - - 1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30

08 10


 
 
連絡事項:配布中のAviUtl用のZIPファイルがDLできない件
どうもzipを置いていたサイトを単なるファイル置き場にしてしまったのが悪かったようで、直接ブログからダウンロードできなくなってしまったようです。 ファイルを保存していた『ultramarinepig.web.fc2.com』の

++ トップページ(リンク) ++

に各DLLへのリンクを貼ったリストを作りましたので、ブログのDLの項目からダウンロードできない場合はそちらからダウンロードしてください。

ファイル名はブログのDLリンクに表示されるものと同じですので、それを選択してもらえれば……お手数ですが、よろしくお願いします。m(_ _)m
 
【Blu-ray】劇場版 ソードアート・オンライン -オーディナル
 
注意事項

紹介されているフリーソフト、スクリプトをインストールするときは、フリーソフトの説明および注意事項を熟読し、自己責任においてご利用下さい。



記事:Amazonギフト券の期限など
特価情報:各ジャンル・タイムセール

 
初音ミクGTプロジェクト レーシングミク2016 TeamUKYO応援 ver.
figma 初音ミクGTプロジェクト レーシングミク2016 TeamUKYO応援 ver. ノンスケール ABS&PVC製 塗装済み可動フィギュア
 
オススメ


グランブルーファンタジー(3) (サイコミ)



ASUS ZenFone4 Pro SIMフリー スマートフォン (ブラック/5.5インチ)【日本正規代理店品】(オクタコアCPU/6GB/128GB/3600mAh) ZS551KL-BK128S6/A













(アルファ インダストリーズ)ALPHA INDUSTRIES INC ALPHA N-3B TIGHT ミリタリーアウタージャケット 20094-201


 
ブログ内検索
記事を探すときは、キーワードで検索をかけると速くて便利です。
 
ワンパンマン 戦慄のタツマキ 1/8スケール PVC製 塗装済み完成品フィギュア
 
人気記事
 
PLAY ARTS改 BATMAN™: ARKHAM KNIGHT バットマン™
PLAY ARTS改 BATMAN™: ARKHAM KNIGHT バットマン™ PVC製 塗装済み可動フィギュア
 
 
 
ブログ内検索
記事を探すときは、キーワードで検索をかけると速くて便利です。
 
 
動画編集・3DCG向け自作PC構成2017秋仕様
8コア16スレッドのAMD Ryzen R7 1700で組むコスパの良い自作PC。

注意点としては現在発売されているRyzenはAPUではなくCPUなので、GPUが必須であること。

また、メモリの価格が高騰中。DDR4-2666の16GBで12K前後のものがあれば即買いといった感じ。


MSI X370 GAMING PRO CARBON ATX ゲーミングマザーボード [AMD RYZEN対応 socket AM4]


MSI GeForce GTX 1060 AERO ITX 3G OC


WD SSD 内蔵SSD M.2 256GB WD Black / PCIe Gen3 NVMe 8Gbs / 5年保証 / WDS256G1X0C


Corsair RM750x 80PLUS GOLD認証取得 750W静音電源ユニット PS594 CP-9020092-JP


サイズ 虎徹 Mark II


Pioneer パイオニア Ultra HD Blu-ray UHDBD再生対応 USB3.0 クラムシェル型ポータブルブルーレイドライブ BDR-XD06J-UHD

Thermaltake VIEW 31 TG RGB ミドルタワーPCケース CS6814 CA-1H8-00M1WN-01がパソコン・周辺機器ストアでいつでもお買い得。当日お急ぎ便対象商品は、当日お届け可能です。アマゾン配送商品は、通常配送無料(一部除く)。
Thermaltake VIEW 31 TG RGB ミドルタワーPCケース CS6814 CA-1H8-00M1WN-01


LG モニター ディスプレイ 24UD58-B 23.8インチ/4K(3840×2160)/IPS 非光沢/HDMI×2、DisplayPort/ブルーライト低減機能

++++以下、殻割り用アイテムなのでRyzenで組むならば不要++++



記事:CPUの『殻割り』に使うグリスの候補【OC 殻割り】



 
オススメのフリーソフト
ブラウザ(お好みで。複数可)
Firefox
Opera
Sleipnir
ファイアウォール(必須)
Comodo Internet Security
ZoneAlarm
Outpost Security Suite FREE
アンチウィルスソフト(必須)
avast! 4 Home Edition
avira 無料版
AVG Anti-Virus Free Edition
レジストリ保護&クリーナー(必須)
Spybot-S&D
CCleaner
圧縮・解凍ソフト(必須)
Lhaplus
7-Zip
オフィスソフト
OpenOffice.org
LibreOffice
TeraPad
メーラー
Thunderbird
オンライン・コミュニケーション・ツール
Open Live Writer
Skype
Windows Live メッセンジャー / MSN メッセンジャー
Backup & PartitionEditor
EaseUS Todo Backup Free
EaseUS Partition Master
コーデックパック(どちらか)
K-Lite Codec Pack
 
Combined Community Codec Pack
各エンコーダ&デコーダ、スプリッタ(競合注意)
ffdshow
Xvid Codec
qaac Codec
x264vfw
Haali Media Splitter
LAV Splitter
webm
Google VP8 Video For Windows codec
動画音楽再生プレーヤー(複数可)
MPC Home Cinema
GOM PLAYER
SMPlayer
VLC media player
動画加工編集ソフト
Windows ムービー メーカー
Windows Media エンコーダ
MP4Cam2AVI
Any Video Converter フリー版
CamStudio
SEffect
x264vfw
AviUtl
AviUtlのプラグイン
MediaCoder
Nero AAC Codec
Avidemux.org
真空波動研 Lite
えこでこツール
XMedia Recode
グラフィックソフト
Blender
Inkscape
GIMP
PlayMemories Home
FireAlpaca
HTML&ブログ制作
ez-HTML
Windows Live Writer
FFFTP
WinShot
Aptana | Studio
AviUtl
AviUtlの基礎構成ファイルDL
その他、色々と……
DataRecovery
CPU-Z
CrystalDiskMark
CrystalDiskInfo
 
 
QRコード
QRコード
 
プロフィール

Ψ(`∀´)Ψケケケ

Author:Ψ(`∀´)Ψケケケ
現在はAviUtl用の駄スクリプトを書いて配布中。使用は自己責任でお願いします。

 
 


ARCHIVE RSS