日本語プログラミング言語なでしこの公式掲示板

なでしこ の 掲示板

トップ 新規 検索

2024-02-25 16:27:27

Re①:なでしこ3でバイナリ取得するには

雪乃☆雫 さん

なんかこんなかんじ?
#------------------------------
url=「https://n3s.nadesi.com/image.php?f=8.jpg」
blob=urlからAJAXバイナリ取得。
slicedBlob=blobの「slice」を[16, 16+2]でJSメソッド実行 

FR=「new FileReader()」をJS実行。
FRの「readAsArrayBuffer」をslicedBlobでJSメソッド実行。
(FR["result"]=NULL)の間。0.01秒待つ💧
AB=FR["result"]。 
a=「new Uint16Array(sys.__findVar('AB'))」をJS実行。
aを表示。
#------------------------------
BlobからFileReaderを使ってArrayBufferを得ています。
newはJS実行して変数に代入しちゃえばそのまま使えます。
いちおうなでしこ1のサンプルで同様の結果が得られたと思います。
AJAXで取得する場合ならなんか実際はfetchのレスポンスで直接ArrayBufferが取れるみたいなんですけれどね🤔


なでしこ1のプログラムで、ファイルの$10~$11バイト目に書いてある値を「バイナリ取得」で数値に直して取得していました。

#-----------------------------------------------------------------------
//なでしこ1
 h=fileを「読」でファイルストリーム開く
 hで$10にファイルストリーム位置設定
 bin=hで2をファイルストリーム読む
 a=binの0を『INT』でバイナリ取得
#-----------------------------------------------------------------------

これをなでしこ3に移植したいのですが、どう書くと良いですか?

#-----------------------------------------------------------------------
//なでしこ3
 blob = urlからAJAXバイナリ取得
 slicedBlob = blobの「slice」を[16, 16+2]でJSメソッド実行
 //slicedBlobからUint16Arrayで値を取り出す?

#-----------------------------------------------------------------------

なんかこのへんを使う雰囲気までは調べました
・blob.slice(start,end)で切り取る blobが返る
・blob.ArrayBuffer()を使う? プロミスが返る AWAIT実行がいる?
・new Uint16Array()を使う? newはどう書く?


(編集パスワード送信)

子記事

親記事 (No.1831)
返信した記事(元) (No.1831)

この内容(No.1832)に返信

この内容(No.1832)をダウンロード

この内容(No.1832)のテキスト表示





www.eznavi.net