procedure TFrm_SMSServer.Timer1Timer(Sender: TObject);
var
  s: AnsiString;
  ReturnCode,MsgSize,i :integer;
  SMSContent1,SMSContent2:string;
  SIMEI,SIMEINO,SContent,responsestr:string;
  msgstr:pchar;PContent:Cardinal;
begin
SetLength(s, 1024 * 1024);
FillChar(s[1], 1024 * 1024, #0);
msgstr := @s[1];
ReturnCode := SkReceive(MDPHandle, pchar(AMsgID), msgstr, MsgSize);
if returncode=0 then
  responsestr:=string(msgstr);
lbprocesses.items.add(Format('返回码为:%d', [ReturnCode]));
//lbprocesses.items.add('短信内容为: '+responsestr);
//lbprocesses.items.add('序列号为: '+AMsgID);
try
    Keys:=Translage(Responsestr);
    for i:=0 to keys.Count-1 do
    try
      item:=PSkRecvItem(keys.Objects[i]);
      if keys[i]<>'' then
      begin
           try
                SIMEINO:=item^.Mobile  ; //接收手机号码
                PContent:=item^.Position  ;//接收短信序列号
                SContent:=item^.Content  ;  //接收短信内容
                SMSContent2:=item^.Time  ;  //接收短信时间
                Amsgid:=inttostr(PContent);  //传递短信序列号,实现每次都读取最新短信
               { try
                  YJ1000Ini.writestring('serverset','Amsgid','AMsgID');  //2007zhou将最新短信序列号写入配置文件
                finally
                  YJ1000Ini.Free;
                end;}
                //lbProcesses.Items.Add('序列号为: '+AMsgID+' 手机号为: '+SIMEINO);
           except
           end ;
      end;
    finally
    end;
为什么不能写入配置文件,请各位指教

解决方案 »

  1.   

    贴段我的procedure SaveFileToArchivesCfg(ListView:TListView;Const FilePath,SectionToSave:String);
    var iniWriter:TiniFile;
        i:integer;
    begin
      if FileExists(FilePath+FAiniFileName) then//文件存在
      begin
        iniWriter:=TiniFile.Create(FilePath+FAiniFileName);
        if iniWriter.SectionExists(SectionToSave) then iniWriter.EraseSection(SectionToSave);
      end
      else
        iniWriter:=TiniFile.Create(FilePath+FAiniFileName);
      for i:=0 to ListView.Items.Count-1 do
        iniWriter.WriteString(SectionToSave,IntToStr(i),ListView.Items.item[i].Caption+';'+trim(ListView.Items.item[i].SubItems.Strings[0])+';'+trim(ListView.Items.item[i].SubItems.Strings[1])+';'+trim(ListView.Items.item[i].SubItems.Strings[2]));
      iniWriter.UpdateFile;
      iniWriter.Free;
    end;
      

  2.   

    procedure TFrm_SMSServer.Timer1Timer(Sender: TObject);
    var
      s: AnsiString;
      ReturnCode,MsgSize,i :integer;
      SMSContent1,SMSContent2:string;
      SIMEI,SIMEINO,SContent,responsestr:string;
      msgstr:pchar;PContent:Cardinal;
    begin
    SetLength(s, 1024 * 1024);
    FillChar(s[1], 1024 * 1024, #0);
    msgstr := @s[1];
    ReturnCode := SkReceive(MDPHandle, pchar(AMsgID), msgstr, MsgSize);
    if returncode=0 then
      responsestr:=string(msgstr);
    lbprocesses.items.add(Format('返回码为:%d', [ReturnCode]));
    //lbprocesses.items.add('短信内容为: '+responsestr);
    //lbprocesses.items.add('序列号为: '+AMsgID);
    try
        Keys:=Translage(Responsestr);
        for i:=0 to keys.Count-1 do
        try
          item:=PSkRecvItem(keys.Objects[i]);
          if keys[i]<>'' then
          begin
               try
                    SIMEINO:=item^.Mobile  ; //接收手机号码
                    PContent:=item^.Position  ;//接收短信序列号
                    SContent:=item^.Content  ;  //接收短信内容
                    SMSContent2:=item^.Time  ;  //接收短信时间
                    AMsgID:=inttostr(PContent);  //传递短信序列号,实现每次都读取最新短信
                   try
                     CurrentDir :=getcurrentdir;
                     if copy(CurrentDir,length(CurrentDir),1)<>'\' then
                     CurrentDir := CurrentDir + '\';
                     YJ1000Ini := TIniFile.Create(CurrentDir+'YJ2000SMSSer.INI');
                     YJ1000Ini.writestring('serverset','Amsgid','AMsgID');  //2007zhou将最新短信序列号写入配置文件
                   finally
                      YJ1000Ini.Free;
                   end;
                    //lbProcesses.Items.Add('序列号为: '+AMsgID+' 手机号为: '+SIMEINO);
               except
               end ;
          end;
        finally
        end;
            case VerifyUser(SIMEINO,SContent) of
              0: begin
                   Frm_SMSServer.lbProcesses.Items.Add('用户校验失败,此短信被过滤!');
                 end;
              {1: begin
                   Frm_SMSServer.lbProcesses.Items.Add('寻找不到医嘱,此用户没注册,此短信是普通短信!');   //2007ZHOU未注册用户插入数据库
                 end;}
              2: begin
                   Frm_SMSServer.lbProcesses.Items.Add('手机'+SIMEINO+'用户已注册,属于合法用户,用户级别无法确定,此短信被过滤!');
                 end;
              3: begin
                   Frm_SMSServer.lbProcesses.Items.Add('手机'+SIMEINO+'用户已注册,属于合法用户,此短信是普通短信!');
                   Frm_SMSServer.lbProcesses.Items.Add('手机号:'+SIMEINO+'短信内容:'+sContent);
                 end;
              4: begin
                   Frm_SMSServer.lbProcesses.Items.Add('手机'+SIMEINO+'用户已注册,属于合法用户,此用户级别为4!');
                   Frm_SMSServer.lbProcesses.Items.Add('手机号:'+SIMEINO+'短信内容:'+sContent);
                   //返回一个值             end;
              5: begin
                   Frm_SMSServer.lbProcesses.Items.Add('手机'+SIMEINO+'用户已注册,属于合法用户,此用户级别为5!');
                   Frm_SMSServer.lbProcesses.Items.Add('手机号:'+SIMEINO+'短信内容:'+sContent);
                   //返回一个值
                 end;
              6: begin
                   Frm_SMSServer.lbProcesses.Items.Add('手机'+SIMEINO+'用户已注册,属于合法用户,未找到用户的心电文件,此短信被过滤!');
                 end;
              7: begin
                   Frm_SMSServer.lbProcesses.Items.Add('手机'+SIMEINO+'用户已注册,属于合法用户,用户级别太低!此短信被过滤!');
                 end;
            else
              Frm_SMSServer.lbProcesses.Items.Add('手机'+SIMEINO+'用户属于非法用户,此短信被过滤!');
            end;finally
    end;
    end;上面是所有的代码,下面是写入配置文件的代码,请指教,为什么无法写入配置文件,跟踪也找不到错误
      

  3.   

    上面是所有的代码,下面是写入配置文件的代码,请指教,为什么无法写入配置文件,跟踪也找不到错误
     try
                     CurrentDir :=getcurrentdir;
                     if copy(CurrentDir,length(CurrentDir),1)<>'\' then
                     CurrentDir := CurrentDir + '\';
                     YJ1000Ini := TIniFile.Create(CurrentDir+'YJ2000SMSSer.INI');
                     YJ1000Ini.writestring('serverset','Amsgid','AMsgID');  //2007zhou将最新短信序列号写入配置文件
                   finally
                      YJ1000Ini.Free;
                   end;