////////////////////////////////////////////////////////////////////
/*

    KAB-studio.h


    (C)KAB-studio 1999 - 2004 ALL RIGHTS RESERVED.
        http://www.kab-studio.biz/
        info@mail.kab-studio.biz

    MF 2004/03/22(Mon) No.249
    zMF 2290( Mag2 + Pubzine )
    sF ܂܂ ( URL: http://www.mag2.com/  ID: 0000012198 )
*/
////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////
/*                QOOSNRQQij̍XV                */
http://www.kab-studio.biz/index.html

EقƂ́[̂肩 u4. vǉI
@قƂ́[̂肩Ɂu4.Ztvǉ܂B
@C̕ccǁA炠܂菑ƂȂijB̂
û݂̂vɂẴRƂB
[ قƂ́[̂肩 ]
http://www.kab-studio.biz/Comic/HotHerbMaking/index.html


////////////////////////////////////////////////////////////////////
/*                        储ʂȓL                        */
http://www.kab-studio.biz/nikki2/index.html

2004/03/14 (Sun)
@[ƁBrldȂǂBقƂ́[̂肩ɂ
ƎԎBɂȂȂRBiɖLB_rO
ugrcuc̃Rs[͌\ꂢBcuc̕jBvY}~B
 Oracle ƃItVAJB

2004/03/15 (Mon)
@܂Ń~[eBOBdlƃR[h̔rBĂ񂹂B
i҂Ō܂BgcEcucfbL{igpJnBċxoB

2004/03/16 (Tue)
@oOB̂̏ǂށBAbvV[hAtbfccB
BЂu`ЁAԂ̂aЁAhbЁBĂǂȂH@ēy
xoB

2004/03/17 (Wed)
@QƎ₪ςBɂBlM܁IʔBG肪
I

2004/03/18 (Thu)
@ߑO Remember11  CROSSCHANNEL wBẮBf[^
x[XւōČ肵ȂBӂ Remember11 B
h̊B

2004/03/19 (Fri)
@̒ňBĂWbNB ArrayList g܂蕅܂BX
̒ňBXs[hSDĂ`B Remember11 zB

2004/03/20 (Sat)
@ߑO͂قƂ́[̂肩Bߌ̓oO̗B ArrayList 猎
 close() ĂȂ ER }ԈĂBXs[hSD
炸ccBrfI܂肫ꂢȂccB VC ̈ČB


////////////////////////////////////////////////////////////////////
/*                         A                             */
http://www.kab-studio.biz/Novel/Fuga/index.html

@攪́@ƕɁ@|PS|

uhAhAhAhv
@ɂȂȂBz痬錌}킸A܂݂D܂݂̕}
AAWٕ̉̈ɂĂB
@͂ސXBŇBC͔畆I݁ACQB
uIv
@sY͔яオA؁X˂؂ĐX̏ւƏoBqʐ^ɍ
ꂽn}ƔrATBĂAĂі؁X̒ւƗ
B}؂􂭁B
@nʂɒnĂAɂ͋NȂBhԂꂽ]Aӎ
~B
uhAhv
@v킸œ~ނBdrʂB
uhAhv
@ɂ݂́AȂB
@́Aȏ[ȂȂ܂ō܂ĂB𕢂A畆ł
łȂABl̑̂ł͂蓾ȂFB~ނ邽тɁAꂪI
ɂȂB
uAЂłȁv
@̏ォ猩낷́A}ƂlƂ鐺ł؂
B
@̐́AsYᒂɏB
@؂鉹drœギB̂܂܂̐Ŗ؁X
܂ŔяオsYAтグB
uARg[炢v
@́AȁccĐȁB猄
ȂB
@sY؁X̏ւƏオApBA
unjv
@ƌAmMĈړBāA傫U肩ԂB
@U肩ԂɁAsY~肽B
                                                              ()

////////////////////////////////////////////////////////////////////
/*                       #pragma twice                            */
http://www.kab-studio.biz/Programing/PragmaTwice/index.html

@Version 13.13
|C^pRNV

uO CStringArray ɂČĂ݂܂v
włRNVĂꂾȂ񂾂ˁx
uȂ񂾂ǁcc\̂ƂŃRNVgɂ͂Ɠ
Ȃ邩ȁv
wǂƁHx
u܂A CStringArray ݂ɁǍ^̃RNVpӂĂ
̂͒ƁBʂ̃NXɂ́Ap̃RNVNXȂĂ
܂v
wႻˁBقǂ̃RNVNXKvɂȂ
Ⴄ́x
ułARNVNXłǂȌ^ł悤ɂ邽߂ɂ͈H
vKvɂȂłB^ႤƃRpCG[o邩v
w΁ccĂ[AǂȌ^łAĂ̖ȂHx
ułȂBЂƂ́Ayev[gzĂ̂g@v
wev[gāAȂ񂩂̌ɂȂĂ[Ag񂵂ɂ̂
Ă[x
uÃev[gBev[ggƂǂȌ^ɂłg
ɂȂ܂BہA MFC  CArray Ƃ̓ev[g̋@\g
܂Bǁccv
wǁHx
u㋉ҌŁAƊȒPɂ͎gɂȁv
w[Hx
uƂ킯ŁAЂƂ̕@ƂāA|C^g@Љ
B void |C^ĉĂHv
w Version 7.04 ( No.124 ) łˁBǂȃ|C^łccA
ȂǂȌ^łgˁx
uƁBgp܂߂āA܂Ƃ߂ČĂ݂悤v

// z̗vfɂ\́B
struct SORT_DATA
{
    int m_iIndex;
    CString m_cDataStr;
};

// p_pL > p_pR Ȃ true A
// ȊO false Ԃ悤ɂĂB
bool CompareToForSORT_DATA( void *p_pL, void *p_pR )
{
    SORT_DATA *pstSortDataL = (SORT_DATA *)p_pL;
    SORT_DATA *pstSortDataR = (SORT_DATA *)p_pR;

    // lŔr܂B
    if( pstSortDataL->m_iIndex > pstSortDataR->m_iIndex )
    {
        return true;
    }
    else if(
        ( pstSortDataL->m_iIndex == pstSortDataR->m_iIndex ) &&
        ( pstSortDataL->m_cDataStr > pstSortDataR->m_cDataStr )
        )
    {
        // l͈vB
        // ͍̕傫łB
        return true;
    }

    return false;
}

void DoBubbleSortToCPtrArray( CPtrArray &p_rcPtrAry )
{
    // uւṽ[vłB
    for( int iOut = 0; iOut < p_rcPtrAry.GetSize() - 1; iOut++ )
    {
        // Ōォ擪ւ̃[vłB
        // uւv܂łłB
        for( int iIn = p_rcPtrAry.GetSize() - 1; iOut < iIn; iIn-- )
        {
            if( CompareToForSORT_DATA
                    ( p_rcPtrAry.GetAt( iIn - 1 )
                    , p_rcPtrAry.GetAt( iIn )
                    )
                == true )
            {
                // O̕傫̂œւ܂B
                void *pcTemp = p_rcPtrAry.GetAt( iIn );
                p_rcPtrAry.SetAt( iIn, p_rcPtrAry.GetAt( iIn - 1 ) );
                p_rcPtrAry.SetAt( iIn - 1, pcTemp );
            }
        }
    }
}

// gpB
void Use_DoBubbleSortToCPtrArray()
{
    CPtrArray cPtrAry;
    SORT_DATA *pstSortData;
    
    pstSortData = new SORT_DATA;
    pstSortData->m_iIndex = 9;
    pstSortData->m_cDataStr = "EEE";
    cPtrAry.Add( pstSortData );
    pstSortData = new SORT_DATA;
    pstSortData->m_iIndex = 3;
    pstSortData->m_cDataStr = "DDD";
    cPtrAry.Add( pstSortData );
    pstSortData = new SORT_DATA;
    pstSortData->m_iIndex = 1;
    pstSortData->m_cDataStr = "CCC";
    cPtrAry.Add( pstSortData );
    pstSortData = new SORT_DATA;
    pstSortData->m_iIndex = 3;
    pstSortData->m_cDataStr = "BBB";
    cPtrAry.Add( pstSortData );
    pstSortData = new SORT_DATA;
    pstSortData->m_iIndex = 5;
    pstSortData->m_cDataStr = "AAA";
    cPtrAry.Add( pstSortData );

    // \[g܂B
    DoBubbleSortToCPtrArray( cPtrAry );

    for( int iF1 = 0; iF1 < cPtrAry.GetSize(); ++iF1 )
    {
        pstSortData = (SORT_DATA *)cPtrAry.GetAt( iF1 );
        TRACE
            ( "%d, %s\n"
            , pstSortData->m_iIndex
            , pstSortData->m_cDataStr 
            );
        delete pstSortData;
    }
}
/*
sʁF
1, CCC
3, BBB
3, DDD
5, AAA
9, EEE
*/

u܂gpႩ猩Ă炨ȁv

    pstSortData = new SORT_DATA;
    pstSortData->m_iIndex = 9;
    pstSortData->m_cDataStr = "EEE";
    cPtrAry.Add( pstSortData );

w\ new āAɃf[^āA CStringArray ݂ 
Add() Aˁx
uB{IɃRNVNX̃o֐͂ǂBA
ЂƂΑɂg邩ȁv
w GetSize() Ƃ GetAt() A SetAt() ˁBɂĂcc
ς new ȂႢȂ񂾁x
u|C^NXˁA͔Ȃȁv
wƖʓ|ccx
uɃ\[g{́v
wŏ for ӂ͑OƓˁBrƂ́ccA֐
ȂςĂx
úA\̂̃|C^܂邲Ǝ󂯎悤ɂ܂v
wȂ񂩂ȂႤccx

bool CompareToForSORT_DATA( void *p_pL, void *p_pR )

wāAȂ void |C^x
u͈ӖłB DoBubbleSortToCPtrArray() Ă݂āB
SORT_DATA Ão m_iIndex  m_cDataStr ďoĂȂ
v
w΁x
u܂A DoBubbleSortToCPtrArray() ̓\[gΏۂ̊evfǂȌ^
łgĂƁv
wcc void |C^ňĂāALXgA̒gɃANZX
肵ĂȂHx
uƂŁÃANZXƂLXgƂAr
A܂ CompareToForSORT_DATA() łĂłv
wccɈӖHx
u CompareToForSORT_DATA() ς邾ŁAǂȌ^łnjłv
wAȂقǁx
u͂Ɖ񂩂狳 qsort() Ă֐̂ƂŏoĂ
邩AƓ̋ɉĂāv
ẃ[x
uł͔r֐ɂāB񂿂ƈႤr@ɂĂ݂܂v
wQiKɔrĂˁx

    // lŔr܂B
    if( pstSortDataL->m_iIndex > pstSortDataR->m_iIndex )
    {
        return true;
    }
    else if(
        ( pstSortDataL->m_iIndex == pstSortDataR->m_iIndex ) &&
        ( pstSortDataL->m_cDataStr > pstSortDataR->m_cDataStr )
        )
    {
        // l͈vB
        // ͍̕傫łB
        return true;
    }

    return false;
}

w m_iIndex  m_cDataStr ̗rĂ񂾁x
u܂ m_iIndex ŔrāAȂ m_cDataStr ŔrBʂ
ȂĂłv
w 3 ̂ƂA BBB ɗĂx
u\[gA m_cDataStr ŔrĂȂȀ
ʂ DDD ɗ͂ˁv
w\[g@ĂƂˁx
u̕ӂ͎ۂɎg@\ɂĐFXςĂ݂Ăv

/*
    Preview Next Story!
*/
wȂ񂩍͎pIIx
u\̂ŉϒAĂ̂͂悭邩ˁv
wpIȂ̂΂肾Ƃȁ[x
uhv
wȂɂAhāx
uƂ킯Ŏv
 Version 13.14 Xĝ 
wɂÂIx
ũXgA\[gɂ͌Ȃłccv
wx


////////////////////////////////////////////////////////////////////
/*                QOOSNRQXij̍XV                */
http://www.kab-studio.biz/index.html

EقƂ́[̂肩 u5. Fvǉ\
@قƂ́[̂肩Ɂu5.Fvǉ\B
@ԏȗ͉OꂵĂӏȂ̂ŐFXQlɂȂ邩B


////////////////////////////////////////////////////////////////////
/*                          ӁII                            */

Ẽ[ԐMȂłB
EӌE]Ez[`[ʂȓL]肨肭B
http://www.kab-studio.biz/nikki2/
EwǓo^Ƃɂ͂̃y[WōsȂĂB
http://www.mag2.com/m/0000012198.htm
E͎ōsȂĂB
EobNio[͂̃y[Wɂ܂B
http://backno.mag2.com/reader/Back?id=0000012198
http://www.kab-studio.biz/Freeware/index.html#MailMagazine


////////////////////////////////////////////////////////////////////
/*
    KAB-studio.h
      Weekly Mail Magazine.
      Written by Kaburaya Seiden.
      http://www.kab-studio.biz/Info/MailMagazine/

    (C)KAB-studio 1999 - 2004 ALL RIGHTS RESERVED.
        http://www.kab-studio.biz/
        info@mail.kab-studio.biz
*/
////////////////////////////////////////////////////////////////////

