⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 inifilehandle.cpp

📁 多路下载工具源代码
💻 CPP
📖 第 1 页 / 共 2 页
字号:
/*****************************************************************************
*  Copyright Statement:
*  --------------------
*  This software is protected by Copyright and the information contained
*  herein is confidential. The software may not be copied and the information
*  contained herein may not be used or disclosed except with the written
*  permission of MediaTek Inc. (C) 2005
*
*  BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
*  THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
*  RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
*  AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
*  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
*  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
*  NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
*  SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
*  SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
*  THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
*  NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
*  SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
*
*  BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
*  LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
*  AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
*  OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
*  MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
*
*  THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
*  WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
*  LAWS PRINCIPLES.  ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
*  RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
*  THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
*
*****************************************************************************/
/*****************************************************************************
 *
 * Filename:
 * ---------
 *   INIFileHandle.cpp
 *
 * Project:
 * --------
 *   Multiport download
 *
 * Description:
 * ------------
 *  INI file handling source file
 *
 * Author:
 * -------
 *  Andy Ueng (mtk00490)
 *
 *============================================================================
 *             HISTORY
 * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
 *------------------------------------------------------------------------------
 * $Revision$
 * $Modtime$
 * $Log$
 * 
 *------------------------------------------------------------------------------
 * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
 *============================================================================
 ****************************************************************************/
#include <inifiles.hpp>

#pragma hdrstop


#ifndef _MULTIPORT_COMMON_H_
#include "multiport_common.h"
#endif



#include "MultiPort_Utils.h"

#include "INIFileHandle.h"



//==============================================================================
AnsiString CINIFileHandle::read_field(AnsiString asSetupFile,AnsiString asExeName, AnsiString asSecName, AnsiString asFieldName, AnsiString asDefStr)
{
    AnsiString asPath;
    AnsiString as_str;
    if ( getPathFromStr(asExeName, asPath) &&
         withPath( asPath) &&
         !withPath( asSetupFile)
       )
    {
       asSetupFile = asPath + asSetupFile;
    }

    TIniFile *ini;

    try
    {
       ini = new TIniFile( asSetupFile );
       if(ini != NULL)
       {
           as_str  = ini->ReadString(asSecName, asFieldName, asDefStr);
           delete ini;
           return as_str;
       }
      return (asDefStr);

    }
    catch (...)
    {
        ShowMessage( " read setup file " + asSetupFile + " error: " + asFieldName);
    }
}

//---------------------------------------------------------------------------
void CINIFileHandle::write_field(AnsiString asSetupFile, AnsiString asExeName, AnsiString asSecName, AnsiString asFieldName, AnsiString asStr)
{
    AnsiString asPath;
    if ( getPathFromStr(asExeName, asPath) &&
         withPath( asPath) &&
         !withPath( asSetupFile)
       )
    {
       asSetupFile = asPath + asSetupFile;
    }

    TIniFile *ini;

    try
    {
        ini = new TIniFile( asSetupFile );

        if(ini != NULL)
        {
            ini->WriteString(asSecName, asFieldName, asStr );
            delete ini;
            ini = NULL;
        }

    }
    catch (...)
    {
        ShowMessage( " write setup file : " + asSetupFile + " error" + asStr);
    }
}

//==============================================================================
AnsiString CINIFileHandle::read_Operation(AnsiString asSetupFile,AnsiString asExeName)
{
    AnsiString as_Operation = read_field(asSetupFile, asExeName, "form", "Operation", "NOR");
    return  as_Operation;
}

//----------------------------------------------------------------------------
void CINIFileHandle::write_Operation(AnsiString asSetupFile, AnsiString asExeName, AnsiString as_Operation)
{
    write_field(asSetupFile, asExeName, "form", "Operation", as_Operation);
}

//==============================================================================
AnsiString CINIFileHandle::read_DA_bin(AnsiString asSetupFile,AnsiString asExeName)
{
    AnsiString as_DA_bin = read_field(asSetupFile, asExeName, "form","DA_bin", "6205B.bin");
    return  as_DA_bin;
}

//---------------------------------------------------------------------------
void CINIFileHandle::write_DA_bin(AnsiString asSetupFile, AnsiString asExeName, AnsiString as_DA_bin)
{
    write_field(asSetupFile, asExeName, "form", "DA_bin", as_DA_bin);
}

//==============================================================================
AnsiString CINIFileHandle::read_Scatter( AnsiString asSetupFile,AnsiString asExeName, int idx )
{
    AnsiString as_KEY_NAME = "Scatter" + IntToStr( idx );
    AnsiString as_Scatter = read_field(asSetupFile, asExeName, "form", as_KEY_NAME, "");
    return  as_Scatter;
}

//---------------------------------------------------------------------------
void CINIFileHandle::write_Scatter(AnsiString asSetupFile, AnsiString asExeName, int idx, AnsiString as_Scatter)
{
    AnsiString as_KEY_NAME = "Scatter" + IntToStr( idx );
    write_field(asSetupFile, asExeName, "form", as_KEY_NAME, as_Scatter);
}

//==============================================================================
AnsiString CINIFileHandle::read_ROM(AnsiString asSetupFile,AnsiString asExeName, int idx)
{
    AnsiString as_KEY_NAME = "ROM" + IntToStr(idx);
    AnsiString as_ROM = read_field(asSetupFile, asExeName, "form", as_KEY_NAME, "MT6205B.bin");
    return  as_ROM;
}

//---------------------------------------------------------------------------
void CINIFileHandle::write_ROM(AnsiString asSetupFile, AnsiString asExeName, int idx, AnsiString as_ROM)
{
    AnsiString as_KEY_NAME = "ROM" + IntToStr(idx);
    write_field(asSetupFile, asExeName, "form", as_KEY_NAME, as_ROM);
}

//==============================================================================
AnsiString CINIFileHandle::read_FAT(AnsiString asSetupFile,AnsiString asExeName, int idx)
{
    AnsiString as_KEY_NAME = "FAT" + IntToStr(idx);
    AnsiString as_FAT = read_field(asSetupFile, asExeName, "form", as_KEY_NAME, "MT6205B_FAT.bin");
    return  as_FAT;
}

//---------------------------------------------------------------------------
void CINIFileHandle::write_FAT(AnsiString asSetupFile, AnsiString asExeName, int idx, AnsiString as_FAT)
{
    AnsiString as_KEY_NAME = "FAT" + IntToStr(idx);
    write_field(asSetupFile, asExeName, "form", as_KEY_NAME, as_FAT);
}

//==============================================================================
AnsiString CINIFileHandle::read_TheFirstComPortNo(AnsiString asSetupFile,AnsiString asExeName)
{
    AnsiString as_FirstComPortNo = read_field(asSetupFile, asExeName, "form","TheFirstComPortNo", "3");
    return  as_FirstComPortNo;
}

//---------------------------------------------------------------------------
void CINIFileHandle::write_TheFirstComPortNo(AnsiString asSetupFile, AnsiString asExeName, AnsiString as_TheFirstComPortNo)
{
    write_field(asSetupFile, asExeName, "form", "TheFirstComPortNo", as_TheFirstComPortNo);
}

//==============================================================================
AnsiString CINIFileHandle::read_ComEnabled(AnsiString asSetupFile,AnsiString asExeName)
{
    AnsiString as_ComEnabled = read_field(asSetupFile, asExeName, "form","ComportEnabled", "1");
    return  as_ComEnabled;
}

//---------------------------------------------------------------------------
void CINIFileHandle::write_ComEnabled(AnsiString asSetupFile, AnsiString asExeName, AnsiString as_ComportEnabled)
{
    write_field(asSetupFile, asExeName, "form", "ComportEnabled", as_ComportEnabled);
}

//==============================================================================
bool CINIFileHandle::read_ComPortSetting(AnsiString asSetupFile,AnsiString asExeName, vector<AnsiString> &vAs)
{

    for(int i=0; i<MAX_SUPPORT_PORT_NUM; i++)
    {
         AnsiString as_COM = read_field(asSetupFile, asExeName, "COM port setting", "COM_ENUM"+IntToStr(i+1), "0xFF");
         if( as_COM.AnsiCompareIC("0xFF") != 0 )
         {
             vAs.push_back(as_COM);
         }
    }

    return true;
}

//--------------------------------------------------------------------------
void CINIFileHandle::write_ComPortSetting(AnsiString asSetupFile, AnsiString asExeName, vAsniString &vAs)
{
    int i;
    vector<AnsiString>:: iterator iter;
    AnsiString  as;

    for( i=0, iter = vAs.begin(); i<MAX_SUPPORT_PORT_NUM, iter != vAs.end(); i++, iter++)
    {
        as=*iter;
        write_field(asSetupFile, asExeName, "COM port setting", "COM_ENUM"+IntToStr(i+1), as);
    }
}

//==============================================================================
AnsiString CINIFileHandle::read_AutoPollingEnabled(AnsiString asSetupFile,AnsiString asExeName)
{
    AnsiString as_AutoPollingEnabled = read_field(asSetupFile, asExeName, "form", "Auto polling enabled", "0xFF");
    return  as_AutoPollingEnabled;
}

//--------------------------------------------------------------------------
void CINIFileHandle::write_AutoPollingEnabled(AnsiString asSetupFile, AnsiString asExeName, AnsiString as_AutoPollingEnabled)
{
    write_field(asSetupFile, asExeName, "form", "Auto polling enabled", as_AutoPollingEnabled);
}



//==============================================================================
AnsiString CINIFileHandle::read_LV_FAT_index( AnsiString asSetupFile, AnsiString asExeName, int idx )
{
    AnsiString as_KEY_NAME = "rom_info_FAT_index" + IntToStr( idx );
    AnsiString as_LV_FAT_index = read_field(asSetupFile, asExeName, "Download", as_KEY_NAME, "0");
    return  as_LV_FAT_index;
}

//-----------------------------------------------------------------------------
void CINIFileHandle::write_LV_FAT_index(AnsiString asSetupFile, AnsiString asExeName, int idx, AnsiString as_LV_FAT_index)
{
    AnsiString as_KEY_NAME = "rom_info_FAT_index" + IntToStr( idx );
    write_field(asSetupFile, asExeName, "Download", as_KEY_NAME, as_LV_FAT_index);
}

//==============================================================================
AnsiString CINIFileHandle::read_LV_count(AnsiString asSetupFile,AnsiString asExeName)
{
    AnsiString as_LV_count = read_field(asSetupFile, asExeName, "Download", "rom_info_count", "0");
    return  as_LV_count;
}

//--------------------------------------------------------------------------
void CINIFileHandle::write_LV_count(AnsiString asSetupFile, AnsiString asExeName, AnsiString asSecName, AnsiString as_LV_count)
{
    write_field(asSetupFile, asExeName, "Download", asSecName, as_LV_count);
}

//==============================================================================
AnsiString CINIFileHandle::read_LV_name(AnsiString asSetupFile,AnsiString asExeName, int index)
{
    AnsiString as_LV_name = read_field(asSetupFile, asExeName, "Download", "rom_info_name"+IntToStr(index), "");
    return  as_LV_name;
}

//--------------------------------------------------------------------------
void CINIFileHandle::write_LV_name(AnsiString asSetupFile, AnsiString asExeName, AnsiString asSecName, AnsiString as_LV_name)
{
    write_field(asSetupFile, asExeName, "Download", asSecName, as_LV_name);
}

//==============================================================================

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -