スレ立てるまでもない質問はここで 160匹目

■ このスレッドは過去ログ倉庫に格納されています
2022/05/10(火) 14:24:35.29ID:+9FnNLoT
この板はプログラムを作る人のための板です。
あらゆる質問はまず
スレ立てるまでもない質問はここで
スレにしてください。

次スレは>>980が立てること

【前スレ】
スレ立てるまでもない質問はここで 159匹目
https://mevius.5ch.net/test/read.cgi/tech/1644673480/
2022/07/27(水) 01:51:03.95ID:LZk+uw73
スロットっていうことは、タイマー使ってクルクル回した方がいいのか?
2022/07/27(水) 01:58:07.37ID:LZk+uw73
フォームにタイマーを配置。

フォームが初期化されるときに0.33秒間隔のタイマーを起動。
タイマーイベントが発生したら、スロットの文字列をランダムな数字で更新。
2022/07/27(水) 01:59:20.33ID:LZk+uw73
判定ボタンを押したらタイマーを停止。
終了ボタンを押したらフォームを閉じる。
2022/07/27(水) 02:00:55.62ID:LZk+uw73
待てよ、スロットは規則正しく動かすべきか、それともランダムに変えるべきか。
546デフォルトの名無しさん
垢版 |
2022/07/27(水) 02:02:44.06ID:qI+Uo5vp
>>541
 Dim inp1 As Integer
Dim inp2 As Integer
Dim inp3 As Integer

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

  inp1 = Label1.Text
inp2 = Val(TextBox1.Text)
inp3 = Val(inp1 - inp2)
inp1 = CStr(Int(Rnd() * 99))

ということで大丈夫ですか?
2022/07/27(水) 02:05:27.70ID:LZk+uw73
>>546
それならinp1は整数でTextBox1.Textは文字列となる。
整数変数に文字列を代入するのはおかしい。
2022/07/27(水) 02:10:07.62ID:LZk+uw73
>>546
代入文は順序が大事。ランダムな値を求めるのが先。
549デフォルトの名無しさん
垢版 |
2022/07/27(水) 02:10:38.30ID:kUpgZ120
>>547
この状態だとinp2 = Val(TextBox1.Text) は
>>541の値2とは書いてあることは同じではないのですか?
550デフォルトの名無しさん
垢版 |
2022/07/27(水) 02:12:35.54ID:kUpgZ120
>>548
つまり

Label1.Text = CStr(Int(Rnd() * 99))
inp1 = Label1.Text
inp2 = Val(TextBox1.Text)
inp3 = Val(inp1 - inp2)
ということですか?
2022/07/27(水) 02:13:43.00ID:LZk+uw73
>>550

> inp1 = Label1.Text

文字列を整数変数に代入できない。
552デフォルトの名無しさん
垢版 |
2022/07/27(水) 02:16:20.29ID:kUpgZ120
>>551
なので>>541みたく分けないといけないということですか?
2022/07/27(水) 02:17:47.50ID:LZk+uw73
>>552
文字列を整数にしたものを返す関数があるから、それを使う。
2022/07/27(水) 02:20:59.51ID:LZk+uw73
スロットマシンのような動作を期待しているのであれば、タイマーを使ってクルクル回す必要がある。なんなら音を出して、カジノのような演出も必要かも知れない。
出題者の意図をよく理解するんだ。
555デフォルトの名無しさん
垢版 |
2022/07/27(水) 02:22:17.13ID:kUpgZ120
>>553
inp1 = Label1.Text
inp2 = Val(TextBox1.Text)
inp3 = Val(inp1 - inp2)
inp1 = CStr(Int(Rnd() * 99))
それがこの状態だとまだ出来ていませんか?
その関数はintとはまた別なのですか?
556デフォルトの名無しさん
垢版 |
2022/07/27(水) 02:23:41.61ID:kUpgZ120
>>554
基礎レベルなので多分それは大丈夫だと思います
2022/07/27(水) 02:24:32.42ID:LZk+uw73
inp1 = Label1.Text
の左辺は整数変数。右辺は文字列。
型の不一致。

inp1 = CStr(Int(Rnd() * 99))
の左辺は整数変数。右辺はCStrの値なので文字列。
型の不一致。
2022/07/27(水) 02:26:47.85ID:LZk+uw73
CIntかValを使えば文字列を数値に変換できる。
2022/07/27(水) 02:29:56.55ID:LZk+uw73
あとはいくつかのIf文で差を比較し、場合分けして得点表示.Text に適当な文字列を代入すればいい。
560デフォルトの名無しさん
垢版 |
2022/07/27(水) 02:32:21.15ID:hUPssU1v
>>558
inp1 = Val(Int(Rnd() * 99))
Label1.Text = CStr(inp1)
inp2 = Val(TextBox1.Text)
inp3 = Val(inp1 - inp2)
こういうことですか?
2022/07/27(水) 02:33:05.88ID:LZk+uw73
絶対値を求める関数はAbs
562デフォルトの名無しさん
垢版 |
2022/07/27(水) 02:36:13.30ID:hUPssU1v
>>561
Absは宣言されていないと出てしまいます
2022/07/27(水) 02:37:16.50ID:LZk+uw73
System.Math.Abs
564デフォルトの名無しさん
垢版 |
2022/07/27(水) 02:41:06.00ID:QfftK3Ne
>>563
すみませんそれだけ書かれてもよくわかりません
2022/07/27(水) 02:41:25.80ID:LZk+uw73
廃止予定のVB.netを教材に使うなんて学校はひどいことをしますなあ。
2022/07/27(水) 02:43:48.59ID:LZk+uw73
inp3 = System.Math.Abs(inp1 - inp2)
567デフォルトの名無しさん
垢版 |
2022/07/27(水) 02:46:02.40ID:mBvV44nn
>>566
ありがとうございます
568デフォルトの名無しさん
垢版 |
2022/07/27(水) 02:48:16.34ID:mBvV44nn
これで前提条件は完成ということで大丈夫なのでしょうか?
2022/07/27(水) 02:51:54.76ID:LZk+uw73
>>568
実行してみてエラーが出ない。
そして、二分間画面をにらみつけて、間違いが見つからなければ次に進めばいい。
570デフォルトの名無しさん
垢版 |
2022/07/27(水) 02:57:24.54ID:AEbD6U5/
>>569
エラーは出ませんでした
If inp2 = inp1 Then
Label2.Text = "100点"
ElseIf inp1 > inp2 Then
Label2.Text = "10点"
ElseIf inp1 < inp2 Then
Label2.Text = "5点"

End If
下はこのようなコードなのですがtextboxに何も入力せずにボタンを押すと10点と出てしまいます
また比較の段階ではinpは既にvalで数値化しているのでvalをつけなくても問題ないという認識で間違っていないでしょうか?
2022/07/27(水) 02:58:18.78ID:LZk+uw73
※実行結果が間違いかどうか判定するのは、初心者なら自分自身だが、上級者はテストを自動化できる。
2022/07/27(水) 03:01:09.00ID:LZk+uw73
テキストボックスに何も入れない、ということは.Textが空文字列になる。空文字列をValに渡すとどうなるか?

空文字列かどうか判定する必要があるかも知れない。
2022/07/27(水) 03:02:49.33ID:LZk+uw73
数値化しているものを数値化するとは意味をなさない。
2022/07/27(水) 03:05:17.77ID:LZk+uw73
2つの数値の差がinp3だろ?
575デフォルトの名無しさん
垢版 |
2022/07/27(水) 03:10:08.15ID:jODmrfct
>>574
はい
2022/07/27(水) 03:11:42.49ID:LZk+uw73
>>575
もう一度、判定条件を読み直し。
577デフォルトの名無しさん
垢版 |
2022/07/27(水) 03:11:50.99ID:jODmrfct
自動でデバッグが必要ということもわかるのですが
まず 一致していないが、2 つの数値の差が 10 以内だったら 10 点をフォーム上に表示 ・ 2 つの数値の差が 10 より大きく 20 より小さかったら5点をフォーム上に表示 ・ 2 つの数値の差が 20 以上だったら 0 点をフォーム上に表示
が上手く書けなくて困っています
2022/07/27(水) 03:13:29.52ID:LZk+uw73
そういうときに便利な「数直線」。
数直線を紙に書いて、場合分けを考える。
2022/07/27(水) 03:15:18.50ID:LZk+uw73
絶対値は常にゼロより大きいのでカンタンだね。
2022/07/27(水) 03:17:08.97ID:LZk+uw73
*絶対値は常にゼロ以上なのでカンタンだね。
2022/07/27(水) 03:19:32.96ID:LZk+uw73
If文に複数の条件式を指定したい場合は、AndかOrを使って条件式をつなげる。
582デフォルトの名無しさん
垢版 |
2022/07/27(水) 03:19:51.93ID:yKrJTn5K
>>580
正直遠回しに言われても理解できないので
どこを直したらいいのか直接的に教えてもらえませんか?
If inp2 = inp1 Then
Label2.Text = "100点"
ElseIf inp1 <> inp2 And inp3 = 10 Then
Label2.Text = "10点"
ElseIf inp1 <> inp2 Then
Label2.Text = "5点"
ElseIf inp1 <> inp2 Then
Label2.Text = "0点"
583デフォルトの名無しさん
垢版 |
2022/07/27(水) 03:20:32.16ID:yKrJTn5K
>>581
それはわかります
2022/07/27(水) 03:25:42.03ID:LZk+uw73
答えだけ教えたら勉強にならないでしょう。

2 つの数値の差が 10 以内だったら 10 点をフォーム上に表示

ElseIf Inp3 <= 10 Then
10 点をフォーム上に表示。

2 つの数値の差が 10 より大きく 20 より小さかったら5点をフォーム上に表示

ElseIf 10 < Inp3 And Inp3 < 20 Then
5点をフォーム上に表示

2 つの数値の差が 20 以上だったら 0 点をフォーム上に表示

ElseIf 20 <= Inp3 Then
0 点をフォーム上に表示
2022/07/27(水) 03:27:25.65ID:LZk+uw73
最後に
End If
2022/07/27(水) 03:29:58.17ID:LZk+uw73
フォームに表示が共通しているから、数値の差から得点を返す関数を作れば、コードが合理的になる。
587デフォルトの名無しさん
垢版 |
2022/07/27(水) 03:31:50.09ID:yKrJTn5K
>>584
ありがとうございます
588デフォルトの名無しさん
垢版 |
2022/07/27(水) 03:33:08.65ID:yKrJTn5K
>>586
なるほど
2022/07/27(水) 03:37:40.83ID:LZk+uw73
時間があったら、その得点判定関数の単体テスト用の関数を書いてみろよ。
いくつかの使用例を想定して、2つの数値と得点数の組を記述するんだよ。
590デフォルトの名無しさん
垢版 |
2022/07/27(水) 03:41:16.49ID:yKrJTn5K
>>589
わかりました
夜分遅くまで付き合っていただきありがとうございました
2022/07/27(水) 03:47:12.89ID:LZk+uw73
>>590
サイバー世界に夜はない。人助けをしないとここから脱出できないものでな。しかたなくやってるだけさ。
592デフォルトの名無しさん
垢版 |
2022/07/27(水) 03:56:10.31ID:OAxBWYWr
どんな脱出ゲームなんだよw
2022/07/27(水) 16:11:49.73ID:zAtculQV
単体テストをmockitoを使って書いてますが、一時的なオブジェクトをモックするには
どうしたらいいでしょうか。例えば以下のようなmethod1()をテストするとき
Obj2 method1() {
 Obj1 obj1 = mendo_na_shori();
 return betsu_no_shori(obj1.hoge());
}
mendo_na_shori()は外部APIを呼ばないといけない、あとobj1の初期化にも深入りしたくない
ので、obj1.hoge()が適当な値を返すようにモックしたいのですが
betsu_no_shori()だけテストすればいいようにも見えてしまいますが、例がうまくないということで
2022/07/27(水) 16:29:49.90ID:sRAKzK8I
>>593
obj1を外からパラメータとして渡せるようにする
基本的にモックフレームワークの機能で無理矢理差し替えようとするのは悪手で、そもそもモックしやすい設計にすべき
2022/07/27(水) 16:35:46.22ID:zAtculQV
>>594
なるほど、なんだかテストのためにデザインを変えるようで躊躇していたのですが
むしろそれがいいデザインだったりするということでしょうか
あるいは「テストしやすい」ということを良いデザインの1要件として考えるということでしょうか
2022/07/27(水) 17:17:41.95ID:sRAKzK8I
>>595
その通り
開発作業を合理的に進めることがデザインの大きな目標なのだから、開発作業において重要な位置を占めるテストを前提にデザインを考えるのは当たり前
597デフォルトの名無しさん
垢版 |
2022/07/27(水) 17:53:16.59ID:nrHcrDPL
API作る費用がないから他の会社が作ったシステムのリードレプリカDB見てデータを取ってこいって流れになってるからなんとか阻止したいのですが、有名なアンチパターンとか何かないですかね?
2022/07/27(水) 18:51:26.26ID:5n9aUkym
久々にプログラミング復帰しようとして色々ソース見ようと思ったんだけど
昔存在したkodersとかGoogle Code Searchみたいなソースコード検索エンジンってない?
2022/07/27(水) 18:53:20.17ID:RFLOe/ZA
>>593
セオリーで言うとmethod1が含まれてるクラスのコンストラクタに
mendo_na_shori()を含むクラスのインスタンスを渡す形にしてそいつをモックする

method1がobj1を受け取る形にしたほうがいいかどうかは
純粋にmethod1の責務から考えたほうがいい
2022/07/27(水) 19:24:01.19ID:LZk+uw73
>>598
https://qiita.com/ozackiee/items/ef41501c4e7141d111d8
2022/07/27(水) 19:32:17.60ID:5n9aUkym
>>600
githubで検索も出来んのね
サンキュー
602デフォルトの名無しさん
垢版 |
2022/07/27(水) 20:48:10.95ID:8I1dQN/H
VSCodeでターミナルに文字が流れて行く時に画面がちらちらするんだけど
何が悪いのかな

argv.jsonの disable-hardware-accelarationはtrueにした
603デフォルトの名無しさん
垢版 |
2022/07/27(水) 20:48:27.26ID:8I1dQN/H
VSCodeでターミナルに文字が流れて行く時に画面がちらちらするんだけど
何が悪いのかな

argv.jsonの disable-hardware-accelarationはtrueにした
2022/07/27(水) 20:51:57.34ID:rf18Rv/q
2回書いたので失格
605デフォルトの名無しさん
垢版 |
2022/07/27(水) 21:08:44.11ID:8I1dQN/H
VSCodeでターミナルに文字が流れて行く時に画面がちらちらするんだけど
何が悪いのかな

argv.jsonの disable-hardware-accelarationはtrueにした
606デフォルトの名無しさん
垢版 |
2022/07/27(水) 21:09:20.89ID:8I1dQN/H
書き込めませんでしたというメッセージを出すmateが悪い
2022/07/27(水) 21:09:43.67ID:LZk+uw73
3回書いたので、敗者復活(ぴろぴらぴろ~ん
2022/07/27(水) 21:17:11.63ID:E+Dd+vMH
専ブラで書込失敗したら本当に失敗したか汎ブラで確認するだろ普通は
自分は悪くないとか言ってるとダメだよ
609デフォルトの名無しさん
垢版 |
2022/07/28(木) 02:37:06.41ID:RAA7k8hU
ポート番号7番でうけるエコーサーバーのソースコードを
調べたいのですが、githubのどこにあるのでしょうか?
bsd,linuxどちらでも構いません
回答よろしくおねがいします
2022/07/28(木) 08:36:13.31ID:ktot2FQ5
>>609
echoサービスってあったなあ。あれはinetd自体がやってたはず
なのでinetdもしくはxinetdのソースを探すべし
ソケットプログラミングとか知ってたらすんごい当たり前のことしかやってないと思うけど
2022/07/28(木) 09:49:49.09ID:m+r+vKYc
>>599
ありがとうございます、今回単体テスト&クラスのデザイン方針でモヤモヤしていた
ことを理解できました(と思います)
2022/07/28(木) 11:19:00.87ID:RAA7k8hU
>>610
回答ありがとうございます

文字境界をまたいだとき、またぐ時
どんな処理をすべきなのかわからなくて
調べようとしたときエコーサーバーのソースに
たどりつけず質問させていただきました

実験環境
windows10 + python3.9

# わざと少ないバイト数にする
BUFSIZE = 4

# どんな文字列がくるかわからない
s = input()

#ここでわざと境界をまたぐ6バイトの文字列(utf-8)を入力
s = "ああ"

# 送受信する
サーバー側:recv(BUFSIZE) / クライアント側:send(BUFSIZE)

#この時サーバー側でUnicodeDecodeError例外が発生する

あとどうすれば
>あれはinetd自体がやってたはず
>なのでinetdもしくはxinetdのソース
上記のような回答をできる人になれますか?
2022/07/28(木) 12:55:50.00ID:anuMbnBg
>>612
改行コードとかメッセージの最後まで読んでから処理するのが一般的だと思うけど
バッファサイズ単位で処理したいならバッファ内の最後の文字境界を自分で見つけて処理するしかない

境界判定のビルトインの関数はあるかどうかしらないけど
UTF8のエンコーディング仕様から簡単に作れるよ
2022/07/28(木) 13:02:24.91ID:6VdmJHz7
じゃあ簡単ならここで作って
2022/07/28(木) 13:04:30.10ID:4pySRXlJ
そもそもUTF8の文字列なのに何故適当なバイト数でデータを送るのかと・・・
そんな事する必要ある?
2022/07/28(木) 14:34:28.40ID:xT3NfTao
>>614
もしかして難しかった?
2022/07/28(木) 16:36:20.49ID:ktot2FQ5
>>612
>あとどうすれば

おじさんが学生の頃は 1) UINX系雑誌の記事 2) 情報科学の授業 3) 自分で inetd
を設定する 4) 各種フリーUnixの開発に参加 とかそういうので覚えた
2022/07/28(木) 18:08:38.84ID:XOOrQuM3
何番のポートをどのプログラムが使ってるのか調べられない状態を解決すべきやろ
619デフォルトの名無しさん
垢版 |
2022/07/28(木) 19:17:44.93ID:I6yUEl7R
何番のポートをどのプログラムが使ってるのかどうやって調べますか?
620デフォルトの名無しさん
垢版 |
2022/07/28(木) 20:06:49.78ID:Hv8PyQaz
UTF8は1byteずつ読んだときに上位bitでそれが
UTF8の1文字での何byte目か(少なくとも1byte目かそれ以外=コードの途中)が判るのと
その1文字を表すのに全体が何byte必要とするかも判るで
もし最後の1文字が途中で終わってるならそれを処理せずに先送りとして
その1文字(の途中のbyteまで全て)を次の読み込みのバッファの先頭に移動する
621デフォルトの名無しさん
垢版 |
2022/07/28(木) 20:11:33.62ID:Hv8PyQaz
>>619
netstat -a -n -t -b
netstat -a -n -t -b -p TCP
netstat -a -n -t -b -p UDP
(管理者権限が必要)
2022/07/28(木) 21:51:39.57ID:RtxUWi1z
>>620
最後の1文字は途中で終わってるかどうか判定せずに必ず次のイテレーションに回すと楽ちんだよ
2022/07/29(金) 08:15:17.32ID:cNymJqdP
おはようございます

色々アドバイスいただきありがとうございます
inetd関連のソース見ることができました
https://www.web-dev-qa-db-ja.com/ja/linux/inetd%E3%81%8A%E3%82%88%E3%81%B3echo%E3%82%B5%E3%83%BC%E3%83%93%E3%82%B9/960332980/
https://github.com/freebsd/freebsd-src/tree/main/usr.sbin/inetd

ちらりとみてみただけですが
https://github.com/freebsd/freebsd-src/blob/main/usr.sbin/inetd/builtins.c
にあるecho_stream関数を見るとBUFSIZEで8192がinetd.hに定義されており
バッファのサイズが問題とならないのかなと考えます

で、マルチバイト文字列のバッファサイズのまたぎ問題は、
このソースを見ても解決せず
皆さんの書き込みを元に自分で解決するしかないのでしょうか?
サーバー側でうまく処理してると勝手に思い込んでいました
2022/07/29(金) 10:42:45.13ID:+KqLS8gA
ものすごく適当なこと言うけどechoは内容を解釈しないから、単に読み込みのバッファなんじゃないか?
全部読んでから処理しなきゃならない謂れはないはず
625デフォルトの名無しさん
垢版 |
2022/07/29(金) 10:50:48.96ID:nIcw6oQb
>>622
最後の一文字かどうかはどうやって判定してんの
2022/07/29(金) 11:06:47.79ID:cNymJqdP
>>624
http://www.faqs.org/rfcs/rfc862.html
確かに、やってきたどんなデータでも単純に送り返すと書いてありました
2022/07/29(金) 11:12:07.00ID:pXf+MkzI
>>612
一般的にはそこには少なくとも二つのレイヤがある

一つは文字コードなどの意味解釈を行わずに純粋にバイト列として扱う(相対的に)下位レイヤ
もう一つは文字コードなどの意味解釈を行ないそれを扱う(相対的に)上位レイヤ

上位レイヤでは文字コードなど意味のある塊が揃った時点で揃った分を扱う
下位レイヤでは単なるバイト列として自由な区切りで意味を考えずに扱う

つまり下位レイヤを扱う関数ならばUTF8等の途中であろうがバイト列として扱うのみなのでエラーは起きない
一方で上位レイヤを扱う関数ならばUTF8等の途中を渡してはいけなくエラーとなる
2022/07/29(金) 11:18:11.34ID:Ft0zsWoe
>>623
バイト列をUTF8の文字列として解釈する側でハンドリングするわけで
echoサーバーにその機能は必要ないわな
2022/07/29(金) 11:24:44.18ID:6gtXfrq1
>>625
後ろから読んでUTF-8の1バイト目を見つける
そのバイト以降が最後の1文字
630デフォルトの名無しさん
垢版 |
2022/07/30(土) 09:04:08.72ID:WotJou7a
csvファイルからグラフを生成する、チェックボックスのONOFFで動的に動くものを作りたいと思っています。
javascriptなんか作りやすそうなイメージがあるのですが、javascriptよりもおすすめの言語があったら教えてほしいです。
Excelは持っていないのでそれ以外でお願いします。
631デフォルトの名無しさん
垢版 |
2022/07/30(土) 09:57:21.27ID:paa5jUiA
python + streamlit
2022/07/30(土) 10:01:26.70ID:DT45UaHm
>>627
二つのレイヤの指摘、ありがとうございます

サーバー側では、下位レイヤだけを実装
クライアント側で、下位レイヤから受け取ったバイト列を
上位レイヤで意味を解釈する方針(>>628 の指摘)で実装することにしました
2022/07/30(土) 13:47:23.91ID:YFPQRSdb
>>630
google sheets
2022/07/30(土) 15:11:27.72ID:8gKCOMRQ
「javascript チャート ライブラリ」で検索!
D3, Chart.js など

ファイルを読み込む、サーバー側はRuby on Rails, Node.js, Electron など?
サーバー無しで、ブラウザだけで読み込めるかな?
2022/07/30(土) 16:32:24.03ID:WWl3Q6b+
.NET系の言語なら何も入れずに表示できるけど
javascriptのが圧倒的に簡単そうに思う
636デフォルトの名無しさん
垢版 |
2022/07/30(土) 21:39:12.32ID:iw5u05vO
>>630
Python+Flask+matplotlib
最近そういうのをこれで作ったけど、JavaScriptのが楽かもしれない

https://matplotlib.org/stable/gallery/user_interfaces/web_application_server_sgskip.html

Webアプリでいいならだけど
2022/07/31(日) 02:32:21.12ID:EDJ4BvE5
>>629
本気で文字の境界を気にするならUTF-8の境界での処理では不十分
もっと深いUnicodeとのお付き合いが必要になる
638デフォルトの名無しさん
垢版 |
2022/07/31(日) 11:10:30.18ID:oFxEgVvh
企業独自の外字とかいうゴミ廃止して欲しい
639デフォルトの名無しさん
垢版 |
2022/07/31(日) 12:26:17.57ID:8xjafgfh
>>630です。
.NETとpythonはjavascriptよりも手間がかかりそうとのことなので
javascriptかgoogle sheetsのどちらかで作ろうと思います。
javascriptってhtmlやcss同様クライアントサイドで動くと思うのですが
グラフのフレームワークを使う場合は例外でサーバーサイドも意識しないといけないってことはないですよね?
公開することは考えておらず自分が見れればいいという感じです。
2022/07/31(日) 13:07:59.98ID:73140SZc
>>637
grapheme cluster境界でのみ分割したいなら
送信側で対処しないと非効率
2022/07/31(日) 15:11:27.41ID:3aGOnqYZ
>>639
VSCode の拡張機能・Open in Browser では、
右クリックメニューから、HTML ファイルをブラウザで表示できる

まあ普通に、HTMLファイルをダブルチェックしても、ブラウザで見れる
file:///C:/Users/Owner/Documents/test/a.htm

拡張機能・Live Server を使うと、サーバーを立ててくれる。
http://127.0.0.1:5500/test/a.htm

CORS 対策としては、サーバーを立てた方が無難。
file:///〜 はローカルファイル・アクセスとなり、
何かのリソースがアクセス不能になる場合もあるから
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況