编译时出现如题错误提示,帮助说明为:要求语句,但出现类型<type>的表达式.
不知道是什么意思,如何解决.

解决方案 »

  1.   

    检查type语句上面的语句是否打了分号.
      

  2.   

    源代码如下:
    第50行出错:Statement expected but 'FUNCTION'
    unit txt2db;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls, ComCtrls, DB, DBTables;type
      TForm1 = class(TForm)
        Table1: TTable;
        Button1: TButton;
        Button2: TButton;
        OpenDialog1: TOpenDialog;
        RichEdit1: TRichEdit;
        procedure Button2Click(Sender: TObject);
        procedure Button1Click(Sender: TObject);
      private
        Function Regulatestr(Astring:string;Sepchar:string):string;
        Function GetSubStr(Var Astring:string;SepChar:String):string;
        Function GetSubStrNum(Astring:string;SepChar:String):Integer;
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form1: TForm1;
    const space='';
    implementation{$R *.dfm}
    Function Tform1.Regulatestr(astring:string;sepchar:string):string;
    var
      i,num:integer;
      flag:boolean;
      mystr,tempstr:string;
    begin
      flag:=false;
      num:=length(astring);
      for i:=1 to num do
       begin
         tempstr:=copy(astring,i,1);
         if tempstr<>sepchar then
           begin
           mystr:=mystr+sepchar;
           regulatestr:=mystr;
    end;Function Tform1.GetSubStr(Var Astring:string;SepChar:String):string;
    var
       mystr:string;
       sepcharpos:integer;
    begin
     sepcharpos:=pos(sepchar,astring);
     mystr:=copy(astring,1,sepcharpos-1);
     delete(astring,1,sepcharpos);
     getsubstr:=mystr;
    end;Function Tform1.GetSubStrNum(Astring:string;SepChar:String):Integer;
    Var
       i:integer;
       strlen:integer;
       num:integer;
    begin
       strlen:=length(astring);
       num:=0;
       for i:=1 to strlen do
       if copy(astring,i,1)=sepchar then
       num:=num+1;
       getsubstrnum:=num;
    end;procedure TForm1.Button2Click(Sender: TObject);
    var
      i,j:integer;
      myline:string;
    begin
      with table1 do
       begin
          open;
          for i:=0 to richedit1.lines.Count-1 do
            begin
             myline:=regulatestr(richedit1.Lines[i],space);
              for j:=1 to getsubstrnum(myline,space) do
               begin
               append;
               Fields[j-1].AsString:=getsubstr(myline,space);
               post;
              end;
           end;
        close
       end;
    end;procedure TForm1.Button1Click(Sender: TObject);
    begin
      if opendialog1.Execute then
       richedit1.Lines.LoadFromFile(opendialog1.FileName);
    end;end.
      

  3.   

    Function Tform1.Regulatestr(astring:string;sepchar:string):string;
    var
      i,num:integer;
      flag:boolean;
      mystr,tempstr:string;
    begin
      flag:=false;
      num:=length(astring);
      for i:=1 to num do
       begin
         tempstr:=copy(astring,i,1);
         if tempstr<>sepchar then
           begin
           mystr:=mystr+sepchar;
           regulatestr:=mystr;
    end;
    楼主的这段代码中,请检查一下哪些begin没有与之对应的end
      

  4.   

    Function Tform1.Regulatestr(astring:string;sepchar:string):string;
    var
      i,num:integer;
      flag:boolean;
      mystr,tempstr:string;
    begin
      flag:=false;
      num:=length(astring);
      for i:=1 to num do
       begin
         tempstr:=copy(astring,i,1);
         if tempstr<>sepchar then
           begin
             mystr:=mystr+sepchar;
             regulatestr:=mystr;
           end;   //---------------------------------------
    end;