2013-07-14 2 views
-2

У меня проблема с perlregex, проблема заключается не в том, используется ли такое использование в файле perlregex txt компонента, но я хочу открыть файл, у которого есть символы, которые не понимают, и я знаю, как сильно я должны использовать его для поиска в perl perlregex, подняли ссылку на файл: http://uploaded.net/file/ghhm0xv4, я уверен, что проблема в текстовом файле, потому что я хорошо использую компонент perlregex, если они хотят видеть код о том, как использовать компонент perlregex, который вы можете увидеть здесь.Ошибка в Delphi с perlregex в файле

unit test; 

interface 

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

type 
    TForm1 = class(TForm) 
    Edit1: TEdit; 
    Edit2: TEdit; 
    Button1: TButton; 
    PerlRegEx1: TPerlRegEx; 
    Memo1: TMemo; 
    procedure Button1Click(Sender: TObject); 

    private 
    { Private declarations } 
    public 
    { Public declarations } 
    end; 

var 
    Form1: TForm1; 

implementation 

{$R *.dfm} 

function ReverseString(const S: string): string; 
var 
    i, len: Integer; 
begin 
    len := Length(S); 
    SetLength(Result, len); 
    for i := len downto 1 do 
    begin 
    Result[len - i + 1] := S[i]; 
    end; 
end; 


procedure TForm1.Button1Click(Sender: TObject); 
var 
    conte: TMemoryStream; 
    source: string; 

begin 

    conte := TMemoryStream.Create; 
    conte.LoadFromFile('test.txt'); 
    SetString(source, PAnsiChar(conte.Memory), conte.Size); 

    source := ReverseString(source); 

    PerlRegEx1.Regex := '} 2 E R E H { (.*) } 2 E R E H {'; 
    PerlRegEx1.Subject := source; 

    if PerlRegEx1.Match then 
    begin 
    Edit1.Text := PerlRegEx1.SubExpressions[1]; 
    end; 

    end; 

end. 

проблема заключается в том, что он не находит ничего, программа не выдает никаких ошибок в общем, я подозреваю, что проблема в текстовом файле, нет, если я должен сделать что-то содержимое файла использовать perlregex

+0

Вы использовали Google перевести? Что вы спрашиваете здесь? Проголосовал за закрытие, пока вы не исправите вопрос. – RBA

+0

да, мой английский плохой –

+0

Попробуйте исправить вопрос. Кроме того, этот код не может компилироваться. Этот синтаксис недействителен. – RBA

ответ

1

Вот рабочий пример (с тестовым текстом), который идеально подходит для вашего RegEx. Если он не работает для вас с вашим текстовым файлом, вам нужно проверить фактическое содержимое вашего текстового файла (например, с помощью шестнадцатеричного редактора), чтобы узнать, что он на самом деле содержит.

program Project1; 

{$APPTYPE CONSOLE} 

uses 
    SysUtils, PerlRegex; 

var 
    RegEx: TPerlRegex; 
    i: Integer; 

begin 
    RegEx := TPerlRegEx.Create; 

    try 
    { TODO -oUser -cConsole Main : Insert code here } 
    RegEx.Subject := 'some test text before } 2 E R E H { This is found text } 2 E R E Htext after'; 
    RegEx.RegEx := '} 2 E R E H { (.*) } 2 E R E H'; 
    if RegEx.Match then 
     WriteLn(RegEx.Groups[1]) 
    else 
     WriteLn('No match found'); 
    ReadLn; 
    finally 
    RegEx.Free; 
    end; 
end. 

Вот выход запуска тестового приложения:

Samle regex match from test app

Смежные вопросы