!extend:checked:vvvvv:1000:512
次スレを立てる時は↑を2行冒頭に書くこと(1行分は消えて表示されない為)
「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。
他のスレッドでは書き込めないような低レベルな質問、質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。
内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。
なお、テンプレが読めない回答者、議論をしたいだけの人は邪魔なので後述のC#相談室に移動して下さい。
C#に関係の無い話題や荒らしの相手や罵倒レスや酔っぱらいレスはやめてください
>>980を踏んだ人は新スレを建てて下さい。>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。
■前スレ
ふらっと C#,C♯,C#(初心者用) Part152
http://mevius.5ch.net/test/read.cgi/tech/1629888256/
■関連スレ
C#, C♯, C#相談室 Part94
http://mevius.5ch.net/test/read.cgi/tech/1553075856/
■コードを貼る場合は↓を使いましょう。
https://ideone.com/
https://dotnetfiddle.net/
■情報源
https://docs.microsoft.com/ja-jp/dotnet/standard/class-libraries/
https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/
https://docs.microsoft.com/en-us/dotnet/standard/class-libraries/
https://referencesource.microsoft.com/
https://source.dot.net/
・Insider.NET > .NET TIPS - @IT
https://www.atmarkit.co.jp/ait/subtop/features/dotnet/dotnettips_index.html
・DOBON.NET .NET Tips
https://dobon.net/vb/dotnet/index.html
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
探検
ふらっと C#,C♯,C#(初心者用) Part153
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ bf2c-yjVA)
2021/12/13(月) 22:53:21.18ID:dhjmiKBp02デフォルトの名無しさん (ワッチョイ c702-p36F)
2021/12/14(火) 15:04:57.66ID:DHQEOVX70 stringデータの容量を小さくしてソフトのAPIに送りたいのですが
APIの都合でstringのまま送らなければならない場合、
これ以上容量を小さくする手段はありませんか?
圧縮したバイナリデータをどうにか送信できないかと調べたのですが無理そうで……。
APIの都合でstringのまま送らなければならない場合、
これ以上容量を小さくする手段はありませんか?
圧縮したバイナリデータをどうにか送信できないかと調べたのですが無理そうで……。
3デフォルトの名無しさん (ワッチョイ df2c-yjVA)
2021/12/14(火) 17:52:43.39ID:vmKXmndG0 何らかの方法で圧縮できたとして
受け取る方のソフトは圧縮されたデータを伸長できるの?
受け取る方のソフトは圧縮されたデータを伸長できるの?
4デフォルトの名無しさん (ブーイモ MMff-gtpG)
2021/12/14(火) 17:56:17.81ID:WeLzug3DM uudx / uuex か?
5デフォルトの名無しさん (ワッチョイ c702-p36F)
2021/12/14(火) 18:19:29.34ID:DHQEOVX70 >>3
圧縮して送りたいのはただのセーブデータなのですが、
サーバー側の保存形式がstringを使ったkeyValueで作られているので文字列形式でしか保存できないみたいで。
保存しておいた文字列をこちらで読み込んでからデコードすればいいのでstringのまま圧縮できればよくて、
どうせ日本語までしか扱わないデータなのでSHIFT-JISをutf-8で圧縮……みたいなことができれば理想なのですが
そんなピンポイントなのあったりしませんよね、と……。
>>4
解釈があってるかはわからないのですが、
一応圧縮したバイナリデータをBase64でConvertみたいなことは試してみたものの
容量を減らすという目的ではむしろ文字数が増えてしまって。
何か手段がないかなあと思っている次第です。
圧縮して送りたいのはただのセーブデータなのですが、
サーバー側の保存形式がstringを使ったkeyValueで作られているので文字列形式でしか保存できないみたいで。
保存しておいた文字列をこちらで読み込んでからデコードすればいいのでstringのまま圧縮できればよくて、
どうせ日本語までしか扱わないデータなのでSHIFT-JISをutf-8で圧縮……みたいなことができれば理想なのですが
そんなピンポイントなのあったりしませんよね、と……。
>>4
解釈があってるかはわからないのですが、
一応圧縮したバイナリデータをBase64でConvertみたいなことは試してみたものの
容量を減らすという目的ではむしろ文字数が増えてしまって。
何か手段がないかなあと思っている次第です。
6デフォルトの名無しさん (ラクッペペ MM8f-JWjg)
2021/12/14(火) 18:26:30.90ID:QT7QgCvlM 使用できる文字に番号振って
圧縮したバイナリを文字に割当る
いわゆる復活の呪文方式
文字が足らなければ32bitsバイナリを31bitsにずらしていくなど工夫してみな
圧縮したバイナリを文字に割当る
いわゆる復活の呪文方式
文字が足らなければ32bitsバイナリを31bitsにずらしていくなど工夫してみな
7デフォルトの名無しさん (アウアウウー Sa6b-5lnE)
2021/12/14(火) 18:35:23.50ID:70QYvgE2a8デフォルトの名無しさん (ブーイモ MMcf-gtpG)
2021/12/14(火) 19:00:02.18ID:DQcTzC4QM 通常のデータ圧縮は8ビットフルに使うので、
そのままでは難しいのでuuと組み合わせて作ったら?
そのままでは難しいのでuuと組み合わせて作ったら?
9デフォルトの名無しさん (ワッチョイ df2c-yjVA)
2021/12/14(火) 19:40:08.80ID:vmKXmndG0 UTF-8でバイナリ化してdeflate圧縮してBase64化した後2文字ずつを1つのcharに詰める
まあ基本ライブラリで手軽にやるならこんな感じじゃない?
まあ基本ライブラリで手軽にやるならこんな感じじゃない?
10デフォルトの名無しさん (ワッチョイ 67b0-zDwW)
2021/12/14(火) 20:14:03.30ID:4rMew3mV0 7zかなにか圧縮率の高い奴で圧縮しておいてbasE91だな。
http://base91.sourceforge.net/
http://base91.sourceforge.net/
11デフォルトの名無しさん (ワッチョイ a701-4A0X)
2021/12/15(水) 07:44:21.38ID:viWcJGha0 圧縮することによっぽどのメリットがないと無駄にややこしくなるだけだぞ
サーバー側が必要に応じて圧縮するのが筋かと
UTF-8に変換して送信とか脆弱性の問題もあってサーバー側で禁止してることもある
サーバー側が必要に応じて圧縮するのが筋かと
UTF-8に変換して送信とか脆弱性の問題もあってサーバー側で禁止してることもある
122 (ワッチョイ c702-p36F)
2021/12/15(水) 08:20:09.42ID:KIyi4EVP0 皆さんありがとうございます! Base64化したものを自分でさらに詰めるというのは思いつきませんでした……なるほど……。
BasE91もまさに机上論こねくり回してるときに欲しかったものの気配がするので中身覗いて調べてみます!
>>11
こちらは利用する側なのでサーバーの仕様を変える事はできず、
用意されたフォーマット(これが文字列形式での送信)従うしかないやつですね。
ユーザー毎に使用可能なデータの容量が決められていて(しかもそれがやたら少ない)、
少しでも軽減するためにこちら側でデータを小さくできないかと画策しています。
BasE91もまさに机上論こねくり回してるときに欲しかったものの気配がするので中身覗いて調べてみます!
>>11
こちらは利用する側なのでサーバーの仕様を変える事はできず、
用意されたフォーマット(これが文字列形式での送信)従うしかないやつですね。
ユーザー毎に使用可能なデータの容量が決められていて(しかもそれがやたら少ない)、
少しでも軽減するためにこちら側でデータを小さくできないかと画策しています。
13デフォルトの名無しさん (ワッチョイ 2780-4iyA)
2021/12/15(水) 08:43:57.49ID:doly6UKJ0 ビットマップ間で部分的に画像コピーするのはDrawImageでできますが
コピーする際に左右を反転してコピーする方法はないでしょうか?
検索でビットマップ全体をまるごと反転する表示はたくさん出てくるのですが
DrawImageの部分コピーで反転するのは見当たらないのです
コピーする際に左右を反転してコピーする方法はないでしょうか?
検索でビットマップ全体をまるごと反転する表示はたくさん出てくるのですが
DrawImageの部分コピーで反転するのは見当たらないのです
14デフォルトの名無しさん (ワッチョイ df2c-yjVA)
2021/12/15(水) 09:39:43.96ID:SWORTfJ40 g.ScaleTransform(-1, 1)
描き出す先の座標も反転するから座標指定注意
描き出す先の座標も反転するから座標指定注意
15デフォルトの名無しさん (ワッチョイ a748-4iyA)
2021/12/15(水) 10:18:47.15ID:IF/hKOzS0 できました、ありがとうございます
16デフォルトの名無しさん (ワッチョイ e701-zKou)
2021/12/15(水) 20:55:12.09ID:KtX6zlRp0 DrawImageに渡すWidthやHeightを負の数にするだけで反対向きに描画するよ
17デフォルトの名無しさん (ワッチョイ c75f-o4eJ)
2021/12/15(水) 22:41:30.07ID:9OkRwsNs0 LinuxでC#でソフト作りたいのですが
.Net 6とmonoは同じものでしょうか?
.Net 6とmonoは同じものでしょうか?
18デフォルトの名無しさん (アウアウウー Sa6b-5lnE)
2021/12/15(水) 22:58:53.71ID:RALnEWNsa monoは.NET4.6か4.7相当
19デフォルトの名無しさん (ワッチョイ c75f-o4eJ)
2021/12/15(水) 23:37:58.07ID:9OkRwsNs0 ありがとうございます
.Net 6をインストールしました
.Net 6をインストールしました
20デフォルトの名無しさん (ワッチョイ a748-4iyA)
2021/12/16(木) 12:03:30.27ID:GoezKG390 private void Form1_KeyDown(object sender, KeyEventArgs e)
{
keyCode = (int)e.KeyCode;
}
public void button1_Click(object sender, EventArgs e)
{
button1.Visible = false;
anThread(); // ここをtest();に変えると直接実行になる
}
private void anThread()
{
Task task = Task.Run(() => {
test();
}
}
private void test() {
int dt;
while (true) {
if (keyCode!=0) {
dt = keyCode; // ここにブレークポイントを置く キーが押されると止まる
return;
}
Thread.Sleep(10);
}
}
{
keyCode = (int)e.KeyCode;
}
public void button1_Click(object sender, EventArgs e)
{
button1.Visible = false;
anThread(); // ここをtest();に変えると直接実行になる
}
private void anThread()
{
Task task = Task.Run(() => {
test();
}
}
private void test() {
int dt;
while (true) {
if (keyCode!=0) {
dt = keyCode; // ここにブレークポイントを置く キーが押されると止まる
return;
}
Thread.Sleep(10);
}
}
21デフォルトの名無しさん (ワッチョイ a748-4iyA)
2021/12/16(木) 12:04:03.26ID:GoezKG390 このプログラムbutton1押しで開始して、キーが押されるとループ中のブレークポイントで止まるものなんですが
これで一般文字キーを押すとちゃんとブレークポイントで止まりkeyCodeが確認できます
Enterキーを押した場合はなぜか止まりません
anThread();のように別スレッドから動かさずに直接test();で呼ぶと
一般文字キーもEnterキーの時も止まりkeyCode 13が確認できます
別スレッドで動かした時に、Enterキーの時だけForm1_KeyDownさえ呼ばれなくなるのは
どうしてでしょうか?
これで一般文字キーを押すとちゃんとブレークポイントで止まりkeyCodeが確認できます
Enterキーを押した場合はなぜか止まりません
anThread();のように別スレッドから動かさずに直接test();で呼ぶと
一般文字キーもEnterキーの時も止まりkeyCode 13が確認できます
別スレッドで動かした時に、Enterキーの時だけForm1_KeyDownさえ呼ばれなくなるのは
どうしてでしょうか?
22デフォルトの名無しさん (アウアウウー Sa6b-5lnE)
2021/12/16(木) 12:25:18.98ID:6kTxk0Gya 直接呼びで停まる?
直接呼ぶと無限ループに入って、keycode変数が変化しないから(代入が行われるのはループの外だから代入が起きない)
ブレークポイントに入ることもないんじゃないかな?
ここに書き込む過程でコードを書き換えたなら、そこで略した部分に問題ありそう
直接呼ぶと無限ループに入って、keycode変数が変化しないから(代入が行われるのはループの外だから代入が起きない)
ブレークポイントに入ることもないんじゃないかな?
ここに書き込む過程でコードを書き換えたなら、そこで略した部分に問題ありそう
23デフォルトの名無しさん (ワッチョイ a748-4iyA)
2021/12/16(木) 12:36:40.33ID:GoezKG390 いえ止まるというのはブレークポイントで止まるので正常に機能しているということです
直接呼びの時はEnterキーでもkeycode変数が変化するのです(正常)
別スレッド呼びにした時にEnterキーだけ変化しないようになります 文字キーは変化します
button1にEnterキーが吸収されてるのではないかと思い
button1.Visible = false;
button1.Enabled = false;
さらにForm1.KeyPreview=true;
としたのですが、結果は変わりませんでした
直接呼びの時はEnterキーでもkeycode変数が変化するのです(正常)
別スレッド呼びにした時にEnterキーだけ変化しないようになります 文字キーは変化します
button1にEnterキーが吸収されてるのではないかと思い
button1.Visible = false;
button1.Enabled = false;
さらにForm1.KeyPreview=true;
としたのですが、結果は変わりませんでした
24デフォルトの名無しさん (アウアウウー Sa6b-5lnE)
2021/12/16(木) 12:59:19.79ID:6kTxk0Gya デバッグ開始する
ボタン押す
enter以外のキーを押す=止まる
再開する
enterを押す=止まらない
って順番ということ?それならreturnで抜けてるから
デバッグ開始する
ボタン押す
enterを押す=止まらない
enter以外のキーを押す=止まる
って順番ということ?
ボタン押す
enter以外のキーを押す=止まる
再開する
enterを押す=止まらない
って順番ということ?それならreturnで抜けてるから
デバッグ開始する
ボタン押す
enterを押す=止まらない
enter以外のキーを押す=止まる
って順番ということ?
25デフォルトの名無しさん (ワッチョイ a748-4iyA)
2021/12/16(木) 13:04:12.22ID:GoezKG390 そうですね、デバッグ実行は毎回やりなおしてますが
enterを押す=止まらない ここのところですね問題は
Enterキー故に何かわからないですがviewのどれかに吸収されてるんではとも考えられるんです
enterを押す=止まらない ここのところですね問題は
Enterキー故に何かわからないですがviewのどれかに吸収されてるんではとも考えられるんです
26デフォルトの名無しさん (ワッチョイ a748-4iyA)
2021/12/16(木) 13:11:56.87ID:GoezKG390 inr fs;
public void button1_Click(object sender, EventArgs e)
{
if (fs==0) {
button1.Visible = false;
button1.Enabled = false;
anThread(); // ここをtest();に変えると直接実行になる
}
fs=1;
}
public void button1_Click(object sender, EventArgs e)
{
if (fs==0) {
button1.Visible = false;
button1.Enabled = false;
anThread(); // ここをtest();に変えると直接実行になる
}
fs=1;
}
27デフォルトの名無しさん (ワッチョイ a748-4iyA)
2021/12/16(木) 13:12:29.66ID:GoezKG390 もっとボタンのとこ具体的にかくと上のようにして一度しかtest()呼ばれないようにしてます
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 高市首相、トランプ米大統領に「早期に会いたい」 日中関係悪化受け… ★3 [BFU★]
- 「これいいじゃん!!!」 セブン-イレブンの1620円で買える“1人用クリスマスケーキ”🎂に注目殺到「天才すぎる」 [パンナ・コッタ★]
- 【コメ】卸売業者「簡単に安売りできない」「大暴落起きれば大赤字に」 JA「新米の販売進度が近年になく遅い。コメの回転が悪い」 ★5 [Hitzeschleier★]
- 高市早苗首相が天理教系企業に“巨額発注” 総額5000万円 本人は「政治団体の活動に必要な支出」と回答 ★2 [Hitzeschleier★]
- 【サッカー】日本代表、FIFAランキング“4位”の強豪イングランドとの対戦が正式決定! 来年3月に聖地ウェンブリーで激突へ [久太郎★]
- 小島瑠璃子さん、代表取締役を務める会社を破産申請 [牛丼★]
- 政府債務(対GDP比)2025年版発表 ついにあの国がワースト1位になってしまう [884040186]
- 千晴のおちんちん舐めたらめかぶの味がした🤮
- 近所にびっくりドンキーがないんだけど!!!
- 【朗報】高市首相に文春砲を放った文春&新潮、無事に叩かれる
- 高市早苗「長期金利なんかよりも日本が成長することのほうが大事」 [834922174]
- 【悲報】高市「マクロンさあ!近平G7に呼ばずハミゴにしちゃってよ!😡」【小学生内閣】 [359965264]
