| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 710 人关注过本帖
标题:一个读取INI文件的程序为何MODEL的值会变呢?烦请各位大侠们帮助下!
只看楼主 加入收藏
rangelee
Rank: 2
等 级:论坛游民
帖 子:17
专家分:18
注 册:2009-7-4
结帖率:100%
收藏
 问题点数:0 回复次数:4 
一个读取INI文件的程序为何MODEL的值会变呢?烦请各位大侠们帮助下!
char *IMODEL;
char *TAG;
char *SER;
char *DCODE;
char *BBO;
char *tmp;
char *MODEL;
char *MBTOOL;
int resout;
struct palettetype palette;     /* Used to read palette info    */
int LEN;

int main()
{
 int MCODEYN=1;
 IMODEL="NOINPUT";
 MODEL="TTN";
 tmp="NOINPUT";
 TAG="1111111";
 SER="11111111-1111111";
 DCODE="111111111";
 BBO="11111111111";
 Initialize();    /* Set system into Graphics mode    */
 WelcomePM();
 CreatPM();
 Select();
 while (*IMODEL==*tmp)
   {
    StatusLine("--- Please input the MODEL !     EX. TTN-1534 ---",15);      /*底部信息提示函数,StatusLine("提示信息",颜色号)   */
    IMODEL=Input(10,200,12,"Please Input The Model:",12);                   /*屏幕输入函数,Input(x轴,y轴,颜色号,"提示信息",输入的长度);  */
    resout=GetMODEL(IMODEL);

    if (*IMODEL==*tmp)
     {
     StatusLine("--- You have no input anything ! After press anykey to reinput ! ---",12);   
     getch();
      }
    else if (resout==0)
     {
     StatusLine("--- The input's Model is inconsistent with the choice Model ! Please choose! ---",12);
     IMODEL="NOINPUT";
     getch();
     QP();
     CreatPM();
     Select();
      }
    }
    strcpy(MODEL,IMODEL);
    printf("IMODEL=%s\n",IMODEL);
    printf("MODEL=%s\n",MODEL);
    strcpy(IMODEL,"NOINPUT");

   while (*IMODEL==*tmp)
    {
     StatusLine("--- Please input the TAG !     EX. C2002JS ---",15);
     IMODEL=Input(10,212,12,"Please Input The TAG:",7);
     if (*IMODEL==*tmp)
     {
     StatusLine("--- You have no input anything ! After press anykey to reinput ! ---",12);
     getch();
      }
     if (strlen(IMODEL)<7 && IMODEL!=*tmp)
      {
      StatusLine("--- The length of TAG is less than 7 ! After press anykey to reinput ! ---",12);
      IMODEL="NOINPUT";
      getch();
      setfillstyle(1,0);
      bar(10,210,222,224);
      }
     }

     strcpy(TAG,IMODEL);
     printf("\n");
     printf("MODEL=%s\n",MODEL);
     printf("IMODEL=%s\n",IMODEL);
     printf("TAG=%s\n",TAG);
     strcpy(IMODEL,"NOINPUT");
   while (*IMODEL==*tmp)
    {
     StatusLine("--- Please input the SER !     EX. 12345678-1234567 ---",15);
     IMODEL=Input(10,224,12,"Please Input The SER:",16);
     if (*IMODEL==*tmp)
     {
     StatusLine("--- You have no input anything ! After press anykey to reinput ! ---",12);
     getch();
      }
     else if (strlen(IMODEL)<16 && IMODEL!=*tmp)
      {
      StatusLine("--- The length of SER is less than 16 ! After press anykey to reinput ! ---",12);
      IMODEL="NOINPUT";
      getch();
      setfillstyle(1,0);
      bar(10,222,222,234);
      }
     }
     strcpy(SER,IMODEL);
     strcpy(IMODEL,"NOINPUT");
     printf("MODEL=%s\n",MODEL);
     printf("TAG=%s\n",TAG);
     printf("SER=%s\n",SER);
     BBO=GetInitKey("mbtool.ini","BBO",MODEL);    /*ini文件读取函数 GetInitKey("文件名","字段名","KEY名") */
     DCODE=GetInitKey("mbtool.ini","DCODE",MODEL);

     printf("BLNO=%s\n",BLNO);
     printf("DCODE=%s\n",DCODE);
    getch();
  /*SayGoodbye(); */
}



MBTOOL.INI内容

[ROMINFO5]
TTN-111C
TTN-119CP
[BB0]
TTN-112C=KODO-121212
TTN-119CP=KODO-111189
VGN-111C=KODO-123123
[DCODE]
TTN-119CP=DE1234D00

程序见上:
怪事是输入MODEL时是正确的,但输入TAG时MODEL就变了,具体见照片吧,请各位大侠们帮忙分析下哪出错了,谢谢了!
图片附件: 游客没有浏览图片的权限,请 登录注册


[ 本帖最后由 rangelee 于 2009-9-26 15:14 编辑 ]
搜索更多相关主题的帖子: INI 文件 MODEL 
2009-09-26 14:00
rangelee
Rank: 2
等 级:论坛游民
帖 子:17
专家分:18
注 册:2009-7-4
收藏
得分:0 
如果需要我将INPUT函数贴出来的说下(实在不清楚问题出在哪了)
2009-09-26 15:15
forever74
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:CC
等 级:版主
威 望:58
帖 子:1705
专家分:4345
注 册:2007-12-27
收藏
得分:0 
strcpy(MODEL,IMODEL);
在MODEL指针并不指向字符数组,也不是动态分配的存储空间,而是指向一个字符串常量的情况下,以上函数调用在TC里面会扰乱常量存储区,所以出错误是正常的。
而在更高级的系统环境下,这样的调用是不允许的,会引起保护性错误从而中止程序的运行。

对宇宙最严谨的描述应该就是宇宙其实是不严谨的
2009-09-26 20:16
forever74
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:CC
等 级:版主
威 望:58
帖 子:1705
专家分:4345
注 册:2007-12-27
收藏
得分:0 
另外,多次出现的
(*IMODEL==*tmp)
不是在比较字符串,而是在比较单个字符
比较字符串应该用strcmp什么的

建议重新巩固C语言基础

对宇宙最严谨的描述应该就是宇宙其实是不严谨的
2009-09-26 20:22
rangelee
Rank: 2
等 级:论坛游民
帖 子:17
专家分:18
注 册:2009-7-4
收藏
得分:0 
回复 3楼 forever74
你好!谢谢你的回复,你的意思是说strcpy函数只能用与字符串常量的拷贝?我也是接触C没多长时间,一直是边学边用,对指针这块一直很朦胧。导致对付字符串变量处理一直搞不好,郁闷中。。。。有没有关于这方面好的教材推荐下,我用的是WIN-TC这个软件,一直是看那里面自带的帮助文件在学习!

[ 本帖最后由 rangelee 于 2009-9-27 11:49 编辑 ]
2009-09-27 11:32
快速回复:一个读取INI文件的程序为何MODEL的值会变呢?烦请各位大侠们帮助下!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.067765 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved