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

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

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

全過去ログを検索

<< 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 >>
■3051  互換性につきまして
□投稿者/ てこな -(2006/04/07(Fri) 22:03:33)

    分類:[VC++] 


    分類:[VC++] 

    こんばんは、てこなです。

    初歩的な質問なのかもしれませんが、
    宜しければアドバイスなど頂ければ幸いかと存じます。
    また、管理人さま
    前回この掲示板で質問しみなさまにいろいろアドバイスをいただくことができ、
    とてもうれしく思いつつも自分の未熟さを痛感いたしました。
    業務とは別にプログラミングをやっているので、
    業務の都合=てこなの勝手な都合で
    前回のように返信間隔が開いてしまうかもしれません。

    故、このBBS参加者として不適切とご判断された場合、
    まことにお手数かとは思いますが、削除等お願い致します。


    <環境>
    OS :WindowsXP SP1
    Soft:Visual C++ 6.0 (今回はそれ以前の問題のような・・・・ごめんなさい)

    <前提>
    入力ファイルを読み込んで必要項目を表示するのですが、
    入力ファイルは以下のようになっています。
    1ファイル50人います。
    1人につき普通は1レコードなのですが、2レコード持っている人がいます。
    人それぞれでキーが異なっているんですが、
    2レコード持っている場合、1レコード目と2レコード目のキーは同じです。
    同じ人の場合は同じキーで、違う人の場合は異なったキー。

    そこで、以下のような方法を考えてみました。
    @ファイルから1回読む→ここには複数レコード持っている人でも必ず
                1レコード目がきます。⇒oya1_dat
    Aファイルから次を読む→退避エリアに退避しておきます。⇒oya3_dat
    B退避エリアのキーと@で読んだレコードのキーが一致していれば、
     退避エリアのデータを2レコード目のデータとして扱います
     ⇒ oya3_datをoya2_datへ格納

    <お伺いしたいところ>
    下記ソース(略)の★印の部分で、
    退避エリアから2レコード目の構造体?に格納しているところで、
    次のようなエラーを取り除くことが出来ませんでした。

    <エラー>
    'function' : 互換性のない型が含まれています。
    'strncpy' : の型が 1 の仮引数および実引数と異なります。

    エラー部分の「C〜」を選択してF1でヘルプを参照してみたのですが、
    「型」が違う・・・同じ「unsigned char」でレコード長も同じなのですが、
    着眼点が違うみたいで・・・・根本的にスキルが足りてないのに
    C言語触っている時点で問題外なのかも・・・しれないです。

    <同様の事象が出るソース(一部)>
    <oyako.h>
    typedef struct
    {
    /* おや1(11) */
    unsigned char b[2];
    unsigned char a[4];
    unsigned char c;
    unsigned char crc[2];
    unsigned char crlf[2];

    } _OYA1;

    typedef struct
    {
    /* おや2(11) */
    unsigned char w;
    unsigned char q[4];
    unsigned char e[2];
    unsigned char crc[2];
    unsigned char crlf[2];

    } _OYA2;

    <main.c>
    /*---------------------*/
    _OYA1 oya1_dat;/* 1レコード目 */
    _OYA2 oya2_dat;/* 2レコード目 */
    _OYA1 oya3_dat;/* 退避エリア */

    #include <stdio.h>
    #include <string.h>
    #include <stdlib.h>
    #include "oyako.h"

    途中省略

    read_oya = fread( &oya1_dat, (sizeof(oya1_dat)-1), 1, fpoya);
    read_oya = fread( &oya3_dat, (sizeof(oya3_dat)-1), 1, fpoya);

    if( strncmp( oya1_dat.a, oya3_dat.q, 4 ) == 0 ) {
    strncpy( oya2_dat, oya3_dat, (sizeof(oya3_dat)-1) ); ★
    memset ( &oya3_dat, 0x20, (sizeof(oya3_dat)-1) );
    }else{
    oya3_set_fg = '1';
    /* 退避(oya3)→oya1へコピー or freadする */
    }

    途中省略

    <根本>
    てこなが、本質を理解しきれていないことが大きな原因かもしれません。
    他の質問内容とは比べ物にならないくらい初歩的なことかもしれません。
    今のてこなにとってはおおきな壁ですが・・・

    もし宜しければ、アドバイスを頂ければ幸いかと思います。
    但し、上級者向けの掲示板にこのような質問を記してしまって、
    気分を害されていないか、とても心配です。
    その時は謹んでお詫び申し上げると共に、
    2度と気分を害されないようにしたいと思います。

    長くなってしまいまことに申し訳ございません。
    特に急いでいるわけでもないので、
    お手すきの際にでも一言でもかまいませんので
    ご指導していただけるとうれしいです。

    以上


親記事 /0過去ログ3より / 関連記事表示
削除チェック/

■3045  Re[2]: JIS->Shift JIS変換
□投稿者/ Ken -(2006/04/07(Fri) 16:16:10)

    分類:[VB.NET] 

    No3042に返信(Hongliangさんの記事)
    > JIS(ISO-2022-JP) を使って StreamReader を作り、String に読み出して、
    > それから Shift_jis を使って作った StreamWriter で書き出せばいいでしょう。

    以下のようにしてみたのですが、変換ができてないように思います。

    Dim ss As String = String.Empty
    Dim sr As New System.IO.StreamReader("D:\work\Recv.dat", _
    System.Text.Encoding.GetEncoding("ISO-2022-JP"))
    '// 内容を一行ずつ読み込む
    While sr.Peek() > -1
    ' ''Console.WriteLine(sr.ReadLine())
    ss &= sr.ReadLine
    End While
    '// 閉じる
    sr.Close()

    'ファイルを上書きし、Shift JISで書き込む
    Dim sw As New System.IO.StreamWriter("c:\test.txt", False, _
    System.Text.Encoding.GetEncoding(932))
    'TextBox1.Textの内容をすべて書き込む
    sw.Write(ss)

記事No.3041 のレス /0過去ログ3より / 関連記事表示
削除チェック/

■3041  JIS->Shift JIS変換
□投稿者/ Ken -(2006/04/07(Fri) 13:21:52)

    分類:[VB.NET] 


    分類:[VB.NET] 

    いつも参考にさせていただいてます。
    JISコードでかかれたテキストファイルをShitJISに変換したいのですがどのように
    したらよいかわかりません。

    Dim sr As New System.IO.StreamReader("D:\work\Recv.dat", _
    System.Text.Encoding.GetEncoding(932))

    としたらよいかとも思ったのですが、できませんでした。
    どのようにしたらよいのか教えて下さい。お願いいたします。

    windowsXP VB.NET2005
親記事 /0過去ログ3より / 関連記事表示
削除チェック/

■3034  Re[1]: 変数使用時のワイルドカードの書き方
□投稿者/ 名無しぃシャープ -(2006/04/06(Thu) 16:19:43)

    分類:[VB.NET] 

    No3033に返信(tomoさんの記事)
    > System.IO.Directory.Move("C:\My Document\" & F & T, "C:\My Document\" & N & S)

    Directory.Moveメソッドではワイルドカードなんて使えないよー。
記事No.3033 のレス /0過去ログ3より / 関連記事表示
削除チェック/

■3033  変数使用時のワイルドカードの書き方
□投稿者/ tomo -(2006/04/06(Thu) 15:00:58)

    分類:[VB.NET] 


    分類:[VB.NET] 

    質問ですが・・・

    フォルダのリネームをしたいと考えています。
    F,T,N,Sは変数です。
    フォルダの数はその時々によって変わるので、このコードの中に*(ワイルドカード)を使ってあいまい検索をしたいと思っていますが、”式が必要です”というエラーが出て
    うまくいきません。
    どのように変更すればよろしいでしょうか?
    HPを見ても解りませんでした・・・。

    System.IO.Directory.Move("C:\My Document\" & F & T, "C:\My Document\" & N & S)

    宜しくお願い致します。

親記事 /0過去ログ3より / 関連記事表示
削除チェック/

■3036  Re[7]: 「画面プロパティ」の「画面の色」のビット数を取得・設定するには?
□投稿者/ nish -(2006/04/06(Thu) 17:45:53)

    分類:[C#] 

    2006/04/06(Thu) 17:59:41 編集(投稿者)
    2006/04/06(Thu) 17:53:03 編集(投稿者)

    > これの、"DisplayFrequency" を、"BitsPerPel" にしてみてください。
    ありがとうございます。
    取得はできました。

    設定時、エラーとなってしまいます。

    ManagementObjectSearcher mos =
    new ManagementObjectSearcher("SELECT * FROM Win32_DisplayConfiguration");

    foreach( ManagementObject mo in mos.Get() )
    {
    object bppObj = mo.GetPropertyValue( "BitsPerPel" );
    if( !bppObj.Equals(32) )
    {
    mo.SetPropertyValue( "BitsPerPel", 32 );
    mo.Put();
      ★エラー(実行しようとした操作はプロバイダによってサポートされていません)
    }
    }

記事No.3001 のレス /0過去ログ3より / 関連記事表示
削除チェック/

■2995  コード設定によるコントロールのアクセスについて
□投稿者/ ロボタン -(2006/04/01(Sat) 10:46:52)

    分類:[VB.NET] 


    分類:[VB.NET] 

    VB初心者です。
    同じ形式のコントロールを多数フォームに配置する場合、デザイナーで作成するより、コード記述の方が簡単と思い、下記@のように作成しました。
    このままデバッグすれば、たしかにロードされ画面上からはアクセスできます。
    しかし、同BaseForm Class上の他の場所(A)から設置したコントロール(例えばobjText(0,0))にアクセス使用とすると、「"objText"は宣言されていません」と警告されます。
    どうすればアクセスできるようになるのでしょうか?御教授宜しくお願いいたします。
    なお、BV.NET2005を使用しています。

    @ −−−−
    Public Class BaseForm
    Private Sub BaseForm_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

    Dim x0 As Integer '基準となるX座標
    Dim y0 As Integer = 0 '基準となるY座標
    Dim widthCell As Integer = 90 'セルの幅
    Dim heightCell As Integer = 20 'セルの高さ
    Dim fontCell As New Font("Arial", 9) 'フォント
    Dim colorCell As Color = Color.SteelBlue 'セルのバックカラー

    'オブジェクトの宣言
    Dim objText(3, 12) As TextBox
    'Dim i As Integer
    'Dim j As Integer

    For i As Integer = 0 To 3
    For j As Integer = 0 To 12
    objText(i, j) = New TextBox
    'オブジェクトの初期値設定
    With objText1(i, j)
    .Font = fontCell
    .ForeColor = colorCell
    .Width = widthCell
    .Height = heightCell
    .TextAlign = HorizontalAlignment.Right
    .Location = New Point(x0+widthCell*i, y0 + heightCell * j)
    End With
    'コントロールへの追加
    Controls.Add(objText(i, j))
    Next
    Next
    End Sub
    End Class

    A −−−−−−
    Public Class BaseForm
    Private Sub BaseForm_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
       @の内容
    End Sub

      objText(0,0)="A"

      Prevate Sub XXXX()
    objText(0,0)="B"
      End Sub
    End Class

親記事 /0過去ログ3より / 関連記事表示
削除チェック/

■2982  Webサーバ上に存在するGUIを持ったモジュールの起動方法?
□投稿者/ こうさん -(2006/03/29(Wed) 18:15:47)

    分類:[.NET 全般] 


    分類:[.NET 全般] 

    この提示版にはじめて投稿します。
    いろいろなところを検索してこちらにたどりつきました。
    既知の情報でしたら申し訳ありませんが、リンク先等お教えください。
    よろしくお願いします。

    内容は、プロセス (Process) に関する Tipsについて
    他のプログラムを起動する方法は、このC#, VB.NET Tipsでありますが、
    WebクライアントからWebサーバ上に存在するGUIを持った
    モジュールをサーバ上で起動したいのですが、起動までは、タスクマネジャーで
    確認できますが、GUIを表示できません。
    GUI(モジュール)は、置き去りで(起動しっ放して)OKです。

    ASPNETユーザで起動されているので
    起動時の「細かい条件を指定してプログラムを起動する」でサーバに
    ログインしているユーザ・パスワードに変更して起動すると
    エラー(0xc00000142)で起動に失敗します。

    何か他に設定する必要とか、プロセス関数でないとかの情報でも結構ですので
    お教えください。

親記事 /0過去ログ3より / 関連記事表示
削除チェック/

■2969  動作状況の表示バー
□投稿者/ たま -(2006/03/28(Tue) 05:57:36)

    分類:[VB.NET] 


    分類:[VB.NET] 

    いつもお世話になっております。
    まだプログラムを勉強し始めて2年程度ですが、
    この度、色々調べてもどうしても分からない事があるので質問させて頂きます。
    vb.netを用いてプログラムをしているのですが、
    インストール時などに、現在の動作状況がバーになって表示され、あとどれぐらいで終わるかなどが分かるようになっていますが、
    vb.netで、現在の進行状況がどれぐらいか視覚的に分かるようにするにはどうすれば良いでしょうか?

    ちなみに今回作っているプログラムは、0〜9.a〜zの文字列指定した文字数を、ランダムに指定した数だけならべ、テキストに表示するという物です。

    例>
    5桁の文字列を10コ作る
    fjiek,eresr,ople3,4jier,5ekf0,res3s,plo4l,39jfe,peore,0l6ei,

    質問内容>
    5桁の文字列を10コ作る程度でしたら、待ち時間は少ないのですが、
    30桁の文字列を1000コ作るとなると、機械が止まったのではないかと思うほどの待ち時間があるので、その際機械は正常に動いているが生成に時間が掛かっている。
    というのを視覚的に表示したいのです。
    その際、インストールなどに用いられている視覚的に分かる進行状況を表示したいと思っております。

    質問内容に誤字・脱字があって読みにくいとは思いますが
    宜しくお願いします。

親記事 /0過去ログ3より / 関連記事表示
削除チェック/

■2682  Re[16]: VC++6.0での動作につきまして
□投稿者/ Okumin -(2006/02/28(Tue) 23:02:13)

    分類:[VC++] 

    てこな様
     
      Excel掲示板では無いので、他の方にはたいへん申し訳ないのですが、
     てこな様のBについて少しだけ補足です。
      元のCSVファイルがどのようなデータか解らないので微妙なのですが、
     区切り方法が常に一定しているのなら、例えば次のように書いておいて
     ボタンか何かに割り当てておけば、テキストファイルウィザードの
     区切り方法指定の部分は自動化できます。

     Sub Sample()

     '変数宣言
     Dim strFileName As String

      'ドライブを指定(Cドライブの例)
     ChDrive "C"

     'フォルダを指定(ルートディレクトリの例)
     ChDir "C:\"

     'ファイル名を取得(「ファイルを開く」ウィザードをフィルタありで起動)
     strFileName = Application.GetOpenFilename("CSVファイル,*.csv,テキストファイル,*.txt")

     'エラー対策(キャンセルされた時は処理を中止する)
     If strFileName = "False" Then Exit Sub

      '画面描画更新を停止(処理速度向上のため)
      Application.ScreenUpdating = False

     'テキストファイルを開く(カンマ区切り、連続区切り文字は無効、文字列を""で囲んでいる場合。これと異なる場合は自動記録を取ってみて下さい。)
     Workbooks.OpenText Filename:=strFileName, _
     DataType:=xlDelimited, Comma:=True, _
    ConsecutiveDelimiter:=False, _
    TextQualifier:=xlDoubleQuote

       '開いたブックがアクティブになるので、そのまま置換。
     Range("A1:E100").Select
     Selection.Replace What:="'", Replacement:=""
     Range("A1").Select

     Application.ScreenUpdating = True

    End Sub

     もし区切り方が何タイプかあるなら、その数だけ書き分けておいて、
     事前に InputBox でタイプを番号指定させる、といった方法も取れますね。
記事No.2593 のレス /0過去ログ3より / 関連記事表示
削除チェック/

■2636  Re[13]: VC++6.0での動作につきまして
□投稿者/ 柘植 -(2006/02/24(Fri) 00:34:49)

    分類:[VC++] 

    2006/02/24(Fri) 00:37:45 編集(投稿者)

    あ、どうも。柘植です。
    思い通りいったようですね。おめでとうございます。

    で、てこなさんの長〜いお返事、ざっと読ませていただきました。
    どうやら、「CSVファイルをエクセルで開いたときに何が起こっているか」、「エクセルから保存の操作をしたときに何が起こっているか」ということが全く分かっていらっしゃらないようですね。(CSVファイルとエクセルのファイルの違いもわかっていないご様子)
    簡単に少しだけ説明しますと、ダブルクリックでCSVファイルを開いた場合、カンマで区切られた項目について、エクセルが勝手に処理を施しています。
    例えば、
    「住所」,「番地」というレイアウトの住所録をCSVで作ったとして、

    1件目:C県D町,12-3Eアパート6号室
    2件目:A県B町,1-1

    の2件のデータだったとします。
    これをダブルクリック等でエクセルで開くと、2件めの2項目めは「エクセルが勝手に」日付と判断して、「平成18年1月1日」とか表示してくれるはずです。(未確認)
    それをそのまま保存すれば、当然データは

    1件目:C県D町,Eアパート6
    2件目:A県B町,平成18年1月1日

    自分は会社の健康診断担当者さんとか地方自治体職員さんとか相手の仕事が多かったもので、データとしてこういったものをもらってよく泣いています。(汗)

    掲示板で全部説明するのは無理ですし、場合によっては某電気屋さんのパソコン教室で金とって教えてる内容な気がするので、このようなヒント程度にとどめておきます。(掲示板で質問しなくても勉強できるはずだと思います。google先生と1日語り合ってみるとか)

    ちなみに、中博俊さんご指摘の

    >そのCSV使い物にならなさそうな感じはしますが(^^;

    に関しては、エクセルで開く以外には使えない、という意味です。
    折角VC++の勉強をしてらっしゃるのですから、CSVファイルを読み込んで集計するプログラムでも作ってみてはいかがでしょう?
    で、サンプルデータの中に
    ="1001011101100001100"
    の形で出力したデータが紛れ込んでいたら、、、(創造するだけで恐ろしい。そんな仕事したくない、、、)
    ついでにこんなデータを入れておくと更に勉強になるでしょう。
    1200,"1200",'1200,'1,200,="1200",="1,200"

    か、可能な限り手短にレスしたつもりです、、、

    では、がんばってください。
記事No.2593 のレス /0過去ログ3より / 関連記事表示
削除チェック/

■2634  Re[12]: VC++6.0での動作につきまして
□投稿者/ てこな -(2006/02/23(Thu) 22:23:00)

    分類:[VC++] 

    こんばんは、てこなです。

    ご指摘くださったみなさま、大変お待たせして申し訳ございません。
    この文章を作成した際は整形してますが、掲示板に反映した際正しく
    表示される自身がなく、その点におきましてご容赦頂ければ幸いです。
    (正しくとは、段落とか etc)

    まず管理者様へ
    結論と致しましては「解決」ですが、まだてこなにご指摘くださった方へ
    調査し可能ならば報告したいと考えておりまして、
    それが報告できた(できないと判断した)際に「解決(表示)」をしたいと考えておりますがいかがでしょう
    か?
    投稿した当初は削除命令が来るのではないか・・と、ビクビクしておりましたが、
    今となって、てこなにこのような機会を与えてくださり、まことにありがたく思って
    おります。

    ご指摘くださったみなさまへ
    皆様のご指摘内容は、次の<試行錯誤>に記載してありますが、
    指摘したとおり認識してくれてない!などございましたら、
    よろしければ再度ご指導頂ければ幸いなのですが・・・・・、
    皆様の貴重なお時間をこれ以上割いていただくのも申し訳ないようにも感じます・・
    ・・。
    相変わらずうまく表現できず、みなさまに伝わっているか大変不安ではありますが、
    あくまで、みなさまの都合最優先で、
    もし都合がよろしければご指南していただけるとうれしいです。

    急いでおりませんので、お手すきの際にでもご指南していただけると幸いです。
    よろしくお願い致します。

    「解決」を表示させるタイミングで再度お礼申し上げたいと思っております。


    <試行錯誤>

    【L/Dさまご指摘につきまして】

    L/Dさまのご指摘にしたがって確認したつもりですが、認識の相違などございました
    ら、
    その都度よろしければご指摘をお願い致します。

    ⇒ 下記ファイル(txt)を作成し、次のように作業をしてみました。
    (1レコードにカンマで区切られた2つのデータ × 4レコード)

    1001011101100001100,1001011101100001100, // 現状のCSV
    '1001011101100001100,1001011101100001100, // 前のみシングルクォート付加
    1001011101100001100,'1001011101100001100, // 後のみシングルクォート付加
    '1001011101100001100,'1001011101100001100, // 前後ともに付加

     ダブルクリックで開かずに、
     [データ]-[外部データの取り込み]-[テキストファイルのインポート]で実行してみ
    ました。
     テキストファイルウィザードが起動しまして、
    1/3 [ データのファイル形式:カンマや〜を選択 ]
    2/3 [ 区切り文字:カンマにチェック ]-[ 文字列の引用符:『'』シングル
    クォート選択 ]
    3/3 [ 完了]
     
     文字列の引用符の指定(2/3)において、次の観点から実行してみました。
    @『'』シングルクォートを選択しない場合
    <結果:セル表示>
    A        B
    1 1.00101 E+18        1.00101 E+18
    2 '1001011101100001100        1.00101 E+18
    3 1.00101 E+18        '1001011101100001100
    4 '1001011101100001100        '1001011101100001100

    ・セルA1をクリックして数式バーに内容を表示させてみると、
     「1001011101100001100」→「1001011101100000000」となりデータが欠落して
     しまってますが、セルA2では『'』シングルクォートにより、データが欠落し
    ていませんでした。

    A『'』シングルクォートを選択する場合
    <結果:セル表示>
    A        B
    1 1.00101 E+18        1.00101 E+18
    2 1001011101100001100,1001011101100001100,        なし
    3 1.00101 E+18        1001011101100001100,
    4 10,010,111,011,000,000,000,000,000,000,000,000,000,        なし

    ・セルA1をクリックして数式バーに内容を表示させてみると、
     「1001011101100001100」→「1001011101100000000」となりデータが欠落して
     しまってます。
    ・セルA2はデータが削られていないものの、
     1つ目と2つ目の間のカンマは区切り文字として認識されていないように感じました。
    ・セルA4ですが、書式が自動的に通貨になってしまい・・・・・
     セル8個の書式を全て確認しましたが、セルA4以外は標準でした。
     セルA4の書式を標準に戻しても、1.0010111011E+37となり・・・・・
    ・セルB2とセルB4は空でした。

    <考察>
    『'』シングルクォートを付加することで、データの欠落はなくなったように感
    じていたのですが、
    考慮が漏れていまして、連続するデータの場合思惑通りにいかない様に感じまし
    た。

    【Okuminさまご指摘につきまして】

    『'』シングルクォートを外すマクロ(VBA)のようですが、
    てこなの認識が間違っていたらその都度ご指摘をお願い致します。

    記載してくださったマクロで範囲は別途拾うとして、
    『'』シングルクォートを消すことは出来ると思いますし、
    やり方として、次のように感じました。

    @CSVファイルをダブルクリックEXCELに展開し、マクロを記述して実行させ
    る。
    この場合マクロになれていない方がCSVファイルの中身を参照するには、
    少し手間がかかってしまうような気がしました。

    A先にマクロを登録しているEXCELファイルを作成しておいて、
    CSVファイルをマクロ登録済みファイルにドラッグ・・・・・できませんでし
    た。

    B先にマクロを登録しているEXCELファイルを作成しておいて、
    作成したEXCELファイルをダブルクリックして、[ファイル]-[開く]で対象CSVを開
    き、
    展開が終わったら、マクロを実行する。
    但し、対象のCSVファイルを開く際に、テキストファイルウィザードが立ち上
    がり、
    区切り方法を設定しなければならなく、出来ればその辺の操作は避けたいと感じ
    ています。
    (避けたい→てこながやる分には問題ないのですが、
     てこな以外の使用者を考慮・・・・・考慮できるほどの実力がてこなにはない
    ような・・・・)

    Okuminさまはマクロに詳しそうなので、恐縮ですがよろしければお伺いさせてくださ
    い。
    C(コンソールアプリ程度のLV)でEXCELを操作することは出来るのでしょう
    か?
    操作というのは、単に「cells(1,1).value = "お願いします"」や「マクロの自動記
    述」、
    出来れば「マクロ実行と同様の動きを行わせる」など・・・・
    インターネットで検索してもなかなか望みどおりのページを見つけることが出来ませんでした。
    CとEXCEL関連の参考書もいろいろ探してみましたが、見つけることが出来ませんでし
    た。

    余談ですが、
    前にマイクロソフトの技術者情報?で、「VC++6.0 MFCでEXCELを作成するには・・
    ・(英語)」を
    見つけることが出来たぐらいです。
    (この記事がCを始めたきっかけの1つです。完全な機能を有するEXCELではなく、
     セル構造と列の最大256を増やしたい。EXCELがインストールされていなくても
    表示ぐらいは
     出来るようなEXCELもどき?がつくれれば、どんなに業務的に楽になるか・・・・
    ・って考えてました。
     そのようなフリーソフトも見つけることが出来ず(インストール有はありましたが、

     インストール無は見つけることが出来ませんでした)・・・・・些細な情報でも構いませんのでよろしければ
    ご指摘いただければ、
     うれしいです)
    閑話休題(とりあえずMFC関連と思いますので)

    ロータス云々の話はとても興味深かったです。
    周りにこういう背景を知っている方が殆どおらず、非常にためになりました。
    ありがとうございます。

    【中博俊さまご指摘につきまして 】

    申し訳ございません。
    ご気分を害されないかとても不安ですが、わからないことを放置するのがちょっと嫌
    なので、
    書きます。ご指摘内容で「正常な『'』」という表現が勉強不足でちょっとピンとき
    ていません。
    皆様がご指摘してくださった内容の検証は、業務の合間などで時間を見つけて
    進めることが出来るのですが、平日は調査(書店で参考書を漁ったり)する時間が取
    れそうもなく、
    週末日曜でもお休みが取れれば、読み漁ってこようと思いますので、
    検証は少しお時間を頂ければと思い書き込ませていただきました。

    【柘植さまご指摘につきまして】

    「Excelファンクラブ」はてこなもよく拝見させていただいているサイトです。
    特にVBA関連では大変勉強になりました。

    「="」で実施してみました。思惑通りにいきました。ありがとうございます。

    当初の目的が、汎用ホストの帳票を紙に出力した場合大量になってしまい、
    見づらいのでEXCELで見やすく出来れば・・・でしたので、大変感謝しております。

    ただ、中博俊さまがご指摘してくださっている「そのCSV使い物にならなさそう」・
    ・・
    というのが気になり次のような検証をして見ました。そもそも認識が違う!!
    とかございましたら、適宜お手すきの際にご指摘いただけると幸いです。

    ⇒ 次のようなCSVファイルを作成しました。

    ="1001011101100001100",="1001011101100001100"

    そのCSVファイルをダブルクリックし、EXCELに展開しますと次のように表示され
    ます。
    <結果:セル表示>
    A        B
    1 1001011101100001100        1001011101100001100

    セルA1をクリックして数式バーを見ると、「="1001011101100001100"」となって
    います。

    但し、そのまま保存しようとすると「〜CSV(カンマ区切り)と互換性のない機能が含まれて〜」
    との警告が出て、
    そのまま保存すると、次のようになってしまいます。
    (機能を保存するには、「いいえ」をクリックしてから、最新のExcelのファイル形
    式で保存します。
     とありますが、最新のExcelファイルっていったい・・・・)

    保存ファイルをテキストエディタで参照してみると、

    1001011101100001100,1001011101100001100

    となってしまい、このCSVファイルをダブルクリックしEXCELに展開すると次のよ
    うになってしまいます。
    <結果:セル表示>
    A        B
    1 1 E+18        1 E+18

    セルA1をクリックし、数式バーで確認してみると、
     「1001011101100001100」→「1001011101100000000」となりデータが削られて
    しまいます。

    <考察>
    表示するまでは正しく見えるが、表示されているデータを修正して保存して
    しまうと、
    CSVファイルとしては使い物にならなくなってしまう・・・・・・で認識
    はよろしいのでしょうか?

    【daisukyさまご指摘につきまして】

    テキストファイルの作成〜のご指示通り実施し、思惑通りの表示内容になることが確
    認できました。ありがとうございました。

    また、「再現できなかった」とご指摘がございましたが、申し訳ございません。
    てこなの方で値(桁数)はあまり影響がないような気がしまして、
    ご指摘を下さる方に対し少しでも負担を減らせないかと、
    簡略してしまいました。事象が出てしまったケースとは異なる記載をしておりまし
    た。
    申し訳ございません。てこなの考えが間違っておりました。

    記載ケース        事象ケース
    「10000000300」 → 「1001011101100001100」 でよろしければお願い致します。

    お手数おかけいたしまして、申し訳ございませんでした。

    以上

記事No.2593 のレス /0過去ログ3より / 関連記事表示
削除チェック/

■2628  Re[10]: VC++6.0での動作につきまして
□投稿者/ daisuky -(2006/02/22(Wed) 14:42:02)

    分類:[VC++] 

    一度に書かずスイマセン。
    ぜひとも、テキストファイルを作成して、

    10000000300,="10000000300"

    とだけ記載して、ANSI文字コードにて、.csvの形式で保存して実行していただきたいと思います。
    その差を埋める対処をすれば解決…かと。
記事No.2593 のレス /0過去ログ3より / 関連記事表示
削除チェック/

■2627  Re[9]: VC++6.0での動作につきまして
□投稿者/ daisuky -(2006/02/22(Wed) 14:34:13)

    分類:[VC++] 

    はじめまして。

    ははは。
    ="10000000300"は、どんな動作するのだろう?
    と思い、やってみました。そういう数式ということですね。
    アイディアな解決策ですね。

    冒頭の問題ですが、柘植(つげ)さん同様、私のところでも再現できなかったですよ。
    丸め誤差とおっしゃっているところで軽くネットを調べると、やはり、
    それは小数点のお話。
    Windows2000, Excel2000SP3です。
    デフォルトから設定をいじってませんが、指数表示は1E+10と表示されています。
    文字の書式系の問題?でしょうか。あるいは、少数が含まれるデータのお話?
    なにかの環境依存が発生しているように感じます。
記事No.2593 のレス /0過去ログ3より / 関連記事表示
削除チェック/

■2620  Re[7]: VC++6.0での動作につきまして
□投稿者/ 柘植 -(2006/02/21(Tue) 23:28:07)

    分類:[VC++] 

    はじめまして。柘植(つげ)と申します。

    ="1000000300"

    と出力されてはいかがでしょう?
    ダブルクリックで(エクセルで)開くことを前提にするなら上手く行くと思います。

    自分も仕事で、「csvで出力するが、お客様はダブルクリックで開くに違いない」ものを出力しないといけなくて、

    Excelファンクラブ

    というサイトで調べた結果、そういうカキコを見つけたもので。ご参考になれば。

    ちなみに、自分の環境(OS:Win2000、Office2000)で、メモ帳で以下のように記述し、ダブルクリックで開いたら2つとも「10000000300」だったんですが、、、

    10000000300,="10000000300"


記事No.2593 のレス /0過去ログ3より / 関連記事表示
削除チェック/

■2616  Re[5]: VC++6.0での動作につきまして
□投稿者/ Okumin -(2006/02/21(Tue) 00:11:22)

    分類:[VC++] 

    間違っていたらすみません。Excel上で次のようなマクロを走らせれば
    良いだけのことではないのでしょうか?

     Sub 置換()
       Range("A1:E100").Select
       Selection.Replace What:="'", Replacement:=""
     End Sub

    ちなみに「Excel上で直接シングルクォートを追加」した場合は、そのセルの値は
    数値ではなく文字列の扱いとなります。これはもともとは Lotus1-2-3 の書式
    です。Lotusでは文字列の前に自動的にシングルクォートが置かれるのですが、
    Microsoft が Lotusユーザーを取り込むために互換性を持たせていて、
    手動でこのような入力をしても、シングルクォートが表示されないように
    配慮されているわけです。
記事No.2593 のレス /0過去ログ3より / 関連記事表示
削除チェック/

■2907  Re[1]: カンマをつける方法
□投稿者/ はいこーん -(2006/03/24(Fri) 11:26:04)

    分類:[VB.NET] 

    No2906に返信(J.Tさんの記事)
    > こんにちは。
    > Labelテキストに表示されて数字にカンマ(金額方式)をつけたいのですが
    > どのような方法があるのでしょうか?調べているのですがどうもみつからなくて
    > 困っています。どなたか教えて頂けないでしょうか。
    > 宜しくお願い致します。

    たとえば、
    String.Formatメソッド。
    数値型.ToString("#,##0")メソッド。
記事No.2906 のレス /0過去ログ3より / 関連記事表示
削除チェック/

■2870  Re[1]: フォーム内のライン
□投稿者/ YAS -(2006/03/20(Mon) 14:00:18)
>

    分類:[VB.NET] 

    YYさん,こんにちは。
    再表示しても消えないようにする例です。

    Me.BackgroundImage = New Bitmap(Me.Width, Me.Height)
    Dim g As Graphics = Graphics.FromImage(Me.BackgroundImage)
    g.DrawLine(Pens.Black, 0, 0, Me.Width, Me.Height)

記事No.2869 のレス /0過去ログ3より / 関連記事表示
削除チェック/

■2858  Re[2]: ドラッグ&ドロップでパス取得
□投稿者/ YAS -(2006/03/19(Sun) 23:23:34)

    分類:[C#] 

    「Visual Basic .NET アプリケーションでファイルのドラッグ アンド ドロップ機能を提供する方法」で,

    Dim s() As String = e.Data.GetData("FileDrop", False)

    という行があるが,

    Dim s() As String = e.Data.GetData(DataFormats.FileDrop, False)

    と書かない理由が何かあるのだろうか?(無いと思うけど...)
記事No.2856 のレス /0過去ログ3より / 関連記事表示
削除チェック/

■2829  C# .NET 通信相手のIPアドレスを取得したいのですが・・
□投稿者/ ななしさん -(2006/03/14(Tue) 16:34:51)

    分類:[C#] 


    分類:[C#] 

    教えてください(><)

    .NETのC#でTcpListener,TcpClientクラスを使用して通信アプリを作成しています。
    単純なデータの送信・受信は可能なのですが、受信したデータ(またはストリームとか?なんでもいいけど。)などから送信元のIPアドレスなどを調べられなくて困っています。
    通信のIPプロトコルのヘッダーには送信元・宛先IPアドレスがあるはずなので、見れないということはないと思うのですが、参照する方法が不明です。

    もしよろしければ解決方法をご教授お願いいたします。
    よろしくお願いします。
親記事 /0過去ログ3より / 関連記事表示
削除チェック/

<前の20件 | 次の20件>

<< 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 >>

ヒット件数が多いので過去ログ1〜3 までの検索結果 / 過去ログ4からさらに検索→

パスワード/

- Child Tree -