0

次のプログラムはほとんど動作しますが、コンパイルしようとすると次のエラーが発生します。修正方法がわかりません。何か案は?

フォーム、「mainform.pas」のメインフォーム...

"unit1.pas(9): 、または ; 期待されていましたが、'IN' が見つかりました; "project1 は unit1.pas をコンパイルできませんでした

    unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls,
  Dialogs, LibXmlParser, LibXmlComps, StdCtrls,
  Forms,
  mainform in 'mainform.pas'
  mapimail in 'mapimail.pas';

type
  TXMLRule = Record
    alert, desc, act:string;
  end;

  TForm1 = class(TForm)
    Button1: TButton;
    EasyXmlScanner1: TEasyXmlScanner;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  Parser : TXmlParser;
  MyXMLRules:Array[1..10] of TXMLRule;
  i         :1..10;

implementation
{$R *.dfm}

procedure ProcessXML();

begin
  Parser := TXmlParser.Create;
  Parser.Normalize := TRUE;
  Parser.LoadFromFile ('c:\parser.xml');
  Parser.StartScan;

  while Parser.Scan do
    case Parser.CurPartType of
     ptStartTag,
     ptEmptyTag :
      begin

      end;

    ptContent  :
      begin
        if Parser.CurName = ('<alert>') then MyXMLRules[1].alert := Parser.CurContent;
        if Parser.CurName = ('<desc>') then MyXMLRules[1].desc := Parser.CurContent;
        if Parser.CurName = ('<action>') then MyXMLRules[1].act := Parser.Curcontent;
      end;
    end;
  Parser.Free;
end;

procedure EmailAlert();
begin
  Application.Initialize;
  Application.CreateForm(TForm1, Form1);
  Application.Run;
end;

procedure NoiseAlert();
begin
end;

procedure TForm1.Button1Click(Sender: TObject);
var
f:textFile;
data:string;
begin
   ProcessXML();

    AssignFile(f, 'c:\nmap.txt');
    reset(f);
    repeat
      readln(f, data);
      if (pos(MyXMLRules[1].alert, data)) <> 0 then

        begin
           if MyXMLRules[1].act
           = ('Email') then
                      begin
                        EmailAlert
                      end;
           if MyXMLRules[1].act
           = ('Beep') then
                      begin
                        NoiseAlert
                      end;
        end;
      until EOF(f);
end;

end.
4

3 に答える 3

3

9行目(「mainform.pas」の「mainform」を含む行)の最後にコンマがありません。

于 2009-03-25T15:54:11.123 に答える
2

Delphi Basicsによると、「in」はプログラムとライブラリにのみ適用され、ユニットには適用されません。

于 2009-03-25T15:55:49.827 に答える