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

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

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

全過去ログを検索

<< 0 >>
■77607  ファイル 構造体 配列
□投稿者/ しむ -(2015/11/07(Sat) 22:49:03)

    分類:[.NET 全般] 

    __**###イタリックテキスト**__以下の課題がわからなくて困っています。
    ファイルを読み込んで、条件に合うようにしたいです。
    また、結果は新しいファイルに出力するみたいです。

    -条件-
    トランザクションのファイルの番号のみ→消す
    masterにない番号は、トランザクション(文字列)を丸ごと追加



    構造体を使う
    1個の関数は、60行まで
    scanf禁止(fgets等)


    ●master.dat
    00001,akai fumihito,akai@xxxxx.xx.jp
    00002,ando yuki,ando@xxxxx.xx.jp
    00003,ishikura toshiyuki,ishikura@xxxxx.xx.jp
    00004,inoue miyuki,inoue@xxxxx.xx.jp
    00005,iwata tomohiro,iwata@xxxxx.xx.jp
    00006,ueda hiroshi,ueda@xxxxx.xx.jp
    00007,osada kinya,osada@xxxxx.xx.jp
    00008,odagiri daisuke,odagiri@xxxxx.xx.jp
    00009,katsumata sakura,katsumata@xxxxx.xx.jp
    00010,kumagai yuki,kumagai@xxxxx.xx.jp
    00011,kobayashi yuki,yukikoba@xxxxx.xx.jp
    00012,kobayashi yuta,yutakoba@xxxxx.xx.jp
    00013,saito naoya,saito@xxxxx.xx.jp
    00014,saito noritaka,sato@xxxxx.xx.jp
    00015,shimura chie,simura@xxxxx.xx.jp
    00016,sugihara takashi,sugihara@xxxxx.xx.jp
    00017,chino kota,chino@xxxxx.xx.jp
    00018,nakajima ayumu,nakajima@xxxxx.xx.jp
    00019,natori hisao,natori@xxxxx.xx.jp
    00020,nozawa ruriko,nozawa@xxxxx.xx.jp
    00022,hihara yoshiyuki,hihara@xxx.xx.jp
    00023,fujie mayumi,fujie@xxxxx.xx.jp
    00024,fujimaki hiroyuki,fujimaki@xxxxx.xx.jp
    00025,miura tsunayuki,miura@xxxxx.xx.jp
    00026,mochiduki hideaki,mochiduki@xxxxx.xx.jp
    00027,yazawa akihiko,yazawa@xxxxx.xx.jp
    00028,yokomori chigusa,yokomori@xxxxx.xx.jp
    00029,watanabe akira,awatanabe@xxxxx.xx.jp
    00030,watanabe kentaro,kwatanabe@xxxxx.xx.jp

    ●trasaction.dat
    00003
    00004,inoue sachi
    00007,,nagata@xxxxx.xx.jp
    00018,nakadori ayumu,nakadori@xxxxx.xx.jp
    00021,hatayama yurika,hatakeyama@xxxxx.xx.jp
    00022,hinohara yoshiyuki,hinohara@xxx.xx.jp
    00026
    00029
    00030,watanabe kenjiro
    00031,yoshimura yoshikazu,yoshimura@xxxxx.xx.jp


    この2つを読み込む

    プログラム的には、
    1.ファイル読み込み
    2.ファイルを配列に入れる
    3.配列で比較
    -条件-
    トランザクションのファイルの番号のみ→消す
    masterにない番号は、トランザクション(文字列)を丸ごと追加

    4.新しいファイルに結果を入れる
    5.ファイルを閉じる

    構造体では、
    変更、追加、消去

    になると思います。提出期限がまじかで焦っています。

    #include<stdio.h>
    #include<string.h>
    #define BANGO 50
    #define NAME 50
    #define ADORESU 50
    #define NUM 100

    struct File
    {
    int bango[BANGO];
    char name[NAME];
    char adoresu[ADORESU];
    };

    int main(void)
    {

    char str[NUM];
    int i;
    FILE *fp,*fp2,*fp3,*p1,*p2;

    fp = fopen("master.dat","r");

    if(fp == NULL)
    {
    return 1;
    }
    printf("ファイルをオープンしました\n");

    fp2 = fopen("transaction.dat","r");

    if(fp2 == NULL)
    {
    return 2;
    }
    printf("ファイルをオープンしました");

    fp3 = fopen("result.dat","w");

    if(fp3 == NULL)
    {
    return 3;
    }
    printf("ファイルをオープンしました");

    //while (fgets(str, NUM, fp1) != NULL && fgets(str, NUM, fp2) != NULL)
    {

    /*while((fgets(str,NUM,fp))!=NULL)
    {
    printf("%s",str);
    fputs(str,fp3); */
    }
    }
    fclose(fp);
    fclose(fp2);
    fclose(fp3);

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

■90414  Re[1]: 引数のあるメソッドをメソッドに渡す
□投稿者/ 魔界の仮面弁士 -(2019/03/09(Sat) 13:11:11)
    2019/03/09(Sat) 13:26:31 編集(投稿者)

    No90412 (B.B さん) に返信
    > delegate int SimpleFunc(int x);
    > private int hogeMethod(SimpleFunc func)

    .NET Framework 3.5 以降をお使いであれば、Func<> や Action<> が用意されているので、
      private int hogeMethod(Func<int, int> func)
    で済ますこともできますね。


    > しかしデリゲードはなかったことにしろという文言をよく見かけます
    デリゲート(delegate)ですよ;
    デリゲードでもデリケートでも無く。


    > #90396で教えていただいた
    > isSuccessful = hogeMethod(() => Method3("ほげほげ"));
    > のようなラムダ式での記述の仕方を教えて欲しいのです

    どの部分を書き換えたいのかが読み取れなかったのですが、
    > private int method1(int i)
    > {
    >   i = i * 2;
    >   return i;
    > }
    については、「式形式」のメソッドで書けます。


    // 要 C# 6.0 以降
    private int method1(int i) => i * 2;


    hogeMethod(SimpleFunc func) の書き換えなら、
     private int hogeMethod(SimpleFunc func) => func(10);
     private int hogeMethod(SimpleFunc func) => (func ?? delegate { return -1; })(10);
     private int hogeMethod(SimpleFunc func) => func?.Invoke(10) ?? -1;
     private int hogeMethod(SimpleFunc func)=> func != null ? func(10) : throw new ArgumentNullException(nameof(func), "引数が空やで");
    とか。


    button1 での「int result = hogeMethod(method1);」のところで
    method1 メソッドを定義せずに呼び出したいなら、

    // 要 C# 2.0 以降
    SimpleFunc proc = new SimpleFunc(delegate(int i) { i *= 2; return i; });
    int result = hogeMethod(proc);

    // 要 C# 2.0 以降
    SimpleFunc proc = delegate(int i) { i *= 2; return i; };
    int result = hogeMethod(proc);

    // 要 C# 3.0 以降
    SimpleFunc proc = (int i) => { i *= 2; return i; };
    int result = hogeMethod(proc);

    // 要 C# 3.0 以降
    SimpleFunc proc = (i) => { i *= 2; return i; };
    int result = hogeMethod(proc);

    // 要 C# 3.0 以降
    SimpleFunc proc = i => { i *= 2; return i; };
    int result = hogeMethod(proc);



    // 要 C# 2.0 以降
    SimpleFunc proc = delegate(int i) { return i * 2; };
    int result = hogeMethod(proc);

    // 要 C# 2.0 以降
    int result = hogeMethod(delegate (int i) { return i * 2; });

    // 要 C# 3.0 以降
    SimpleFunc proc = i => { return i * 2; };
    int result = hogeMethod(proc);

    // 要 C# 3.0 以降
    int result = hogeMethod(i => { return i * 2; });

    // 要 C# 3.0 以降
    int result = hogeMethod(i => i * 2);
記事No.90412 のレス /過去ログ156より / 関連記事表示
削除チェック/

■90417  Re[2]: 引数のあるメソッドをメソッドに渡す
□投稿者/ B.B -(2019/03/09(Sat) 16:18:41)
    2019/03/09(Sat) 16:19:34 編集(投稿者)

    No90414 (魔界の仮面弁士 さん) に返信
    > .NET Framework 3.5 以降をお使いであれば、Func<> や Action<> が用意されているので、
    >   private int hogeMethod(Func<int, int> func)
    > で済ますこともできますね。

    デリゲート(*/∇\*)

    やりたいことが提示できてなかったようで申し訳ありあません

    delegate int SimpleFunc(int x);
    この記述を書きたくないということでした。

    private int hogeMethod(Func<int, int> func)で解決しました、ありがとうございました。


    private void button1_Click(object sender, EventArgs e)
    {
    int result = hogeMethod(method1);
    MessageBox.Show(result.ToString());
    }

    private int hogeMethod(Func<int, int> func)
    {
    int a = 10;
    return func(a);
    }

    private int method1(int i)
    {
    i = i * 2;
    return i;
    }
記事No.90412 のレス / END /過去ログ156より / 関連記事表示
削除チェック/

■101314  コントロールの文字列指定について
□投稿者/ ktad -(2023/02/03(Fri) 11:13:34)

    分類:[C#] 

    Visual Studio C#です。

    下記のようにコントロールを文字列で指定して使用したいのですが、※1で「割り当て、呼び出し、インクリメント、デクリメント、および新しいオブジェクトの式のみがステートメントとして使用できます。」となってしまいます。

    for (int cn = 0; cn < 4 ; cn++)
    {
    Control cnt = this.Controls["comboBox_a" + cn.ToString()];
    (ComboBox)cnt.Items.Add("aaa");  ※1
    }

    解決策を教えてください。
    よろしくお願いいたします。
親記事 /過去ログ176より / 関連記事表示
削除チェック/

■101591  VBAでエクセルのシートを変更して保存したい
□投稿者/ 一二三 -(2023/03/17(Fri) 17:23:43)

    分類:[.NET 全般] 

    掲題の通りなのですが、特定のフォルダ内にある、大量のEXCELファイルがあり、そのEXCELを開いた時に最初に開かれるシートがバラバラな状態です。
    全て1番目のシートに変更したいのですが、どのようにすればよろしいでしょうか。
親記事 /過去ログ177より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -