情况是要自制一个自定义源码的解析器,自定义源码保存在一个文本文件里,需要以关键字的形式去调用一些delphi单元中的常量变量,解析的时候采用字符串类型操作,但是现在不知道怎么以这些已经变成字符串的变量名去获取delphi中定义的值啊。。例如我在delphi中
varTempDir:string;
..
....
TempDir:=getTempDir;==============
自定义源码是
{TempDir}/1.txt;=========================
解析过程中需要得到TempDir所指的值。。
要如何实现啊???

解决方案 »

  1.   

    什么叫自定义源码?
    {$include 1.txt} 
    把TempDir置为Delphi的搜索路径,这样子不可以么?
      

  2.   


    TempDir是一个变量,还有其他很多常量变量,有些是用函数获得的,然后在解析1.txt中的源码时要替换变量的值
    我说清楚一些吧
    ----------------------------------------
    某个单元文件test.pas
    var
    TempDir:string;function GetTempDir:string;
    begin
    ...
    ..
    result:='C:\';
    end;
    function GetValue:boolean;
    begin
    ..
    TempDir:=GetTempDir;
    ..
    end;function DecFile(Filename:string):Boolean;
    begin
    ..
    ...
    end;
    ---------------
    test.txt的某行内容:CMD=DEL {TempDir}test.dat'; //DEL表示删除文件
    -------------------现在在DecFile函数中查找得到1.txt中有关键字{TempDir},就把它翻译成TempDir的值,
    所以结果为:CMD=DEL 'C:\test.dat'; 
    这样一来我就可以得到真实路径,执行删除虽然有一个很原始很蠢的方法去翻译过来,可是里面需要翻译过来的量太多的,想知道如何才能简单快捷
      

  3.   

    变量经过编译以后,只有地址,没有变量名,
    因此编译后想通过变量名直接找到变量的值是不现实的像这种一般是采用一些变通的办法
    1、用映射的办法,在解析时将文件中{TempDir}映射成程序内部的某个变量,也就是你所说的“很原始很蠢的方法”
    2、你可以设计一个列表,列表中的元素具有name和value属性,值的读写都通过列表