用Pos('-',string),copy(string,pos,length)两个函数判断出整个字符串的段数和子串,然后对每个子串进行分析.
如果你只有几种字段类型,最好字段类型用下拉框让用户去选择.

解决方案 »

  1.   

    最简单的办法:
    Edit1 - Edit2 - Combox1
    显示    名称类型“-”不要让用户输入,你在程序中加上:
    最后得到的字符串为:
    Edit1.Text + '-' + Edit2.Text + '-' + Combox1.Text    —————————————————————————————————
    MaximStr := '宠辱不惊,看庭前花开花落,去留无意;
                 毁誉由人,望天上云卷云舒,聚散任风。';
    if Not Assigned(I) then
      I := TI.Create(Nil);
    I.Maxim := MaximStr;
    I.Explain := '假如上述代码中出现“OA”、“3D”等字样,改为“=”或者去掉';
    I.Desire := '加不加分随你';
    —————————————————————————————————
        
      

  2.   

    function StrSplit(Source,SplStr:String):TStrings;
      var
        s:String;
        i:Integer;
        ResList:TStrings;
      begin
        ResList:=TStringList.Create;
        s:=Source;
        i:=Pos(SplStr,S);
        while i<> 0 do
        begin
          ResList.Add(Copy(S,1,i-1));
          S:=Copy(S,i+1,Length(S)-i);      
          i:=Pos(SplStr,S);
        end;
        ResList.Add(S);    
        Result:=ResList;
      end;  function CheckStrFmt(InputStr:String):Boolean;
    var
      Strs:TStrings;
      i:Integer;
    begin
      Strs := StrSplit(InputStr,'-');
      if Strs.Count <> 3 then
    0A    Result := false
      else
      begin
        Result = true;
        for i := 0 to Strs - 1 do
          Result := Result and (Length(Trim(Strs[i]))<> 0);
      end;
      Strs.Free;
    end;     ?????????????
         ____     ____
         \ p \   / g /
          \ l \_/ n /
           \ a   o /
            \ i s /
             \ n /
              \_/