C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

ログ内検索
  • キーワードを複数指定する場合は 半角スペース で区切ってください。
  • 検索条件は、(AND)=[A かつ B] (OR)=[A または B] となっています。
  • [返信]をクリックすると返信ページへ移動します。
キーワード/ 検索条件 /
検索範囲/ 強調表示/ ON (自動リンクOFF)
結果表示件数/ 記事No検索/ ON
大文字と小文字を区別する

全過去ログを検索

<< 0 >>
■54622  Re[5]: 文字列の様々な変換について
□投稿者/ PATIO -(2010/10/27(Wed) 18:31:20)
    2010/10/27(Wed) 18:34:12 編集(投稿者)

    No54603 (新参者 さん) に返信
    > プログラミングに関して、あまり行った経験がなく、
    > 自分でもうまく整理できていない状況で質問してしまい、申し訳ありません。。。
    >
    > はい、お聞きしたい事項は、
    > 最終結果として@〜Cのように1バイトのデータを設定するためには、
    > 文字列から文字をどのように取り出して、どう変換をかけて設定すればよいかを
    > お聞きしたいと思っております。

    ただ単純に"ABC"と書かれた物を変数を通さずに処理は出来ないと思いますけれど。

    例えばですが、
    char buf[] = "ABC";とか、char *p = "ABC";
    とかすれば、一番目の文字をbuf[0]とか、
    二番目の文字を*(p+1);とかで取り出すのはできると
    思いますけれど、何もなしにいきなり0x41が出てきたりしないと思いますよ。
    基本的にデータ操作をする為には何らかの変数に格納する必要があると思います。
    というか、関数に対してデータを引き渡す時は既に変数の状態で引き渡されているはずです。
記事No.54576 のレス /過去ログ91より / 関連記事表示
削除チェック/

■54619  Re[1]: 文字列の様々な変換について
□投稿者/ PATIO -(2010/10/27(Wed) 18:21:49)
    2010/10/27(Wed) 18:24:02 編集(投稿者)

    No54576 (新参者 さん) に返信

    char buf[4];だとかとします。

    > @文字列"ABC"をアスキーコード値で1バイトずつ格納する。
    > buf[0]=0x41
    > buf[1]=0x42
    > buf[2]=0x43

    それで良いと思いますけれど、strcpyとかで"ABC"を入れる方法をとらないのはなぜ?



    > A文字列"300"を16進数の値で1バイトずつ格納する。
    > buf[0]=0x01
    > buf[1]=0x2C

    文字列として"300"が渡されて、これをバイナリ値に変換した後、
    1バイトずつ分解して設定するって事ですかね?
    この設定だとビッグエンディアンになってますが、それで大丈夫?


    > B文字列"8"を以下のように格納する。
    > buf[0]=0x08

    これも文字列"8"をもらってバイナリ値にし、
    charの変数に設定したいと言うことですかね。
    数字文字列から数値に変えたいなら
    既に774RRさんが関数の例を出してくれてますけれど。


    > C文字列"0x20"を以下のように格納する。
    > buf[0]=0x20

    文字列"0x20"を受け取ってバイナリ値にし、
    charの変数に設定したいということですかね。
    これも774RRさんが関数の例を出してくれてますよ。

    せっかく関数を例に出してくれているのですから
    関数名で調べましょうよ。
    何をしてくれる関数かわかるはずですから。

    あと、基本の部分がふらついているのであれば、
    入門書を何度も読みかえてして見てください。
    何か理解しきれないまま先に進んでしまっていないでしょうか。
    自分が何処が分からないのかをはっきりさせる事は理解の第一歩です。
記事No.54576 のレス /過去ログ91より / 関連記事表示
削除チェック/

■54621  Re[1]: デバック時とブラウザ時のカレントディレクトリの相違について
□投稿者/ ちゃっぴ -(2010/10/27(Wed) 18:30:26)
>
    そもそも Web application で current directory なんて利用すべきではありません。
    利用しなくてもできるのでやりたいことを書きましょう。
記事No.54617 のレス /過去ログ91より / 関連記事表示
削除チェック/

■54620  Re[25]: c#アプリ、db設計について
□投稿者/ ちゃっぴ -(2010/10/27(Wed) 18:25:27)
>
    > コンポーネントキーって一般用語じゃなかったのか。

    Composite primary key とか。
記事No.54451 のレス /過去ログ91より / 関連記事表示
削除チェック/

■83021  Re[1]: VB.NET における配列のコピー
□投稿者/ WebSurfer -(2017/02/27(Mon) 13:55:17)
    No83019 (ぼんかば さん) に返信

    【追伸】

    注: Single は値型ですが、その配列は参照型になります。
記事No.83019 のレス /過去ログ141より / 関連記事表示
削除チェック/

■86345  Re[4]: HttpClientでのmultipart/mixed送信
□投稿者/ 魔界の仮面弁士 -(2018/01/22(Mon) 11:29:31)
    No86343 (さえ さん) に返信
    > foreach (var s in list)
    「foreach (var s in files)」ですよね。
    
    ところで、HttpClient には下記のような問題があるのでご注意を。
    https://qiita.com/nskhara/items/b7c31d60531ffbe29537
    
    
    > ***正常に動作するサンプルの送出データ***
    > Content-Length: 13795
    > ***自作C#の送出データ***
    > Content-Length: 13793
    
    要求ボディのサイズ(Content-Length ヘッダー)が 2 バイト違っていますが、
    これは先頭の CR LF の有無によるものです。
    
    
    VBA バージョンにおいて、その 冒頭の CR LF を削って送出した場合、
    残念ながら No86325 で示したように
     「ファイルがありません。アップロードしてください。」
    が再現することになります。本来、冒頭の CR LF は無くても構わないはずなので、
    このような動作になっているのは、Web API 側の実装に問題があるのだと推察します。
    
    
    マルチパートな HTTP では、preamble (および epilogue) は
    空で送信されるのが通例ですし、先頭が空の preamble である場合、
    冒頭の CR LF は省略可能だと思うのですけれどね…。
    
    https://www.ietf.org/rfc/rfc2046.txt
    》multipart-body := [preamble CRLF]
    》                  dash-boundary transport-padding CRLF
    》                  body-part *encapsulation
    》                  close-delimiter transport-padding
    》                  [CRLF epilogue]
    》
    
    https://wiki.suikawiki.org/n/境界文字列
    》古い版の MIME では一番最初の本体部分の前の境界でも 
    》--boundary の前の CRLF が必須とされていましたが、
    》今日では不具合であったと考えられています。
    
    
    > Shift_JISのcsvはUTF-8 に再エンコードして送出されているようでしたので、
    PDF に記載された要求の例では
     Content-Type: text/csv
    となっているのに、VBA 実装では
     Content-Type: text/csv; charset=utf-8
    となっていますし、仕様か実装のいずれかが間違っていそう。
    
    
    > バウンダリにダブルクォーテーションを付けない形で設定する方法はどうすればよいでしょうか。
    
    VBA 版と同様、要求電文を自前で組み立てないと駄目かも。
    以下、Task 化してませんが参考までに。
    
    static void Main()
    {
      var files = new List<string>();
      files.Add(@"C:\temp\A");
    
      string url = @"http://model.app.lowenergy.jp/api/v1/ConvertToWebInput";
        
      var webReq = System.Net.HttpWebRequest.CreateHttp(url);
      webReq.Method = HttpMethod.Post.Method;
    
      // var boundary = "================12345678987654321";
      var boundary = "==" + Guid.NewGuid().ToString("D");
    
      //バウンダリを quoted-string にすると失敗する
      //webReq.ContentType = "multipart/mixed; boundary=\"" + boundary + "\"";
    
      //バウンダリを token として表現する
      webReq.ContentType = "multipart/mixed; boundary=" + boundary;
    
      var mem = new MemoryStream();
      var writer = new StreamWriter(mem, Encoding.UTF8);
    
      foreach (var s in files)
      {
        // 最初のバウンダリであっても、\r\n を先導させないと失敗する
        writer.Write("\r\n--" + boundary + "\r\n");
    
        // ここは「name="A"」でも「name=A」でも構わない
        writer.Write("Content-Disposition: mixed; name=" + Path.GetFileName(s) + "\r\n");
        //writer.Write("Content-Disposition: mixed; name=\"" + Path.GetFileName(s) + "\"\r\n");
    
        // Content-Type はもちろん必須だが、chaset の検査はされていない模様
        // というか、そもそも "text/csv" 以外を指定しても動いてしまう
        writer.Write("Content-Type: text/csv\r\n");
    
        // CSV の文字コードは UTF-8 にしておく必要がある模様
        // 使用可能な文字種(文字集合)は CP932 準拠?
        writer.Write("\r\n" + File.ReadAllText(s));
      }
      writer.Write("\r\n--" + boundary + "--");
      writer.Flush();
      webReq.ContentLength = mem.Length;
      mem.Position = 0;
      var reqStm = webReq.GetRequestStream();
      reqStm.Write(mem.ToArray(), 0, (int)mem.Length);
      reqStm.Close();
      writer.Dispose();
    
      var res = webReq.GetResponse();
      var resStream = new StreamReader(res.GetResponseStream(), Encoding.UTF8);
      string result = resStream.ReadToEnd();
      resStream.Close();
      res.Dispose();
      Console.WriteLine(result);
    }
記事No.86305 のレス /過去ログ148より / 関連記事表示
削除チェック/

■88171  Re[2]: 必須コンポーネントを入れないためには
□投稿者/ 774RR -(2018/08/07(Tue) 14:32:15)
    必須コンポーネントを [入れたい] 場合は setup.exe から起動しないとうまく入らないんですが
    今回の場合 [入れたくない] ので話はちょっと違うのです。

    実際 VS2005 のセットアッププロジェクトのプロパティ [必須コンポーネント] を外すと setup.exe は生成されず hoge_setup.msi のみが生成されます。なのに hoge_setup.msi をポチるとインストールしてね画面が出るのを禁止したい、と。

    手順書を書いて残しておかないと。
記事No.88114 のレス /過去ログ151より / 関連記事表示
削除チェック/

■88172  Re[3]: 必須コンポーネントを入れないためには
□投稿者/ shu -(2018/08/07(Tue) 15:58:45)
    No88171 (774RR さん) に返信

    すみません。解決済はずすことになってしまいました。
記事No.88114 のレス / END /過去ログ151より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -