◀ANSI版開発トップへ
  • 2321 CLayoutMgr_2002-09-24.zip
    • 2322 RE: CLayoutMgr_2002-09-23.zip
      • 2325 Re2: CLayoutMgr_2002-09-23.zip
        • 2326 Re3: CLayoutMgr_2002-09-23.zip
    • 2327 Re: CLayoutMgrをちょっと整理しました
      • 2330 Re2: CLayoutMgrをちょっと整理しました
        • 2331 Re3: CLayoutMgrをちょっと整理しました
        • 2349 Re3: CLayoutMgrをちょっと整理しました
          • 2351 Re4: CLayoutMgrをちょっと整理しました
  • [2321] CLayoutMgr_2002-09-24.zip やざき 2002年09月23日 00:40


    お久しぶりですっ。
    CLayoutMgrをちょっと整理しました。
    取り込んでいただきたく。
    • [2322] RE: CLayoutMgr_2002-09-23.zip やざき 2002年09月23日 01:32


      ファイルは、eGroupにアップロードしてあります。
      #日付が間違っていたので変えました(汗

      よろしくお願いいたします。
      • [2325] Re2: CLayoutMgr_2002-09-23.zip げんた 2002年09月23日 03:39

        BlockComment.cppとLineComment.cppが抜けてません?

        BlockComment.cpp.objとかいうのがMakefileに入ってるし.
        • [2326] Re3: CLayoutMgr_2002-09-23.zip やざき 2002年09月23日 11:10

          >タイトル: Re3: CLayoutMgr_2002-09-23.zip
          >発言者: げんた
          >BlockComment.cppとLineComment.cppが抜けてません?
          >
          >BlockComment.cpp.objとかいうのがMakefileに入ってるし.

          !!失礼しました。
          BlockComment.hとLineComment.hも抜けてますね。
          ということで、アップロードしなおしました。
          よろしくお願いします。
    • [2327] Re: CLayoutMgrをちょっと整理しました げんた 2002年09月23日 18:53

      ▼CBlockComment, CLineCommentについて
      CBlockComment::MatchComment_From()の番号を指定しない版がどのタイプのコメントが見つかったかを返さないのはちょっと使えないとおもう.(事実どこでも使われていない)
      CLineComment::Match()でもどれに一致するのかを何らかの方法で返した方がよい.

      CBlockComment::Match_CommentFrom()で毎回strlenで長さを取得しなくて良いようにどこかに値を覚えておいた方がよいように思う.

      CopyTo()で文字列が長すぎて失敗したとき,中身を空にしてしまうのはどうか.また,失敗したことを戻り値で返した方がよいのでは?

      CShareDataをフレンドクラスにしている理由が無いように思える.

      ▼CLayoutMgr
      コンストラクタでm_cLineComment, m_cBlockCommentにパラメータを与えないならわざわざ初期化リストに書く意味がない.
      • [2330] Re2: CLayoutMgrをちょっと整理しました やざき 2002年09月23日 23:02


        >▼CBlockComment, CLineCommentについて
        >CBlockComment::MatchComment_From()の番号を指定しない版がどのタイプのコメントが見つかったかを返さないのはちょっと使えないとおもう.(事実どこでも使われていない)

        あー、そうですね。使ってないので消してもいいです。おまかせします。


        >CLineComment::Match()でもどれに一致するのかを何らかの方法で返した方がよい.

        使わないからいりません。使うようになったら付けましょう。


        >CBlockComment::Match_CommentFrom()で毎回strlenで長さを取得しなくて良いようにどこかに値を覚えておいた方がよいように思う.

        確かに!!
        元のコードをコピー&アレンジしただけでそこまで気が付きませんでした!!
        private変数で用意して、CopyToでコピーしたときにstrlenすればいいですね。
        よろしくお願いします。


        >CopyTo()で文字列が長すぎて失敗したとき,中身を空にしてしまうのはどうか.

        空にしているような気もしますが、今のコードとは違うのですか?


        >また,失敗したことを戻り値で返した方がよいのでは?

        使わないからいりません。


        >CShareDataをフレンドクラスにしている理由が無いように思える.

        iniファイルへの書き込みがめんどくさいと思ったのですが、よりよい方法があれば、お願いしますです。


        >▼CLayoutMgr
        >コンストラクタでm_cLineComment, m_cBlockCommentにパラメータを与えないならわざわざ初期化リストに書く意味がない.

        まぁ、もともとコンストラクタで初期化されていたから、そのうちm_cLineComment、m_cBlockCommentも初期化する必要がでてくるかもしれないしってことで、別に無駄なコードが入るわけではない(よね?)と思ったので、付けておいてもいいのでは。
        コードのバイト数を減らしても意味が無いし。

        ということですが、いかがでしょうか。
        • [2331] Re3: CLayoutMgrをちょっと整理しました げんた 2002年09月23日 23:13

          どうもありがとうございました.次回には取り込みたいと思います.
        • [2349] Re3: CLayoutMgrをちょっと整理しました やざき 2002年09月28日 23:29


          すいさんに指摘していただいた色の件です。


          >>CBlockComment::Match_CommentFrom()で毎回strlenで長さを取得しなくて良いようにどこかに値を覚えておいた方がよいように思う.
          >
          >確かに!!
          >元のコードをコピー&アレンジしただけでそこまで気が付きませんでした!!
          >private変数で用意して、CopyToでコピーしたときにstrlenすればいいですね。
          >よろしくお願いします。

          CopyToでstrlenする方法だとiniファイルを読み込んだときに、CopyToが呼ばれないからstrlenされない
          ので↓こんな感じで修正してくださいませ。(こんな方法でいいのかどうかはさておき)

          diff -rc E:\サクラエディタ\ssrc_2002-09-27_org/sakura_core/CShareData_new.cpp E:\サクラエディタ\ssrc_2002-09-27/sakura_core/CShareData_new.cpp
          *** E:\サクラエディタ\ssrc_2002-09-27_org/sakura_core/CShareData_new.cpp Fri Sep 27 03:53:40 2002
          --- E:\サクラエディタ\ssrc_2002-09-27/sakura_core/CShareData_new.cpp Sat Sep 28 14:22:46 2002
          ***************
          *** 709,714 ****
          --- 709,719 ----
          cProfile.IOProfileData( bRead, pszSecName, "szLineComment" , REGCNV_SZ2SZ, (char*)/*&*/m_pShareData->m_Types[i].m_c
          LineComment.m_pszLineComment[0], 0 );
          cProfile.IOProfileData( bRead, pszSecName, "szLineComment2" , REGCNV_SZ2SZ, (char*)/*&*/m_pShareData->m_Types[i].m_c
          LineComment.m_pszLineComment[1], 0 );
          cProfile.IOProfileData( bRead, pszSecName, "szLineComment3" , REGCNV_SZ2SZ, (char*)/*&*/m_pShareData->m_Types[i].m_c
          LineComment.m_pszLineComment[2], 0 ); //Jun. 01, 2001 JEPRO 追加
          + if (bRead){
          + m_pShareData->m_Types[i].m_cLineComme
          nt.m_nLineCommentLen[0] = lstrlen( m_pShareData->m_Types[i].m_cLineComment.m_pszLineComment[0] );
          + m_pShareData->m_Types[i].m_cLineComme
          nt.m_nLineCommentLen[1] = lstrlen( m_pShareData->m_Types[i].m_cLineComment.m_pszLineComment[1] );
          + m_pShareData->m_Types[i].m_cLineComme
          nt.m_nLineCommentLen[2] = lstrlen( m_pShareData->m_Types[i].m_cLineComment.m_pszLineComment[2] );
          + }
          cProfile.IOProfileData( bRead, pszSecName, "szBlockCommentFrom" , REGCNV_SZ2SZ, (char*)/*&*/m_pShareData->m_Types[i].m_c
          BlockComment.m_szBlockCommentFrom[0], 0 );
          cProfile.IOProfileData( bRead, pszSecName, "szBlockCommentTo" , REGCNV_SZ2SZ, (char*)/*&*/m_pShareData->m_Types[i].m_c
          BlockComment.m_szBlockCommentTo[0], 0 );
          //#ifdef COMPILE_BLOCK_COMMENT2 //@@@ 2001.03.10 by MIK


          お手数おかけしますが、よろしくお願いしますっ。
          • [2351] Re4: CLayoutMgrをちょっと整理しました げんた 2002年09月29日 00:20

            >CopyToでstrlenする方法だとiniファイルを読み込んだときに、CopyToが呼ばれない
            iniのこと忘れていました.
            ここは,ちょっと面倒でも直接書き込みではなくてRead/Writeそれぞれメンバー関数を使った方がいいかもしれませんね.