提取、写入源码中指定段的内容 —— 对源码的操作! …… (参与有分、灌水例外)(100分)

  • 主题发起人 主题发起人 Ourland
  • 开始时间 开始时间
O

Ourland

Unregistered / Unconfirmed
GUEST, unregistred user!
问题:如何提取、写入源码中指定段的内容(如提取按钮事件代码、uses 的单元、type 声明等)

各位,实在不好意思,本人水平太低,前次贴子中所说的一直未能实现,能否用源码说明
前次贴子位置:http://www.delphibbs.com/delphibbs/dispq.asp?lid=1154081
可将源码发至本人邮箱:lizaying12@163.com,请参与者将贴子提前。
(问题如得解决,全数分数敬上,决不食言)
 
你可以找一些delphi的ide插件,我见过整理delphi原码的插件,而且有源代码,一看就会了
搜索把
 
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls;

type
TForm1 = class(TForm)
Memo1: TMemo;
Panel1: TPanel;
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
const
KEYWORD_COUNT = 'Keyword used: %d';
var
FileStream : TFilestream;
Parser : Tparser;
count : integer;
begin
Count := 0;
FileStream := TFileStream.Create('unit1.pas',fmopenread);
try
Parser := Tparser.Create(FileStream);
try
repeat
if (Parser.TokenString) <> '' then
begin
inc(Count);
Memo1.Lines.Add(Parser.TokenString);
Memo1.Lines.add('');
end;
until
(Parser.NextToken = toEOF);
Memo1.Lines.Add( format(KEYWORD_COUNT,[count]));
finally
Parser.Free;
end;
finally
FileStream.Free;
end;
end;

end.
 
Tparser是什么版本(Delphi几)开始加进去的。。问问。。
 
BlackDragon:您的代码只是将代码分解成了一个个的单词,提取起来还是很苦难的,
且没有处理注释和关键字的嵌套问题,请指教!
 
我已经说过了,两遍扫描,第一次滤除注释,第二次提取内容。
 
后退
顶部