文件内容如下:
Provider=Microsoft.Jet.OLEDB.4.0;Password="";Data Source=\\AA\BB\f.mdb;Persist Security Info=True
想读出“\\AA\BB\f.mdb”这一句,要如何操作,最好有代码。

解决方案 »

  1.   

    with TStringList.Create do try
        Text :=
    'Provider=Microsoft.Jet.OLEDB.4.0;Password="";Data Source=\\AA\BB\f.mdb;Persist Security Info=True'; //测试用
        //LoadFromFile('c:\temp\temp.txt'); //载入文件
        Delimiter := ';';
        DelimitedText := StringReplace(Text, 'Data Source', 'Data_Source', []); //消除命名中的空格
        ShowMessage(Values['Data_Source']);
      finally
        Free;
      end;
      

  2.   

    //如果坚持要用TXT文件的话,用下面的函数可以做到楼主要求的。
    function ReadDataSource(FileName:String):String;
    const
         tag='Data Source=';
    var
         SF:TStringList;
         tagpos:Integer;
    begin
         SF:=TStringList.Create;
         SF.LoadFromFile(FileName);
         tagpos:=Pos(tag,SF.Text)+Length(tag);
         Result:='';
         while SF.Text[tagpos]<>';' do
         begin
              Result:=Result+SF.Text[tagpos];
              Inc(tagpos);
         end;
         SF.Free;
    end;
      

  3.   

    楼上有两位给出的方法都可解决我提出的问题,可是有一点我搞错了,主要是connect.udl这种文件可以用记事本打开来看,但把它当成文本文件一样来操作时,得出的结果却不一样了,请哪位指点一二。
      

  4.   

    用POS去找不准确,也累,你的结果又有什么问题了?
      

  5.   

    我总不成,每次读写这前先把它后缀名改成TXT吧