SQLの窓 イラストAC フリー素材

2022年01月17日

イラストAC : 『宇宙』のフリーダウンロード ( DAZ3D・DAZStudio )






posted by at 2022-01-17 18:35 | イラストAC ダウンロードリスト | このブログの読者になる | 更新情報をチェックする

2022年01月11日

イラストAC :『SF 宇宙船内通路』のフリーダウンロード ( DAZ3D・DAZStudio )


posted by at 2022-01-11 13:12 | イラストAC ダウンロードリスト | このブログの読者になる | 更新情報をチェックする

2022年01月10日

イラストAC :『廃墟の街』のフリーダウンロード ( DAZ3D・DAZStudio )


posted by at 2022-01-10 19:28 | イラストAC ダウンロードリスト | このブログの読者になる | 更新情報をチェックする

2022年01月01日

イラストAC :『魔法国の街角 ( スチームパンク )』のフリーダウンロード ( DAZ3D・DAZStudio )






posted by at 2022-01-01 12:50 | イラストAC ダウンロードリスト | このブログの読者になる | 更新情報をチェックする

2021年12月29日

MySQL : 相関サブクエリ・非相関サブクエリ( IN 句 ) : 15

相関サブクエリは、外部クエリの値を使用するサブクエリです。
 

社員マスタ(左) の社員コードと得意先マスタ(右) の担当者が一致します。

社員が担当する得意先の件数を表示する SQL を記述してください。


社員マスタ(左) に 管理者名 VARCHAR(50)を追加したとして、UPDATE 構文で相関サブクエリを使用して管理者名列の全ての名前をセットしてください


取引データの取引先コードと金額を使用して売り上げが400万を超える担当者の社員情報の一覧を取得するSQLを記述してください( 二階層の IN を使用した非相関サブクエリ )



posted by at 2021-12-29 19:57 | プログラマ用 | このブログの読者になる | 更新情報をチェックする

2021年12月28日

MySQL : 結合によるデータ作成と調整 : 14

テスト時に何らかのテストデータを作成したい時には、結合を使用します。仕様的には、結合するテーブルの条件で両方共データが存在する場合の行の一覧を取得しますが、プログラミング的には特殊な目的に利用する事になります。

この結合は、条件を指定しなければ、いわゆるとなるので、50件の社員マスタを自己結合させれば、2500件のデータを作成する事ができます。以下に社員マスタ(50件)を自己結合させて、2500件の 片方の社員マスタの列を表示する SQL を記述してください。


しかし、このままでは主キーが無い(本来の社員コードは重複してしまう)ので、CREATE TABLE ... SELECT 構文を使用して社員マスタと同じ列定義を持った社員テーブルを作成する SQL を記述してください


このテーブルに自動採番列( SERIAL )の ROWKEY という列を先頭に追加するSQL を記述してください


この際、自動的に ROWKEY というユニークなインデックスが作成されてしまいますが、主キーを作成する為にこのインデックスを削除する必要があります。その際、ROWKEY 列が NOT NULL である必要があるので、NOT NULL 制約を付加する SQL を記述してください


ROWKEY インデックスを削除する SQL を記述してください


最後に、ROWKEY に主キーを付加する SQL を記述してください




posted by at 2021-12-28 19:58 | プログラマ用 | このブログの読者になる | 更新情報をチェックする

MySQL : 外部からのアクセス・結合( JOIN ) : 15

MySQL では設定しなれければ、接続できるホストはのみです。ユーザもしかありません。外部からの接続を可能にするには、MySQLから見たホスト名とユーザ名を組み合わせてアカウント管理ステートメントである GRANT 構文で実行します。以下に PC-00 に対して既存の前述のユーザでパスワードを mypass として すべての権限を付与するSQL を記述してください( 他のユーザに権限を与えれるように記述してください )( +5 )


上記定義を削除する SQL を以下に記述してください
( +1 )

二つ以上の表を結合する場合、プログラミングでは通常を指定して最初のテーブルデータを全て選択するようにします。この場合、二つ目のテーブルに最初のテーブルに該当するデータが無い場合、二つ目のテーブルに該当する列の内容はとなります。

結合の際の条件は句の後に記述され、最終的に結合後の行を絞るには句を使用し、ソートする為の句は、最後に記述します。

社員マスタでは、【管理者】という列があり、これは同じ社員マスタのデータとなります。つまり、管理者名を表示するには、社員マスタと社員マスタを結合する必要があります。このような結合を自己結合と言います。

この結合の記述のポイントは、二つの社員マスタに別名を与える事です。以下に管理者名を取得可能な自己結合の SQL を記述してください( +2 )





posted by at 2021-12-28 10:30 | プログラマ用 | このブログの読者になる | 更新情報をチェックする

2021年12月27日

MySQL : エクスポート・インポート : 16 ( 5x2 1x2 2x2 )

データ操作ステートメントで重要なSQLは、SELECTUPDATE INSERT です。これらで殆どのアプリケーションに必要な処理を実現できます。ただ、その中でもデータベースの中だけで完結しない SQL を知っておく事は開発や運用で重要になります。

MySQL では、SELECT を使用してテキストファイルにデータをエクスポートする事ができます。社員マスタの全ての列を C:/app/workspace/syain.932 へ出力する SQL を記述してください。

※ キャラクタセットは cp932
※ 列データの区切り文字は ,(カンマ)
※ 改行コードは \r\n
※ OPTIONALLY ENCLOSED BY '"' を使用する事

データをエクスポートするという事は、インポートを知っている必要があります。MySQL では上記処理で出力されたデータを LOAD DATA INFILE という SQL で実現します。(この SQL もデータ操作ステートメントです)
以下に、インポートする SQL を記述してください


社員マスタには、主キーが存在します。ですから、インポートする前にはデータを全て削除しておく必要がありますが、この場合はデータ操作ステートメントの構文では無く、データ定義ステートメントの構文を使用してください。前者はあくまで、アプリケーション内での削除に使われるもので、運用には後者を使用します。

バックアップ目的のエクスポートは、コマンドで行います。以下にコマンドプロンプトで行うエクスポートを記述してください。

※ localhost の lightbox データベース
※ ユーザは root で、パスワードは空文字
※ 出力ファイルは backup.sql

この内容は SQL となっていますので、インポートはSQL の実行を行うコマンドです。以下にその内容を記述してください






posted by at 2021-12-27 16:23 | プログラマ用 | このブログの読者になる | 更新情報をチェックする

2021年12月26日

SQL MySQL ベーシック : 15

データベースにはいろいろな種類があり、それぞれを管理するシステムと言う意味で一般的な通称としてと呼びます。その中で MySQL はSQLにおいて自由度の高いものとなるので、Oracel でできなかった事ができたりするので、MySQL で出来た事を【常識】と考えない事が必要です。

SQLには一般的に、データを操作するとデータを定義するに分かれますが、MySQL では、データベースを管理する SQL があります。その中でも SHOW 構文がプログロマにとっては有用なのでいくつか暗記しておく必要があります。

 : テーブル一覧
 : データベース一覧
 : 社員マスタのテーブル定義( CREATE 文 を表示 )
 : 社員マスタのテーブル情報
 : システム変数の値

また、MySQL には information_schema というデータベースが最初から存在し、MySQL のいろいろな情報を読み出す事ができます。特にの定義と列の情報は有用で、列の情報が格納されているのはというオプジォクトです。

データを定義する SQL は本来管理者が使用するものですが、最低限プログラマも知る必要があります
 : lightbox データベースを作成
 : 社員マスタに削除フラグを varchar(1)で追加
 : 社員マスタから削除フラグを削除
 : 社員マスタの性別のデータ型をvarchar(1)に変更
FieldTypeNullKeyDefaultExtra
社員コードvarchar(4)NOPRI
氏名varchar(50)YES
性別intYES
生年月日datetimeYES
上記定義で 社員というテーブルを定義するSQL を記述してください





posted by at 2021-12-26 10:15 | プログラマ用 | このブログの読者になる | 更新情報をチェックする

2021年12月25日

Google : 14

Google の検索では、二つの検索方法を知っておく必要があります。一つは【完全一致】で、これをしないと語句の切れ目で切って AND 検索が実行されます。そこで指定した語句に完全一致した語句が含まれるページを知りたい場合【世界一高い建築物】の場合どのりように記述すれば良いでしょうか。


さらに特定のサイトの中でけで検索したい場合( 検索文字列は SQL で サイトは https://winofsql.jp の場合どういう記述で検索すれば良いでしょうか


Google Chrome で作業をする場合のショートカットで重要な以下のキーを記述してください
 : シークレットウインドウを開く
 : 拡大
 : 100% に戻す
 : ブックマークバーの表示・非表示の切り替え
 : 現在表示しているページのソースを表示
 : キャッシュ削除のダイアログ表示

現在 Chrome には、右クリックでそのページを日本語に翻訳する事ができますが、そのページのリンクから移動するとキャンセルされます。連続して翻訳するにはを有効にする必要がありますが、設定の詳細のから設定を行ってください

Chrome でデベロッパーツールを表示するには、F12 キーを使用しますが、表示した後に使える重要な機能に、キャッシュを完全に消去するがありますが、のアイコンを右クリックすると表示されます。

また、JavaScript を無効にする方法は、歯車アイコンで設定を開いて欄にある【JavaScriptを無効にする】をチェックします。

要素タブでは、ドラッグで要素の位置を変更したり、DEL キーで選択した要素を削除可能です。さらに直接要素記述を編集するには。キーで編集可能状態になります。


posted by at 2021-12-25 17:54 | ブログツール | このブログの読者になる | 更新情報をチェックする

Excel : 16

Excel の操作は非常に多岐に渡ります。作成するドキュメントを自由自在に操れるように最低限のショートカットを知っておく必要があります。

でワークシート追加します。その後、で直前の処理を繰り返してたくさんワークシートを作成してください。画面上には最後のワークシートが表示されなくなるので、左下の右向き三角をを押しながらクリックすると最後のワークシートまで移動します。逆にその状態で左下の左向き三角に同様の処理を行うと先頭のワークシートに移動できます。

書式を作成する為に列幅を全て1にする為にで全ての列と行を選択します。そして、適当な列タイトルを右クリックして列の幅に1を入力します。その状態で右下のアイコンをクリックして標準に戻ると、現在の1ページの輪郭にが表示されます。

その範囲の一番右下に何でもいいので文字列( X にします )を入力し、名前ボックスにと入力するかキーで最初のセルに移動します。そしてキーで1ページぶんが選択されるので、キーで輪郭に罫線を引きます。最後にでデータを削除し、印刷プレピューを起動して罫線を確認して右下ので余白罫線も表示させてレイアウトを調整します。

ワークシートは、CTRL + SHIFT + で最初に選択(シート名で)したワークシートから右へ選択されていきます。(または SHIFT キーを押しながらマウスで最後のシートのシート名をクリック)ので、上記の一連の処理を選択状態で行うと、全てのワークシートに反映されます。最初のシートのレイアウトをコピーしたい場合は、で全ての列と行を選択してからコピーし、ワークシートを複数選択(シート名で)した状態で貼り付けます。

選択状態の解除は、非選択のワークシートのシート名をクリックするか、任意の選択中のシートのうちの一つをシート名で選択してからキーを押しながらそのワークシートのシート名をクリックします。

posted by at 2021-12-25 13:50 | プログラマ用 | このブログの読者になる | 更新情報をチェックする

2021年12月24日

Windows のアプリケーション : 15

Windows には GUI を持ったアプリケーションとバッチ処理用のアプリケーションがあります。以下の説明に該当する有益なアプリケーションのファイル名を記述してください。

【GUI】
 : 電卓
 : スクリーンキーボード
 : レジストリエディタ
 : ディスク イメージ書き込みツール
 : Windows のバージョン情報

【バッチ】
 : コマンド ライン ツールの出力を Windows クリップボードにリダイレクトします
 : ファイル (複数可) 内のテキスト文字列を検索します
 : ファイル内のテキストのパターン(正規表現を使用)を検索します
 : 現在のホストの名前を出力します
 : 確実なファイルコピー( xcopy ではありません )
 : コマンド処理の一時停止

Windows では、ms-settings:設定名 で各種設定ウインドウが開きます。以下の説明に適した設定名を記述してください

 : スピーカ・マイクの音量等
 : 解像度・マルチディスプレイ等
 : コンピュータ名・メモリ量・Windows バージョン等
privacy- : アクティビティの履歴をオン・オフ





posted by at 2021-12-24 17:39 | プログラマ用 | このブログの読者になる | 更新情報をチェックする

2021年12月23日

リモートアクセス( 遠隔操作 ) : 16

リモートアクセスは、いろいろな場面でとても有用な手段となっています。特に昨今の在宅勤務でも威力を発揮しています。但し大きく分けて二種類のレベルがあり、一つはを介して世界のどこであってもアクセスが可能なものと、内でのみ利用可能なものです。

前者を A、後者を B とした場合それぞれ二つづつのソフトウェアの名称を記述してください
A1 : 
A2 : 
B1 : 
B2 : 

A1の力を借りるもので、アカウントと PC を紐づけて自宅より会社のPC にアクセスが可能となります。
A2 は本来は別の目的で使用されますが、相手が時にこちらから遠隔操作を可能にするものです。

B1 はWindows の標準機能で、相手側の PC でアクセスを許可する必要があり、相手側の PC はになります。
B2は、片方のPC にソフトをインストールしてソフトからアクセスします。B1 とは違い、相手側の PC も利用可能なので、自分のPC をにしてプロジェクタに接続しているPC をにする事によってリモート操作の重さを感じずに任意の PC でプレゼンが可能です。

A1 では、接続時にも共有するようになっているので、二つの PC を一つのデスクトップ内で切り替えて使うような事になります。また、大きなファイルはという単純な操作で相互にやりとりが可能です。


posted by at 2021-12-23 16:10 | プログラマ用 | このブログの読者になる | 更新情報をチェックする

2021年12月22日

Windows 基本操作 : 13

Windows から様々なアプリケーションを実行し、業務や開発を効率化する為に Windows のデスクトップからの操作と重要なアプリケーションの核となるポイントを把握しておく必要があります。

Windows にユーザでログインして最初に表示される情報は大きく分けて3種類あります。
A : 
B : 
C : 

A は特殊フォルダです。とファイル名を指定して実行やエクスプローラのアドレスバーに入力する事でそこにあるファイルの一覧を表示する事ができます。この一覧に表示されるのは、B です。Cにはさらに様々な情報が表示されていますが、日本語入力に関するの扱いは重要です。

A は、フォルダという側面とという側面を持ちます。なので、必要なデバイスを整備するとという拡張が可能になり、他のデバイスに A の中にある情報を表示する事が可能になります。これは、特殊なアプリを使う事によって、他のデバイスはスマホやタブレットでも可能です。その際に利用するデバイスは無線LAN子機で可能で、という機能で有線LANのPCにスマホ等からWiFiで接続可能になった状態で可能になります。



さらに、で起動された拡大鏡によって、A は画像データ+αとしてシステムに管理されるようになり、拡大鏡の機能によって、システム経由で取得可能な文字が機械音声に変換されます。また、Zoom では画面共有時には Zoom のコントロールが相手側に表示されませんが、拡大鏡を起動すると表示されるようになります。

B はファイル・フォルダそのものか、ユーザがアプリケーションを起動する為のショートカットが殆どとなりますが、システムが管理するものもあり、表示・非表示をでチェックボックスで指定します。このダイアログは【個人用設定】>【テーマ】の右サイドにある関連設定からリンクされています。

C の一番右端をクリックすると即座にを表示する事ができます。その後、でシャットダウン等を選択可能なダイアログを表示する事ができます。


posted by at 2021-12-22 14:34 | プログラマ用 | このブログの読者になる | 更新情報をチェックする

タスクマネージャ : 16

タスクマネージャは、Windows をリアルタイムで管理する重要なツールですが、それ以外にもいくつかの利用パターンがあるので覚えておく必要があります。

実行は、タスクバーを右クリックしてメニューから実行するのが直感的ですが、スタートメニューの右クリックメニューにもありますし、ショートカットキーはで、アプリケーションとして実行する場合は.exe です。



通常の運用では【詳細】表示でプロセスが開きますが、デスクトップで明示的に実行したアプリーションを強制終了したい場合は【簡易表示】に切り替えて選択して右下の【タスクの終了】をクリックします。しかし、表面から解らない任意のアプリを強制終了するには、タブかタブを使用します。特に後者では全ての実行単位が表示されるので、その実行ファイルのを知るのに役立ちます。また、この画面では列にを追加する事によって、64ビットアプリなのか32ビットアプリなのかを確実に知る事ができます。

もう一つリアルタイムな情報としてはタブでPCのレスポンスにかかわるを知る事ができるので、作業効率を考えてチェックする必要もあります。

それ以外の利用方法としてはタブで StartUp フォルダレジストリに登録されている自動実行アプリを無効にする事ができます。また、タブの下部に管理ツールを起動するリンクがあります。そして、タブからエントリを右クリックして表示されるメニューからコントロールバネルの該当ページが開き、そのページ左側最後のリンクから設定ダイアログを開く事ができます(システム用はここからは変更できません)

それ以外の特殊な利用方法としてメニューから選択してするウインドウにできるので、デスクトップでの動画作成時に隠したい情報の上に重ねる事ができます。(メニューから一時停止にできるのでリアルタイム表示が止まっている場合があるので注意してください)

最後に非常にレアな使い方ですが、ファイルメニューからがあるので、を再起動するのに使用する事ができます。
posted by at 2021-12-22 11:47 | プログラマ用 | このブログの読者になる | 更新情報をチェックする

管理ツール・コントロールパネル : 13

Windows を管理する GUI で最も代表的なのはです。起動方法は、WIN + で表示されるメニューか、PC アイコンを右クリックで表示されるポップアップメニューからが一般的です。

 ( ローカルユーザとグループは Windows の Home エディションでは表示されません )
赤線で囲われたアプリケーションの主な役割を記述してください
1) 
2) 
3) 
4) 
5) 
さらに、もう一つの Windows を管理する上でとても重要なアプリケーションが.exe です。このアプリケーションを実行する事で表示されるウインドウはと呼ばれていますが、コマンドの引数としてを指定し、その後に【正規名】(https://docs.microsoft.com/en-us/windows/win32/shell/controlpanel-canonical-names) を指定する事でいろいろな管理アプリケーションウインドウを開く事ができます。

例えばファイアーウォールを開く為の【正規名】は、です


※ 実際のファイアーウォールの設定は、左サイドのをクリックします

全てのツールをエクスプローラ上で見渡すには、【正規名】であるを使用します。

posted by at 2021-12-22 09:25 | プログラマ用 | このブログの読者になる | 更新情報をチェックする

2021年12月21日

管理者権限・ネットワーク : 15

Windows を管理する上では想像以上にの知識が必要になります。その場合【管理者権限】でウインドウを開いて処理する事が必要な場面があります。

最も身近な処理で言うと、サービスの開始と停止には【管理者権限】が必要です。SQLServer のサービス名を【MSSQL$SQLEXPRESS】とした時の開始と停止のコマンドを記述してください
1) 開始 
2) 停止 

Windows の管理は GUI を使用すれば管理者権限を必要としない場合もありますが、将来何が起きても対応できるようにアプリ( .exe 全て )を管理者権限で起動する方法を4つ記述してください。
1) 
2) 
3) 
4) 

ここでの解答となるサービスの開始と停止のコマンドは、あるコマンド( 以後 Aコマンドと言います )のサブコマンドで実行されますが、このAコマンドではサービスの処理が終わってから制御がこちらに戻ってきます。しかし、もう一つサービスの処理に特化してコマンドがあり、処理をシステムに登録すると制御がすぐ戻るようになっています。このコマンド名を記述してください
コマンド

また、この Aコマンドには他にいくつも Windows を管する為のコマンドが用意されています。
実際良く使われるコマンドを記述してください。
1)  : 自分の PC のユーザ定義の共有名を表示する
2)  : 自分の PC の空いているドライブに共有名を割り当ててドライブとして使用
3)  : 自分の PC のシステムとユーザの共有名と実際のフォルダのパスを表示

この Aコマンドは、他のPCのセキュリティ情報を知っておれば、そのPCの情報を知ったり制御する事が可能です。

自分の PC と他の PC の情報はで確認しましょう。PC名・IPアドレス・ゲートウェイ・DHCP・DNS 等の情報を確認できます。ユーザ名とパスワードを複数の PC で同一にしておけば、ネットワークを使った運用が比較的容易になるでしょう。

 

実際のルータ(DHCP等)に対するネットワーク内の PC の設定は、タスクバーのネットワークアイコンからを選択してネットワークの詳細設定タイトルの下のをクリックしてネットワークデバイス毎に設定します。通常とあるデバイスを右クリックからプロパティを開き、TCP/IP の設定をプロパティで開きます。
posted by at 2021-12-21 12:21 | プログラマ用 | このブログの読者になる | 更新情報をチェックする

2021年12月20日

キーボード操作・エクスプローラ : 16

Windows のデスクトップ上の操作には Windowsロゴキーによるショートカットを活用してください。特に複数のPCをメンテナンスする場合はマウスを握って操作するよりによる操作のほうが格段に効率がいいです。特に、Windows の設定に関する操作では、WIN + で設定ウインドウを開き、キーでメニュー項目に移動してキーで目的のメニューまで移動してエンターキーで決定します。( 既に設定ウインドウが開いてしまってる場合は一旦 ALT + キーで閉じるといいでしょう )

Windows ロゴキーとの組み合わせの中には少し変わったものもありますが、覚えておくといつか役に立ちます
1)  : クリップボードの履歴ウインドウを開く
2)  : 編集中に絵文字ウインドウを開く
3)  : デスクトップを画像化してピクチャ内のスクリーンショットフォルダに保存

Windows を設定したり管理する個別のアプリケーションは沢山ありますが、まず最初に設定するべきはエクスプローラです。この設定を行わないと見えて当然の情報が見えなくなったり見落とす可能性が出てきます。



このオプション設定で重要な二つの設定があります。その設定によって何が見えるようになるかを記述してください。
1)  
2)  

エクスプローラは、Windows でファイルやフォルダを操作するものです。アドレスバーにフォルダのフルパスを入力するとそのフォルダが開きます。ですが、いくつか特殊な入力方法があるので知っておきましょう。

1)  : テンポラリフォルダを開く
2)  : SentToフォルダを開く
3)  : StartUpフォルダを開く

これ以外にも、アプリケーション名( .exe ) を入力するとそのフォルダをカレントにして実行されるのは重要で、特に開発者として重要なコマンドプロンプトを開く時に重宝します。

さらにもう一つ、ネットワークパスを入力して自分のPCの共有を簡単に表示する事ができます。その際、本来は作業しているPC名を使うのですがと入力する事で表示する事ができます。

作業中のPC名を確認する方法は、Win + システムの詳細情報が表示されるのでその他の情報も含めて確認できますが、コマンドプロンプトが開いておればと入力すると COMPUTERNAME という環境変数の値として表示されます。


posted by at 2021-12-20 14:43 | プログラマ用 | このブログの読者になる | 更新情報をチェックする

2021年07月29日

HTA : JScript : Excel.Application でファイルを開くダイアログを使用する

通常だと、ダイアログが IE11 の後ろに隠れてしまうので、ダイアログを表示させる間、Excel 本体を表示させています(本体にアクセスはできません)。

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="x-ua-compatible" content="ie=edge">
<meta charset="utf-8">

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/5.0.1/css/bootstrap.min.css">

<script>
var excel = null;

$(function(){

    // Excel でファイルを開くダイアログ	
    $("#open_file_dialog").on("click", function(){
    
        // Excel をロード
        excel = new ActiveXObject("Excel.Application");

        // 表示
        excel.Visible = true;

        // 最小化して元のサイズと位置 : GetSaveAsFilename を前面に出す為
        // WScript.Shell の Run と同じ 2 と 1 が使える
        excel.WindowState = 2	// 最小化
        excel.WindowState = 1	// 元のサイズと位置

        excel.DisplayAlerts = false;

        // 一つのファイルを開く
        // https://docs.microsoft.com/ja-jp/office/vba/api/excel.application.getopenfilename
        var filePath = excel.GetOpenFilename("全て,*.*,CSV,*.csv", 1,"ファイルの選択",null, false );
        // 非表示
        excel.Visible = false;

        // 未選択の場合
        if( filePath === false ) {
            alert("ファイルの参照選択がキャンセルされました")
        }
        // 選択の場合
        else {
            alert(filePath + " を選択しました");
        }

        // Excel を終了
        excel.Quit();
        excel = null;
        // Excel 解放
        var idTmr = window.setTimeout("Cleanup();",1);

    });

});
// ******************************
// Excel 解放
// ******************************
function Cleanup() {
    CollectGarbage();
}

</script>
</head>
<body>

    <div id="head" class="m-5">
        <input type="button" id="open_file_dialog" value="ファイルを開く">
    </div>

</body>
</html>



GitHub


posted by at 2021-07-29 15:48 | IE | このブログの読者になる | 更新情報をチェックする

2021年07月05日

2021年 前期Windows試験問題( 5 ) : 16

エクスプローラは、Windows でいろいろな処理を行う為の基本となるアプリケーションです。一般とは違うプログラマとしての設定を行うには、タブの右端にあるアイコンをクリックします。そして表示されるダイアログのタブでいろいろな設定を行いますが、重要なのは以下の4つです。

1) 『開いているフォルダまで展開』にチェック
2) 『タイトルバーにを表示する』にチェック
3) 『ファイルを表示する』にチェック
4) 『登録されているは表示しない』のチェックを外す

エクスプローラのアドレスバーでは、いくつか特殊な入力で特定のフォルダを開く事ができます。

1)  => 環境変数の TEMP を使用したコマンドプロンプト用の記述でテンポラリフォルダが開く
2)  => ファイルを選択して右クリックで表示される『送る』フォルダが開く
3) shell: => ユーザ用のスタートアップフォルダが開く

エクスプローラでファイルのフルパス文字列をクリップボードにコピーするには、キーを押しながら右クリックすると『パスのコピー』と言うメニューが追加されます。フォルダを同様にして右クリックすると『ウインドウをここで開く』というメニューが追加されるので、実行後コマンドプロンプトの実行アプリを入力するとそのフォルダでコマンドプロンプト処理が可能になります。

ファイル情報の幅を自動調整するには、一覧部分にフォーカスを置いて CTRLキー + キーを押します。

表示タブのプレビューウインドウを使うと、一般的なファイルや Excel の内容や画像を表示することができます。

画像の幅と高さを確認するには、エクスプローラから右クリックしてを選択して、タブを開きます。そこにイメージという場所があるので確認してください。画像の大きさは、Google Chrome の場合、タブにドラッグ&ドロップして表示させて、タブの部分にカーソルを置く事で、メッセージがポップアップされるのでその内容で確認できます。


posted by at 2021-07-05 08:40 | プログラマ用 | このブログの読者になる | 更新情報をチェックする

2021年 前期Windows試験問題( 4 ) : 15

コマンドプロンプトの起動方法はいろいろありますが、実行プログラム.exe です。

( 以下 .exe は省略可 )
1) して実行から上記プログラムを入力
2) エクスプローラので同様に入力
3) タスクマネージャのファイルメニューからを選択して表示されるダイアログに同様に入力

デスクトップ上にコマンドプロンプトが実行中の場合は、キーを押しながらタスクバーのコマンドプロンプトのアイコンをクリックするとさらにコマンドプロンプトが実行されます。

また、同様にキーとキーを押しながらタスクバーのコマンドプロンプトのアイコンをクリックすると権限でコマンドプロンプトが実行されます。この特別な権限のコマンドプロンプトでは、サービスのようなシステムにかかわる処理を行う時に必要となります。

この特別な権限のコマンドプロンプトは、3) で表示されるダイアログからも実行可能です。

タスクマネージャーには 7 つのタブがあります。



そのうちのスタートアップタブではシステムで自動的に実行するアプリケーションにする事ができます。また、詳細タブでは実行中のアプリケーションの一覧の情報として、というタイトルを表示させる事によって、アプリケーションが 64ビット32ビットか確認する事ができます。

タスクマネージャの実行プログラムは.exe です。この他にも Windows で標準的なアプリケーションの実行プログラム名は以下のようになります。

1) ペイント => .exe
2) メモ帳 => .exe
3) 電卓 => .exe

特にペイントは、デスクトップ上のアプリのキャプチャを行った後貼り付けて画像化するのに使用できます。貼り付けた後はをクリックすると、キャプチャした範囲の大きさの画像になります。



posted by at 2021-07-05 08:08 | プログラマ用 | このブログの読者になる | 更新情報をチェックする

2021年07月01日

2021年 前期Windows試験問題( 3 ) : 18

Windows10 を開発者として利用する上で、知っておくべき事はたくさんあります。まず、Windows10 の設定ウインドウタスクバーの左端をクリックした後表示されるメニューの左下部分の歯車アイコンから表示する方法と、同じ場所を右クリックして表示されるメニューのを選択する方法と、Windowsキーキーを押す事ですぐに表示可能です。

Windowsキーを使用したショートカットは、他にも代表的なものがあります。
1) Windowsキー +  👉 エクスプローラ
2) Windowsキー +  👉 ファイル名を指定して実行
3) Windowsキー +  +  👉 トリミングキャプチャ

その他にも一般的なデスクトップ上のショートカットは以下のようになります
1) CTRL +  + 👉 タスクマネージャ
2) ALT +  👉 アクティブウインドウのキャプチャ
3) Windowsキー + D でデスクトップを表示して +  👉 シャットダウンダイアログ



Windows10 の左下を右クリックして表示するメニューには、デフォルトでは PowerShell の起動になっているので、コマンドプロンプトに変更しておくといいでしょう。



その為にはを右クリックしてを選択して PowerShell のスイッチをオフにします。



コマンドプロンプトから実行する処理は、とても幅広く無視できないコマンドがたくさんあります。特に、ネットワークの情報をすぐに見れる/all は覚えておきましょう。

コマンドプロンプトは、キーで実行したコマンドの履歴を表示して再度実行したいコマンドを選択できます。キーで全画面表示( ALT + ENTER でも可 )  になり、画面上の文字列をクリップポードにコピーするにはドラッグして選択してからします。貼り付けもです。



posted by at 2021-07-01 15:51 | プログラマ用 | このブログの読者になる | 更新情報をチェックする

2021年 前期Windows試験問題( 2 ) : 13

開発用ウインドウの一番左上には、WEBページの特定部分を検査する為のアイコンがあり、クリックすると色が変わって、その状態でページ上でマウスカーソルを動かすと、対応する HTML が選択されます。これによって、他人が作成した HTML でも、それらの属性を容易に確認可能なので、WEBアプリでは要素内のコントロールに対して使う事がアプリの検証に繋がります。

さらに HTML 記述はリアルタイムに変更可能で、一般的には変更したい部分をすると編集可能になります。また、部分では無く HTML 構造全体を編集したい場合は、選択状態でキーを使うと全てが編集可能になり、容易に HTML を追加する事もできます。( この時、編集を終了したい場合は、他の 編集していない HTML をクリックしてフォーカスを外すと編集終了になります。

HTML の移動は簡単でマウスでします。削除も簡単で、選択してキーで削除されます。

また、Console タブ以外で可能なショートカットとしてキーでウインドウ下部にコンソールが表示されます( もう一度同じキーで閉じます )

コンソールタブは、JavaScript関連のテストや検証に使用されます。コンソールのコマンドラインでは、一般的なコマンドプロンプトのように様々なコマンドを実行可能で、特に一般の WEB ページの JavaScript 部分に記述されたというコマンドで変数や文字列の内容を表示させ、というコマンドでコレクションの内容を表示させてデバッグに利用する事になります。

コマンドラインは、通常は1行の記述ですが、キーを押しながら改行すると複数行を入力する事が可能です。

また、ページ上の JavaScript のエラーメッセージを確認しながら、その該当場所の行番号をクリックしてエラーの箇所を確認する事も可能です。その場合はタブに自動的に移動してエラー位置が表示されます



このタブは、いわゆるポイントを設定して一行づづの JavaScript のデバッグを行う事ができます。

サーバ側とのやり取りを確認するのはタブです。このタブでは、画面の FORM や から送信された値だけでは無く、様々なインターネットをベースにした情報の確認が行えます。

このツールでは、におけるページの表示もエミュレート可能で、開発用のウインドウの一番上部の左から二番目のアイコンで表示を切り替える事ができます。



posted by at 2021-07-01 14:33 | プログラマ用 | このブログの読者になる | 更新情報をチェックする

2021年 前期Windows試験問題( 1 ) : 16

Google Chrome は、WEBアプリ開発で必要不可欠なツールなので、一般設定等にも精通しておく必要があります。まず、Chrome には通常の白いウインドウと、黒いウインドウが存在します。このウインドウでは、が記録されないので注意してください。また、白いウインドウと黒いウインドウでは別々のユーザでできるので、Google アカウントの運用にも効力を発揮します。

さらに、黒いウインドウではブラウザを閉じると自動的に Google からされるので、共有PC での運用時には必須でもあります。白いウインドウでも、ブラウザを閉じた時に他のサービスも含めて同様な処理を行うには設定が必要です。

1)  設定ページ( chrome://settings/ )プライバシーをクリック
2) 他のサイトデータをクリック
3) 以下のようにして追加します


また、WEBアプリケーション初心者とってブラウザ保持するは、変更した HTMLやCSS が反映されない原因となります。Chrome における一般的な対処は、CTRL++で表示されたダイアログで行います。



また、開発者が行うこの処理はキーまたはページを右クリックして表示されるメニューよりを選択してツールを表示させてから行います。( ブラウザのアイコンを右クリックして一番下のメニューを選択します )

Chrome で開発用ウインドウを開くと、先頭のタブがとあります。これは日本語での複数形を意味します。内容はその名の通り画面を構成する HTML をブラウザが正しく解釈した結果として整然とした構造で表示されています。さらに、HTML部分の任意の部分をクリックして選択すると、そこに設定されている全ての記述を参照し、リアルタイムに変更する事ができます。



posted by at 2021-07-01 12:19 | プログラマ用 | このブログの読者になる | 更新情報をチェックする

2021年 前期試験問題( 10 ) : 13

php でデータベースに対して処理する場合、PDOと言うクラスを使用します。このクラスを使用する事によって、MySQL のみでは無く他のを利用する場合にコードの移行が容易になります。

利用するには、クラスである為、new キーワードを使用してを実行してインスタンスを生成して変数にセットして使用します。
try {
    $pdo = new PDO( $GLOBALS["connect_string"], $GLOBALS["user"], $GLOBALS["password"] );
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
catch (PDOException $e) {
    print "エラー : {$e->getMessage()}";
    exit();
}
PDO の標準的な利用方法は、まず用意した SQL 文字列をメソッドに渡して実行の準備をします。この際、SQL 文字列の中に名前付きパラメータを用いて、SQLの内容を変数によって置換する準備をしておきます。
SELECT * FROM 社員マスタ WHERE 社員コード = :scode
その後、メソッドを使用してSQL 文を完成させ、メソッドで SQL文を実行します。SQL 文が SELECT によりデータの読み出しの場合は、さらにメソッドによって列名による連想配列を行単位で取得して使用し、SQL が更新の場合は、SQL を実行する事によって更新が完了します。

SQL が更新の場合、PHP の変数から名前付きパラメータで設定する場合、データベースの列定義に対して一般的に型か型かで変換方法を決めます。但し、その二つの型以外にデータベースではという値をセットする時に注意が必要です。

SELECT を使用する SQL 文でデータを読み出す際、型の列には注意が必要です。MySQL が標準で返すフォーマットでは、画面表示やコントロールがうまく行かない場合があります。

この場合、たいていにおいて * を使わずに全ての列名を記述し、対象の列に対してはフォーマットを設定するを使用します。そして、SQL の 句で別名を設定し、PHP 側で利用する為の正しい列名を付け直します。

データベースから画面上のコンボボックスを作る場合も注意して下さい。コンボボックスは何もしなければ一覧の先頭が選択されて表示されます。画面表示時に正しくコンボボックスの内容を選択する為には、コンボボックスの一覧を読み込むループ時に、HTML の属性を設置して正しく選択できるようにしてください。



posted by at 2021-07-01 11:24 | プログラマ用 | このブログの読者になる | 更新情報をチェックする

2021年06月27日

2021年 前期試験問題( 9 ) : 13

ブラウザで表示されるWEBアプリケーションの画面は、通常タブ単位で表示されています。その際一つのウインドウから他のウインドウを開いて、相互に JavaScript でアクセスする事が可能です。

この場合、window オブジェクトメソッドを使用します。

このメソッドの戻り値は開いた新しいウインドウオブジェクトが取得され、新しく開いたウインドウから元のウインドウの window オブジェクトを参照するには、オブジェクトを使用して参照します。
<script>
var wnd;
function win_open_01(){
	wnd = window.????( "about:blank" );
}
</script>
<input id="btn" name="btn" type="button" value="実行" onclick="win_open_01()">
開かれたウインドウを閉じるには、開かれたウインドウ側で window オブジェクトメソッドを使用して行います。

また、現在のウインドウ内の中に要素を設置して、必要な時に参照ウインドウを開く事ができます。この場合初期設定として参照ウインドウ用の要素のスタイルに : を設定して非表示にしておきます。そして必要な時にそのスタイルのプロパティを設定して表示させます。



また参照ウインドウを閉じる場合は、参照ウインドウ内の処理で元のウインドウをオブジェクトで参照して、スタイルを設定して非表示にします。さらに、元のウインドウから参照ウインドウ内にアクセスするには、参照ウインドウ用の HTML 要素をオブジェクトとして作成し、プロパティを使用します。このプロパティの値が、参照ウインドウ内の window オブジェクトとなります。

但し、この参照ウインドウを埋め込む方法はレイアウト上 PC 環境のみで有効であり、スマホ画面では前述の window オブジェクトメソッドを使用します。

このような二つのウインドウを一つのアプリケーションとして連携する場合、お互いの参照方法を知ったうえでリロード処理を使う必要も出できます。その場合、オブジェクトのメソッドを使用するか、プロパティに URL をセットし直す方法を試してみるといいでしょう。


posted by at 2021-06-27 18:12 | プログラマ用 | このブログの読者になる | 更新情報をチェックする

2021年 前期試験問題( 8 ) : 16

jQuery はフリーのライブラリです。しかし、WEBアプリケーションにおける必要な JavaScript の処理を殆ど簡易化する事ができる優秀なライブラリです。JavaScript の HTML 要素参照はとても面倒ですが、jQuery ならばタイプ量が格段に少なくなります。ただ、注意すべきは画面上のコントロールが全て後に、HTML要素を特定して処理記述をまとめて行うという記述方式になれる必要があるところです。
<script> $(function(){ // ここに処理を記述 }); </script>
例えば、ボタンの処理を記述する場合、HTML には オブジェクトを取得する為の 属性を指定し、値が btn だとします。この場合の jQuery での処理記述は以下のようになります。
$("").on("", function() { alert("ボタンがクリックされました"); });
jQuery では HTML 要素の単独のオブジェクトを特定する為に、JavaScript と同じ属性を使用しますが、その値の使用方法がにおける指定方法と同じになります。その選択方法は『セレクタ』と呼ばれ、参照方法のバリエーションも多岐に渡る事になります。この場合、対象となるオブジェクトは一つだけですが、jQuery では HTML の構造や属性や HTML要素の種類そのものも利用して対象を複数として考えて一括で処理する事を想定しています。 たとえば、FORM 要素の中にある INPUT 要素の背景色を全てピンクにするには以下のように記述します。
$("").css("", "");
また、jQuery の殆どのメソッド( ここでは css ) では、結果の値が再び参照していたオブジェクトそのものになるので、追加で全ての対象に値として 山田太郎 とセットする場合には以下のように記述できます。
$("記述不要") .css("記述不要", "記述不要") .("山田太郎");
この例では、css メソッドでスタイルを指定し、メソッドの引数に値をセットしています。値を取得したい場合は引数無しで使用すると戻り値として入力値を取得できます。( その場合は単独のオブジェクトを特定して使用します ) これ以外にも良く使用するメソッドして、HTML 要素の属性値を取得・設定するメソッドがあります。 そして、jQuery を使うと容易に新しい HTML 要素を新規に作成する事もできます。その際の仕様上、画面上に既に存在する特定の要素に追加する必要があるのでその要素の属性の値をareaとして特定するとして、その中に INPUT 要素を追加するには以下のようになります。
$("").appendTo("");
posted by at 2021-06-27 13:15 | プログラマ用 | このブログの読者になる | 更新情報をチェックする

2021年 前期試験問題( 7 ) : 12

WEB アプリケーションを作成する上で、PHP はサーバ側のに情報を登録するという大きな役割があります。それに対して JavaScript画面をコントロールするという役割があります。その為に必要な知識は多岐にわたり、HTMLの知識も必要です。

まず、画面上の要素を特定する為に HTML ではという属性を定義する必要があります。通常、画面上のデータをサーバに送信する為に必要な属性は属性なので、この二つの属性は同じ値を設定すると混乱せずに済みます。そして、その属性の値を使用して要素そのものである『オブジェクト』を参照する為に使用するのが、document オブジェクトのメソッドのです。( JavaScript のメソッドでは正確に大文字小文字を区別して記述してください )

このメソッドで取得されたオブジェクトは、その対象となる HTML要素そのものです。よって、通常 HTML で記述可能な属性は、このオブジェクトのプロパティとして存在します。ですから、INPUT 要素の入力された値は、プロパティを参照して取得する事になります。

HTML 要素の参照方法は他にもあって、前述の FORM 内のデータ入力に必ず設定する属性を使用するメソッドは、属性の値が 画面内に同一で複数存在する事を許されているので、取得できたオブジェクトが配列になります。ですから、特定の HTML 要素を参照するには、オブジェクトに [0] を付加して先頭のオブジェクトを参照します。

この方法は、よく似たメソッドである document.getElementsByTagName を例に取ると以下のようになります。
var obj = document.getElementsByTagName("input")[0];
画面上の値を取得したり設定する事は、HTML 要素のオブジェクトのブロパティを操作する事で可能ですが、その操作をいつ行うかが重要な知識です。PHP は、ソースが呼び出されたらソースコードの先頭より実行されていきますが、HTML の画面では通常表示されればユーザの入力待ちになります。

このような場合、JavaScript が実行されるきっかけはユーザの処理に委ねられます。そして、殆どの場合それはユーザがボタンをした時に実行される事になります。

そのような処理を JavaScript で記述する為に、HTML 要素には『』という属性が用意されています。この属性の頭2文字は on です。単純なボタン処理を記述すると以下のようになります。
<script> function myaction() { alert("ボタンがクリックされました"); } </script> <input type="button" value="実行" on="myaction()">
この例よりも解るように、この属性の値は JavaScript を記述する事ができます。そして、一般的には関数を作成してその関数を呼び出させてその中で目的の処理を行います。上記例では、単純なボタンを使用しましたが WEB アプリケーションで実際に使用する場面では、FORM の属性を使用します。
<script> function myaction() { if ( !confirm( "送信しますか?" ) ) { return false; } return true; } </script> <form id="frm" on="return myaction()"> </form>
このような処理を作成する事によって、ユーザが入力を正しく完了したかどうかを検証し、入力しなおす場合はキャンセルする事ができます。
posted by at 2021-06-27 10:59 | プログラマ用 | このブログの読者になる | 更新情報をチェックする

2021年06月26日

2021年 前期試験問題( 6 ) : 11

WEB アプリケーションの処理の構成要素は大きく分けて3つあります。その一つは画面表示で、二つ目はデータベースの更新です。しかし、この二つの構成要素は比較的単純な事が多く、残りの要素が最も負荷の高いとなります。

当然この内容はアプリケーション毎に違ったものなり、画面の要素によってもいろいろな注意が必要となります。そして、画面表示の一部ではありますが、ユーザの入力によって起きる不具合をユーザに知らせるためのの表示が必要となります。

この処理は基本的にはサーバ側で行われますが、WEBアプリのテクノロジを総動員するとブラウザ側での処理として実装する事も最近は少なくありません。

最も簡単な方法としては、HTML 要素に直接記述する属性によって、簡易的な制限を加える事ができます。その代表的な属性がという属性で、未入力をしないようにする方法です。ただ、この方法は完全では無く、スペースや漢字スペースを受け入れてしまうので実際は正規表現を用いた属性のほうが現実的です。

しかし、この方法ではユーザに対するメッセージが具体的なものでは無く、製品に利用するのは避けるべきでしょう。せめて、を使用した入力単位の検査を作成してリアルタイムに問題の提示を迅速に行えるようにするべきです。さらに言えば、jQuery 等のライブラリを使用して、プログラマの負担の少ない標準化を行うべきです。

PHP で未入力がどうかを検査する場合、空白( 漢字の空白も含む )を未入力としてチェックする為に、関数を使用して正規表現で入力文字列の両側の空白を排除して空文字であればエラーとします。また、PHP は画面単位で送信を行うので、サーバへ送られたデータに対して全て検査を行い、問題のある結果もまた全てブラウザへ返して表示すべきです。

具体的には、文字列追加連結演算子のを使用して検査の結果を変数にまとめて保存して画面部分に埋め込みます。そして、可能ならば問題の出た最初の画面上のコントロールにをセットしましょう。

しかし、ブラウザ側でチェックするのであればコントロール毎に問題を迅速にユーザに知らせるほうが良い場合もあります。
var name = $("#name").val();
name = name.replace(/^[\s]+/, "");
name = name.replace(/[\s]+$/, "");
if ( name == "" ) {
    $("#message").text("名前が入力されていません");
    $("#name").val( "" );
    $("#name").focus();
    $("#name").select();

    event.preventDefault();
    return;
}
いずれにしても、画面に投入されるデータの整合性をプログラミングでチェックする場合、多くの場面で正規表現が有効です。簡単な例で言えば、0〜9 の文字の入力のみ許すのであれば HTML であれば正規表現を記述する属性の値としてと書きます。

また、処理として PHP で記述するのであれば  関数を使用し、JavaScriptであれば文字列に対してメソッドを使用しますが、その場合最初から最後まで 0〜9 である事を確かめる為に、^を最初に、$を最後に加えます。

そして、PHP の場合は、"/正規表現/" を引数に与え、JavaScript では /正規表現/ を引数に与えます。


posted by at 2021-06-26 21:18 | プログラマ用 | このブログの読者になる | 更新情報をチェックする

2021年 前期試験問題( 5 ) : 12

PHP に対してデータを送る役割は FORM 要素ですが、この要素そのものが持つ属性が WEBアプリケーションにとって重要である事は言うまでもありません。

まず、属性によってサーバへのデータの送り方が大きく分けて2通りに分けられ、この属性を省略すると実行される通信方法を仮に『アドレスバー方式』と呼ぶことにします。この方式では、データは URL の一部として作成され、その URLそのものがサーバに到達します。この際、データ部分はと呼ばれ、データとデータの間は & で区切られます。

つまり、その URL は A 要素の属性で指定可能なもので、データ部分が外部に容易に露出する事になるデータ通信方法です。

それに反してもう一つの通信方法は、ブラウザが直接サーバへデータを送る方法で、『アドレスバー方式』との大きな違いは送信可能なデータ量に対する制限が無い事です。この場合、FORM 要素の属性に enctype を使用して、値にを指定するとファイルのアップロードが可能になります。また、送信されたデータがアドレスバーに残る事も無く、確実にサーバへデータを送る事ができます。

そして、次に重要な属性はです。この属性を省略すると、データの送り先は現在表示している URL に対して送られます。つまり、省略せずに他の PHP ファイルを指定すれば、その PHP にデータを送信可能になります。こうする事によって、PHP で記述する処理を単純化する事が可能になり、プログラミングのコストを抑える可能性も大きくなります。

さらに、プログラムの処理そのものにはさほど影響は与えませんが、属性を使用する事によって、ブラウザ上のどの部分に表示するかを決める事ができます。例えば要素をページ内に埋め込んで、PHP の送信結果をその中に表示する事が可能になります。また、この属性に値としてを指定すると、送信のたびに新しいタブを開いてそのウインドウ内に結果が表示されるでしょう。

ここまでは、画面定義として決められた基本機能の指定方法ですが、WEB アブリケーションとして完成度を高くするには、このデータ送信機能を実行する前に入力チェックを行う必要があります。たとえ入力チェックが必要無い簡単な送信でも、ユーザの間違いを避ける為に確認ダイアログを表示して送信のキャンセルをする事ができるようにする必要があります。

その為の重要な FORM 要素の属性がです。このような属性は、他の要素でも同様で、頭に on が付き、JavaScript への橋渡しをするための属性です。よって、属性の値は JavaScript そのものが記述されます。

そして、FORM 要素のこの属性は送信のキャンセルを実現する為に最初にステートメントを指定して、他で定義した関数の戻り値をシステムに返す事になっています。この他で定義した関数が返す値がの場合にサーバへの送信はキャンセルされます。
function check(){

    if ( !confirm("更新してもよろしいですか?") ) {
        return false;
    }

    return true;
}
</script>
confirm メソッドは、オブジェクトのメソッドで、OK と キャンセルのボタンを持っており、ユーザが選択できます。JavaScript では、このトップに存在するオブジェクトは省略してメソッドのみを記述する事となっています。


posted by at 2021-06-26 19:10 | プログラマ用 | このブログの読者になる | 更新情報をチェックする