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はどう書く? |