你的意思我不是很明白,我说说看能不能帮你
把文本文件用EXCEL打开转换成表格应该变成'5ca'一列 和'87.32sdf'一列
一共2列,然后查找替换把'sdf'都删除,然后你就可以求和了,大不了存成
dbase的数据库,用SQL 语句处理。或DELPHI处理。
和'87.32sdf'如果不想删除sdf,可以再复制一列'87.32sdf',这样一列删除
数字,另一列删除字符。
不知道我说的行不行,给个回复

解决方案 »

  1.   

    写几句代码把每一行第37以后的字符删除
    然后再用Access导入,应该就好办很多了吧?
      

  2.   

    function StringFilter(mStr: string; mSysCharSet: TSysCharSet): string;
    { 过滤字符串 }
    var
      I: Integer;
    begin
      Result := '';
      for I := 1 to Length(mStr) do
        if mStr[I] in mSysCharSet then
          Result := Result + mStr[I];
    end; { StringFilter }function CalcSum(mStrings: TStrings; mIndexs: array of string): Real;
    var
      I, J: Integer;
    begin
      Result := 0;
      if not Assigned(mStrings) then Exit;
      for J := Low(mIndexs) to High(mIndexs) do
        for I := 0 to mStrings.Count - 1 do
          if Pos(mIndexs[J], mStrings[I]) = 1 then
            Result := Result + StrToFloatDef(
              StringFilter(Copy(mStrings[I], Length(mIndexs[J]) + 1, MaxInt),
                ['0'..'9', '.']), 0);
    end;procedure TForm1.Button1Click(Sender: TObject);
    begin
      Caption := Format('%f', [CalcSum(Memo1.Lines, ['5ca', '5ad', '5id'])]);
    end;
      

  3.   

    使用Copy函数把需要的支付拷贝出来,然后在使用StrToFloat进行装换,然后计算,这有什么困难的?请说说看。
      

  4.   

    // just a thinking ,not run in fact..function SumUp();
    var
      NumberFile:TStrings;
      i:integer;
      sum:float;
      strTmp:String;
    begin
      sum:=0;
      try
       NumberFile:=TstringList.Create ;
       for i:=1 to NumberFile.Count -1 do
       begin
         strTmp:= Copy(NumberFile[i],1,1);
         if strTmp='5' then
           sum:=sum+StrToFloat(Copy(NumberFile[i],5,37))
       end;
      finally
       NumberFile.Free ;
      end;
      Result:=sum;
    end;
      

  5.   

    bigfoolcat(大笨猫) 那你怎么知道'5ca', '5ad', '5id'所在的行是多少啊!