Форум программистов, компьютерный форум, киберфорум
Delphi
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.79/14: Рейтинг темы: голосов - 14, средняя оценка - 4.79
weboman
210 / 195 / 63
Регистрация: 13.08.2010
Сообщений: 1,531
Записей в блоге: 6
1

Delphi и регулярные выражения! Почему ошибка эта постоянно, не понимаю, см. код?

06.01.2011, 23:46. Показов 2887. Ответов 1
Метки нет (Все метки)

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
unit unAnal;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls,RegExpr;
 
type
  TForm1 = class(TForm)
    Button1: TButton;
    Memo1: TMemo;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    OpenDialog1: TOpenDialog;
    procedure Button1Click(Sender: TObject);
    procedure Memo1Change(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form1: TForm1;
 
implementation
 
{$R *.dfm}
 
procedure TForm1.Button1Click(Sender: TObject);
begin
  if OpenDialog1.Execute then
    Memo1.Lines.LoadFromFile(OpenDialog1.FileName);
end;
 
procedure TForm1.Memo1Change(Sender: TObject);
var
 count,i:integer;
 RegExp:TRegExpr;
begin
 RegExp:=TRegExpr.Create;
 Label1.Caption:='Строк: '+IntToStr(Memo1.Lines.Count);
 label2.Caption:='Символов: '+IntToStr(Length(Memo1.Text));
 count:=0;
 RegExp.Expression:='\s';
 Count:=count+length(RegExp.Replace(Memo1.Text,'',False));
 label3.caption:='Не пробельных символов:  '+IntToStr(count);
 Count:=0;
 regExp.Expression:='\s*[^\s.-]+-?[^\s.-]*';
 if regExp.Exec(memo1.Text) then
  repeat
   Count:=Count+1;
  until not RegExp.ExecNext;
  label4.Caption:='Слов: '+IntToStr(Count);
  count:=0;
  for i:=0 to memo1.Lines.Count-1 do
   repeat
    count:=count+1;
   until not Regexp.ExecNext;
   label5.Caption:='Предложений: '+IntToStr(count);
 end;
 
end.
ошибка выскакивает вот такая: tregexpr(exec):execnext without exec[pos]
в модуле рег.выражений она ссылается на вот такую строку:
Error (reeExecNextWithoutExec);

она находится вот в такой подпрограмме:
Delphi
1
2
3
4
5
6
7
 var offset : integer;
 begin
  Result := false;
  if not Assigned (startp[0]) or not Assigned (endp[0]) then begin
    Error (reeExecNextWithoutExec);
    EXIT;
   end;
не знаю что еще добавить и как описать, в общем у меня код стоит на мемо1.change, вот когда и происходит это самое событие change, вылазит эта ошибка.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.01.2011, 23:46
Ответы с готовыми решениями:

Регулярные выражения. Как вот такой код с php перевести на Delphi!?
$file = preg_match_all("|<tr><td class='time'>(.*)</tr>|U",$file,$frazes); $myper = array(); ...

Объясните, почему вылазит эта ошибка ordinal type required, когда код доходит до кейса?
var a,x,b,s:extended; code1,code2,code3:integer; begin // Найдем 1 значение code1:= 0 ;...

Начала постоянно выбивать эта ошибка 50 и другие
Начала постоянно выбивать эта ошибка 50 и другие. 02 например другие не помню. как эта программа...

Delphi!? Регулярные выражения?
procedure TForm1.Button2Click(Sender: TObject); var s:string; i:integer; danye:array of...

1
13201 / 6588 / 1040
Регистрация: 10.01.2008
Сообщений: 15,069
07.01.2011, 07:27 2
Строка 57:
Delphi
1
until not RegExp.ExecNext;
после нее все совпадения найдены, достигнут конец исходной строки. Далее строка 63: снова ExecNext после конца строки
Delphi
1
until not Regexp.ExecNext;
вот оно и думает, что вы забыли предварительно сделать Exec
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.01.2011, 07:27

есть ли в Delphi регулярные выражения?
есть ли в Delphi регулярные выражения?

Регулярные выражения в Delphi XE2
Добрый день, пишу парсёр имён и коментариев из открытых групп ВК, без авторизации. Надо удалить...

ЧПУ. Замена строк, регулярные выражения. Как правильно использовать переменную в регулярные выражения ?
Здравствуйте! Решил реализовать ЧПУ на своем сайте. Первый этап это замена всех реальных ссылок на...

Считает почему то только первый код, на остальные пишет что код не найден, хотя он есть в списке, не понимаю п
Написать процедуру поиска в списке, расположенном на рабочем листе с именем «Цены» активной рабочей...

Регулярные выражения: почему результаты поиска не заносятся в массив?
Всем привет. Подскажите, пожалуйста, что здесь не так? При запуске, на консоли только переходы на...

Регулярные выражения System.RegularExpressions (Delphi XE3/FireMonkey)
Здраститя. Есть такая строка "<message>SUCCESS_YES</message>" Значение тега, меняется в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru