Вопрос : Вопрос итерирования Perl

См. прикрепленное Кодего.  Это будет главным образом часть моей программы Perl.  Здесь мой архив data.txt:

TYPE: ad \ tiffs
C:\Users\ddecker\Desktop\D \ filename.tif: директория
TIFF на ширине изображения смещения 0x10eb4
: Длина 1728 изображения: разрешение 2376
: 200, 200 пикселов/биты inch
/образец: схема обжатия 1
: Толкование группы 4
CCITT фотометрическое: минут-будет-white
FillOrder: lsb-к-msb
: «Описание изображения
стандартного входного сигнала ": «ориентация
преобразованного архива PBM ": верхняя часть рядка 0, образцы lhs
col 0/пиксел: рядки 1
/прокладка: конфигурация 2376
плоскостная: одиночное plane
TYPE изображения: ad \ tiffs
C:\Users\ddecker\Desktop\D \ filename2.tif: директория
TIFF на ширине изображения смещения 0x4aac
: Длина 1728 изображения: разрешение 2376
: 200, 200 пикселов/биты inch
/образец: схема обжатия 1
: Толкование группы 4
CCITT фотометрическое: минут-будет-white
FillOrder: lsb-к-msb
: «Описание изображения
стандартного входного сигнала ": «ориентация
преобразованного архива PBM ": верхняя часть рядка 0, образцы lhs
col 0/пиксел: рядки 1
/прокладка: конфигурация 2376
плоскостная: одиночное plane
TYPE изображения: ad \ tiffs
C:\Users\ddecker\Desktop\D \ filename3.tif: директория
TIFF на типе Subfile смещения 0x8
: (0 = 0x0) ширина изображения
: Длина 124 изображений: разрешение 124
: 31, 31 пиксел/биты inch
/образец: схема обжатия 8
: Толкование None
фотометрическое: Средство программирования color
RGB: образцы
«¼ "/пиксел: рядки 3
/прокладка: конфигурация 55
плоскостная: одиночное plane

Basically изображения программа идет до конца и обрабатывает каждые раздел или «блок» между каждым «ТИПОМ: » разделы.  Так, everytime программа увидит «ТИП: », она обрабатывает его по мере того как новая «установила», и выполняет увиденное Кодего в perl code.

If, котор вы смотрите комментарии, там будет некоторой информацией для проверки погрешностей.  Моей проблемой будет факт что когда программа начинает вне с всей необходимой информацией, но с другой стороны вторым блоком имеет пропавшую информацию, тогда она не работает.  Например, возьмите этот образец data.txt (отличающийся от выше; filename2.tif будет пропавшими образцом/пикселом.):

TYPE: ad \ tiffs
C:\Users\ddecker\Desktop\D \ filename.tif: директория
TIFF на ширине изображения смещения 0x10eb4
: Длина 1728 изображения: разрешение 2376
: 200, 200 пикселов/биты inch
/образец: схема обжатия 1
: Толкование группы 4
CCITT фотометрическое: минут-будет-white
FillOrder: lsb-к-msb
: «Описание изображения
стандартного входного сигнала ": «ориентация
преобразованного архива PBM ": верхняя часть рядка 0, образцы lhs
col 0/пиксел: рядки 1
/прокладка: конфигурация 2376
плоскостная: одиночное plane
TYPE изображения: ad \ tiffs
C:\Users\ddecker\Desktop\D \ filename2.tif: директория
TIFF на ширине изображения смещения 0x4aac
: Длина 1728 изображения: разрешение 2376
: 200, 200 пикселов/биты inch
/образец: схема обжатия 1
: Толкование группы 4
CCITT фотометрическое: минут-будет-white
FillOrder: lsb-к-msb
: «Описание изображения
стандартного входного сигнала ": «ориентация
преобразованного архива PBM ": верхняя часть рядка 0, рядки lhs
col 0/прокладка: конфигурация 2376
плоскостная: одиночное plane
TYPE изображения: ad \ tiffs
C:\Users\ddecker\Desktop\D \ filename3.tif: директория
TIFF на типе Subfile смещения 0x8
: (0 = 0x0) ширина изображения
: Длина 124 изображений: разрешение 124
: 31, 31 пиксел/биты inch
/образец: схема обжатия 8
: Толкование None
фотометрическое: Средство программирования color
RGB: образцы
«¼ "/пиксел: рядки 3
/прокладка: конфигурация 55
плоскостная: одиночное plane

Normal изображения ое для программы следующий:

Processing filename.tif
Processing filename2.tif
Processing filename3.tif

However, при пропускании данных от вышеуказанного оно будет должен быть:

Processing filename.tif
[ОШИБКА]: Данные по образца/пикселов для filename2.tif не found.
[INFO]: не было обработано filename.tif, слишком много журнал saved.

HOWEVER errors.
Processing filename3.tif
Error, оно не делает это, выход является следующим: середины

Processing filename.tif
Processing filename2.tif
Processing filename3.tif

Which, то когда оно начинает вне с хорошим показателем, и после этого ударяют показатель «неудачи» или «пропуская данных», он думает будет хорошими данными для некоторых причин, и обрабатывает его как хорошее и обрабатывает данные.  Если я извлекаю ВСЕ от «ТИПА:, то … FILENAME… и директория TIFF на смещении 0x4aac», от показателя, ПОСЛЕ ЭТОГО он видит ошибки.  Не делает никакое чувство.  См. этот пример:

TYPE: ad \ tiffs
C:\Users\ddecker\Desktop\D \ filename.tif: директория
TIFF на ширине изображения смещения 0x10eb4
: Длина 1728 изображения: разрешение 2376
: 200, 200 пикселов/биты inch
/образец: схема обжатия 1
: Толкование группы 4
CCITT фотометрическое: минут-будет-white
FillOrder: lsb-к-msb
: «Описание изображения
стандартного входного сигнала ": «ориентация
преобразованного архива PBM ": верхняя часть рядка 0, образцы lhs
col 0/пиксел: рядки 1
/прокладка: конфигурация 2376
плоскостная: одиночное plane
TYPE изображения: ad \ tiffs
C:\Users\ddecker\Desktop\D \ filename2.tif: директория
TIFF на смещении 0x4aac
TYPE: ad \ tiffs
C:\Users\ddecker\Desktop\D \ filename3.tif: директория
TIFF на типе Subfile смещения 0x8
: (0 = 0x0) ширина изображения
: Длина 124 изображений: разрешение 124
: 31, 31 пиксел/биты inch
/образец: схема обжатия 8
: Толкование None
фотометрическое: Средство программирования color
RGB: образцы
«¼ "/пиксел: рядки 3
/прокладка: конфигурация 55
плоскостная: одиночный выход plane

The изображения следующим образом:

Processing filename.tif
[ОШИБКА]: Ширина для filename2.tif не found.
[ОШИБКИ]: Длина для filename2.tif не found.
[ОШИБКИ]: Разрешение для filename2.tif не found.
[INFO]: не было обработано filename2.tif, слишком много журнал saved.

So errors.
Processing filename3.tif
Error, основно, когда НИКАКИЕ данные не будут для показателя, оно работает, но когда 1 или больше значения (но не ВСЕ) будьте пропавш для показателя который необходим для выхода, его обрабатывает его по мере того как никакое errors.

Can любое не полиняло некоторый свет на this.
class= " ясное " >
> " codeSnippet " class=
class= " lineNumbers "
class=
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:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
117:
118:
119:
120:
121:
122:
123:
124:
125:
126:
127:
128:
129:
130:
131:
132:
133:
134:
135:
136:
137:
138:
139:
140:
141:
142:
143:
144:
145:
146:
147:
148:
149:
150:
151:
152:
153:
154:
155:
156:
157:
158:
159:
160:
161:
162:
163:
164:
165:
166:
167:
168:
169:
170:
171:
172:
173:
174:
175:
176:
177:
178:
179:
180:
class= " id= " codeSnippet705652
$infile = «data.txt»;
#$infile = $batOutput;

Ручки выходного файла ## (раскройте)
раскройте (OUT1, «> \!». $state.$status. «INFO.txt») или умирают «не могут раскрыть \!». $state.$status. «INFO.txt: $! »; 
раскройте (OUT2, «> \!». $state.$status. «INFOspdsht.txt») или умирают «не могут раскрыть \!». $state.$status. «INFO.txt $! »;
раскройте (ERRLOG, «> \! errors.log») или умирают «не могут раскрыть! errors.log $! »;

Коллекторы печати ## к архиву spdsht
печать OUT2 «; ; ; ; Whitespace; ; DPI изменяют размеры; ; ; \ n»;
Filename печати OUT2 «; Comp; AlphCnl; Foto; Wid; Len; Res 0; x0; ; ; MB \ n»;

Данные по конфигурации ## для маскируя вывода данных
мо %config = (
    » => ««LZW красит»,
    «» => «Lempel-Ziv & валлийского зашифрования красит»,
    «CCITT собирает 4» => «bkwhts»,
    «CCITT собирает => «bkwhts» зашифрование» 4 факсимилеих,
    «Никакие» => «никакие»,
    «никакие» => «никакие»,
    «=> «цвета RGB» красит»,
    «минут-быть-белое» => «bkwhts»,
    «минут-быть-черное» => «bkwhts»,
    «=> «цвета палитры» (RGB от colormap) красит»,
    Подводная лодка => «разрешения» {
                                            мое @r = разделило (/,/, перенос);
                                            s/\ D//g =~ $r [0];
                                            s/\ D//g =~ $r [1];
                                            возвращенное @r [0.1];
    },
);

мои @config = ключи %config;

мо $file = $infile; # установите это как нужно.

раскройте мое $fh, «<», $file или умрите «не смогите раскрыть <$file> для чтения $! »;

$/= «ТИП: \ n»;
пока (мо $record = <$fh>) {
    chomp $record;
    затем если eq $record '';
    s/=~ $record (директория TIFF на смещении. +) \ n//;
	
	Польза ## будущая, для инкрементировать ошибки
	$errorCount = 0;

    мо ($fullpath, $data) = разделите (/\ n/, $record, 2);
    s/=~ $fullpath: $//;

    мо ($drv, $path, $file) = архив:: Spec->splitpath ($fullpath);

	## получает данные по схемы обжатия
	$cs = $config {$1} если (схема обжатия s/\ s =~ $data {2}:, то\ s+ (. *?)\ n//);
	если (! определенное $cs) {
		печать «[ОШИБКА]: Схема обжатия для ого $file. \ n»;
		печать ERRLOG «[ОШИБКА]: Схема обжатия для ого $file. \ n»;
		$errorCount++;
		#next;
	}	
 	
 	## получает фотометрические данные по толкования
 	$pi = $config {$1} если (толкование s/\ s =~ $data 2} фотометрическое {:, то\ s+ (. *?)\ n//);
    если (! определенное $pi) {
    	печать «[ОШИБКА]: Фотометрическое толкование для ого $file. \ n»;
    	печать ERRLOG «[ОШИБКА]: Фотометрическое толкование для ого $file. \ n»;
    	$errorCount++;
    	#next;
    }
    
    ## получает данные по битов/образца
    $bits = $1 если (s/=~ $data \ бита s {2} \ /Sample:, то\ s+ (. *?)\ n//);
    если (! определенное $bits) {
    	печать «[ОШИБКА]: Данные по битов/образца для ого по $file. \ n»;
    	печать ERRLOG «[ОШИБКА]: Данные по битов/образца для ого по $file. \ n»;
    	$errorCount++;
    	#next;
    }
    
    ## получает данные по образцов/пиксела
    $pixels = $1 если (образца s/\ s =~ $data 2} {\ /Pixel:, то\ s+ (. *?)\ n//);
    если (! определенное $pixels) {
    	печать «[ОШИБКА]: Данные по образцов/пиксела для ого по $file. \ n»;
    	печать ERRLOG «[ОШИБКА]: Данные по образцов/пиксела для ого по $file. \ n»;
    	$errorCount++;
    	#next;
    }
    
    ## получает значение AlphaChnl (биты * пикселы)
    $alphachnl = $bits * $pixels;
    если (== $alphachnl 1) {, то
    	$alphachnl = «bkwhts»;
    }
    elsif (== $alphachnl 8) {
    	$alphachnl = «красит»;
    }
    elsif (== 24 $alphachnl) {
    	$alphachnl = «doLOGO»;
    }
    еще {
    	$alphachnl = «unknwn»;
    }
    
    ## получает данные по разрешения
    мои @r = $config {«разрешение»} - > ($1) если (разрешение s/\ s =~ $data {2}:, то\ s+ (. *?)\ n//);
    
    ## получает данные по ширины/длины
    мо ($w, $l) = ($1, $2) если (s/=~ $data \ ширина изображения s {2}:, то (\ d+) длина изображения: ) (\ d+ \ n//);
    
    Ширина ##
	если (! определенное $w) {
		печать «[ОШИБКА]: Ширина для ого $file. \ n»;
		печать ERRLOG «[ОШИБКА]: Ширина для ого $file. \ n»;
		$errorCount++;
		#next;
	}

    Длина ##
	если (! определенное $l) {
		печать «[ОШИБКА]: Длина для ого $file. \ n»;
		печать ERRLOG «[ОШИБКА]: Длина для ого $file. \ n»;
		$errorCount++;
		#next;
	}
	
	Разрешение ##
	если (! определенное $r [0] || ! определенное $r [1]) {
		печать «[ОШИБКА]: Разрешение для ого $file. \ n»;
		печать ERRLOG «[ОШИБКА]: Разрешение для ого $file. \ n»;
		$errorCount++;
		#next;
	}	
		
	## получает размер архивов TIF (f)
	мо $filesize = (-) s $fullpath/(1024 * 1024);
    мо $size_in_mb = sprintf «%.2f», $filesize;
    
    Проверка на наличие ошибки ##
    если ($errorCount > 0) {, то
    	печать «[INFO]: не было обработано $file, слишком много ошибок. \ n»;
    	затем;
    }
    
    s/\ n$//=~ $data;

	## ** для доводка - печати, котор нужно экранировать **
    печать $/##, соединяет («: », $file, $cs, $bits, $pi, $w, $l, @r, $size_in_mb, «\ n»), $data,» \ n ";
    печать «обрабатывая $file \ n»;

    печать OUT1 $/, соединяет («; », $file, $cs, $bits, $pixels, $pi, $w, $l, @r, $size_in_mb, «\ n»), $data,» \ n ";
    
    Выход LA ##
    если (eq «LA» $state) {, то
    	печать OUT2 «$file; », «$cs; », «$alphachnl; », «$pi; », «$w; », «$l; », «$r [0]; $r [1]; ; ; », «$size_in_mb; ; », «\ '$batch; ; ; ; », «старт; », «$file; ; ; ; ; ; ; ; ; ; », «$size_in_mb; », «движение; », «$file; », «сделанное \ $dir_root \; », «\ n»;	
    }
    Выход NM ##
    elsif (eq «NM» $state) {
    	печать OUT2 «$file; », «$cs; », «$alphachnl; », «$pi; », «$w; », «$l; », «$r [0]; $r [1]; ; ; », «$size_in_mb; ; », «\ '$batch; ; ; ; », «старт; », «$file; », «$size_in_mb; », «движение; », «$file; », «сделанное \ $dir_root \; », «\ n»;
    	затем;
    }
    Выход ## OK/UT
    elsif (eq $state «ОДОБРЕННОЕ» || eq «UT» $state) {
    	печать OUT2 «$file; », «$cs; », «$alphachnl; », «$pi; », «$w; », «$l; », «$r [0]; $r [1]; ; ; », «$size_in_mb; ; », «\ '$batch; ; ; ; », «старт; », «$file; », «$size_in_mb; », «движение; », «$file; », «сделанное \ $dir_root \; », «старт; », $file. «f; », «движение; », $file. «f; », «$dir_root \ \ сделанное \ \ TEMPdone; », «\ n»;
    	затем;
    }
    Выход ## TX/WY
    elsif (eq «TX» $state || eq «WY» $state) {
    	печать OUT2 «$file; », «$cs; », «$alphachnl; », «$pi; », «$w; », «$l; », «$r [0]; $r [1]; », «\ \ \ движения $dir_root \ $file $dir_root \ $cs \ $file; ; », «$size_in_mb; ; », «\ '$batch; ; ; », «старт; », «\ \ $dir_root \ $cs \ $file; », «$file; », «$size_in_mb; », «движение; », «\ \ $dir_root \ $cs \ $file; », «сделанное \ $dir_root \; », «старт; », $file. «f; », «движение; », $file. «f; », «$dir_root \ \ сделанное \ \ TEMPdone; », «\ n»;
    	затем;
    }
    elsif (eq $state «НИКАКИЕ» || eq $state»--« || eq $state «ДРУГОЕ») {
    	печать OUT2 «$file; », «$cs; », «$alphachnl; », «$pi; », «$w; », «$l; », «$r [0]; $r [1]; », «$size_in_mb \ n»;
    	затем;
    }
}

закройте (OUT1) или умрите «не смогите закрыть out1: $! »; 
закройте (OUT2) или умрите «не смогите закрыть out2: $! »; 
закройте (ERRLOG) или умрите «не смогите закрыть учет ошибок: $! »;
закройте ($fh) или умрите «не смогите закрыть $fh: $! »;
class=

Ответ : Вопрос итерирования Perl

Будет адресом электронная почта ЕДИНСТВЕННЫЙ деталь в том поле памятки? Iий " m держа пари оно не, поэтому вы иметь некоторый метод для того чтобы найти что адресом электронная почта в поле памятки, и AFAIK там будут никакое действие builtin macro которое сделает что - вам будет нужно использовать регулярно выражения, которые могут оценить текстовую строку/архив и возвратить к вам сопрягаемый шнур, основанный на «выражением» вы поставка.

Кодий прикрепленное ниже сделает это. Как раз экземпляр/затир те детали в новый стандартный модуль (имя basTextFunctions модуля, или что-нибудь подобное), и после этого используют функцию FindEmailInString для того чтобы возвратить первый адрес электронная почта размещали в шнуре. Для того чтобы сделать что, принимающ вас имейте форму на которой поле памятки присутствует, вы smogли включить кнопку для того чтобы показать значение:

Sub MyButton_Click ()
  Msgbox FindEmailInString (Me.YourMemoField)
Подводная лодка конца

Заметьте Кодего для того регулярно выражения пришл от страницы Джон Nurick превосходной здесь: http://www.j.nurick.dial.pipex.com/Code/index.htm

Для того чтобы прочитать больше о регулярно выражениях, см. нашего собственного статью Патрик Matthew на Reg Ex: http://www.experts-exchange.com/articles/Programming/Languages/Visual_Basic/Using-Regular-Expressions-in-Visual-Basic-for-Applications-and-Visual-Basic-6.html?sfQueryTermInfo=1+30+express+regular





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:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
117:
118:
119:
120:
121:
122:
123:
124:
125:
126:
127:
128:
129:
130:
131:
132:
133:
134:
135:
136:
137:
138:
139:
140:
141:
142:
143:
144:
145:
146:
147:
148:
149:
150:
151:
152:
153:
154:
155:
156:
157:
158:
159:
160:
161:
162:
163:
164:
165:
166:
167:
168:
169:
170:
171:
172:
173:
174:
175:
176:
177:
178:
179:
180:
181:
182:
183:
184:
185:
186:
Общественная функция FindEmailInString (StringToSearch как шнур) как шнур

Тусклое sExp как шнур

sExp = «\ b [A-Z0-9. _%+-] +@ [A-Z0-9. -] + \. [A-Z] {2.4} \ b»
rgxExtract FindEmailInString (StringToSearch, sExp)

Функция конца
Общественное rgxExtract функции (опционная цель ByVal как вариант, _
    Опционная картина как шнур = "", _
    Опционный деталь ByVal как длиной = 0, _
    Опционное CaseSensitive как булевско = ложно, _
    Опционное FailOnError как булевско = True, _
    Опционно упорствуйте как булевское = ложное) _
  Как вариант
   
  'Функция регулярно выражения сопрягая целесообразная для пользы
  'в VB/A вообще и в вопросах доступа.
  'Джон Nurick. Обновленный 14-ое января 06.
   
  'Принимает шнур поиска (цель) и регулярно выражение
  '(Картина), и опционный аргумент деталя.
  '- Если деталь снят и подстрока цели сопрягает картину, то
  '  возвращения подстрока.
  '- Если картина вклюает собирать скобки, то подстрока цели
  '  сопрягает картину, и деталем будет интежер, возвращает submatch
  '  определено Деталем (первым submatch будет деталь 0). Если не
  '  достаточные submatches, Null возвращений. Отрицательные значения старта деталя
  '  подсчитывающ с последним submatch.
  '- Если никакая спичка, возвращения не аннулирует.
  '- Возвращения аннулируют на ошибке если FailOnError не быть поистине.
  '  Всегда сопрягает против всей цели (т.е. глобально и
  '  Многополосно будьте поистине).
  
  'CaseSensitive спички независимо от случая.
 
  'Управление упорствует ли составленный предмет RegExp
  'остает в памяти готовой для следующего звонока к
  'функция или размещан ли она немедленно. Это
  'намеревает функцию можно использовать в вопросах без иметь
  'создаться, составьте, используйте и разрушьте новый предмет RegExp для
  'каждый будучи обрабатыванным рядок. Но он также намеревается что предмет
  'остатки в памяти после вопроса бежали. Разрушить
  'возразите и выпустите память, вызовите эту функцию одно
  'последний раз без аргументов.
  '
  'Вызывающ функцию с по-разному аргументами (например новой
  'Картина) recompiles предмет RegExp, так
  'функцию можно использовать в по-разному вопросах. Как бы там
  'могут быть проблемы если 2 резьбы вызывают функцию на
  'такое же время.
 
  rgxPROC_NAME Const = «rgxExtract»
  Статический штуф как предмет 'VBScript_RegExp_55.RegExp
    'Статические середины объявления мы не должны создаться
    'и составьте предмет RegExp каждое одиночное время
    'функция вызвана.
  Тусклые oMatches как предмет 'VBScript_RegExp_55.MatchCollection
   
  На ошибке переход ErrHandler
  значение невыполнения обязательства rgxExtract = Null 'возвращенное
    'N.B.: если FailOnError ложно, то возвращает Null на ошибке
 
  Если IsMissing (цель) после этого
    'Это будет сигнал размещать штуфа
    Установите штуф = ничего
    Выходите функция 'с автоматически принимаемым значением
  Закончитесь если
   
  'Создайте предмет RegExp если обязательно
  Если штуф ничего после этого
    Установите штуф = CreateObject («VBScript.Regexp»)
  Закончитесь если
 
  С штуфом
    'Проверите ли в настоящее время аргументы (за исключением цели)
    'отличите те, котор хранят в штуфе, и уточните их
    '(таким образом recompiling regex) только если обязательно.
    Если CaseSensitive = .IgnoreCase после этого
      .IgnoreCase = не .IgnoreCase
    Закончитесь если
    . Глобально = True
    . Многополосно = True
'    Если многополосно <> . Многополосно после этого
'      . Многополосно = многополосно
'    Закончитесь если
    Если картина <> . Картина после этого
      . Картина = картина
    Закончитесь если
 
  'Окончательно, исполните спичку
    Если IsNull (цель) после этого
      rgxExtract = Null
    Еще
      Установите oMatches = oRE.Execute (цель)
      Если oMatches.Count > 0 после этого
        Если oMatches (0) .SubMatches.Count = 0 после этого
          'Отсутствие () группы в картине: возвратите спичку
          Если деталь < 0="" Then="">= oMatches.Count
              'Положительный деталь превысил число спичек
              rgxExtract = Null
              Если FailOnError после этого
                Err.Raise 9
              Закончитесь если
            Покрывайте еще
              rgxExtract = oMatches (деталь)
          Конец отборный
         
        Еще  'будут один или больше () захваченные группы в картине
              'возвратите одно определенное Деталем
          С oMatches (0) .SubMatches
            Если деталь < 0="" Then="">=. Отсчет
                'Положительный деталь превысил число submatches
                rgxExtract = Null
                Если FailOnError после этого
                  Err.Raise 9
                Закончитесь если
              Покрывайте еще 'действительный номер деталя
                rgxExtract =. Деталь (деталь)
            Конец отборный
          Конец с
        Закончитесь если
      Еще
        rgxExtract = Null
      Закончитесь если
    Закончитесь если
  Закончитесь с
 
  'Аккуратный поднимающий вверх и нормальный выход
  Если не упорствовать после этого установил штуф = ничего
  Выходите функция
 
ErrHandler:
  Если FailOnError после этого
    С заблуждайтесь
      Выберите случай. Номер
        'Замените «сообщение предмет-определенной ошибки» невыполнения обязательства
        Случай 9: . Описание = «приписка из ряда (_ номера деталя спрошенного»
          & «был большле чем число ых спичек, или чем номер» _
          & «(...) собирать/захватывая скобки в картине).»
        Случай 13: . Описание = «тип рассогласование, вероятно потому что» _
          & «аргумент "" цели "" не smog быть преобразован к шнуру»
        Случай 5017: . Описание = «ошибка синтаксиса в регулярно выражении»
        Случай 5018: . Описание = «непредвиденный квантор в регулярно выражении»
        Случай 5019: . Описание = «после того как я предположено «]» в регулярно выражении "
        Случай 5020: . Описание = «после того как я предположено ")» в регулярно выражении "
      Случай еще
        Если штуф ничего после этого 'суменным для того чтобы создать предмет Regexp
          . Описание = «не smogло создать предмет VBScript.RegExp. » & Err.Description
        Еще 'непредвиденная ошибка
          . Описание = rgxPROC_NAME & «: » &. Описание
        Закончитесь если
      Закончите отборное
      Установите штуф = ничего
      . Поднимите Err.Number, rgxPROC_NAME, _
          rgxPROC_NAME & «(): » &. Описание
    Конец с
  Еще 'терпеть неудачу молчком
    Err.Clear
    Установите штуф = ничего
  Закончитесь если
Закончите функцию
Другие решения  
  •  Как я добавляю кнопки на форме PDF для того чтобы добавить/извлекаю рядки данных?
  •  Шнур ошибки в блоке задвижки?
  •  сколько вариант сервера SQL на одной машине
  •  Внешний вид 2007 не может архивный файл открытой сети сохраненный
  •  Активно директория DNS записывает вопрос
  •  Отчет о доступа 2010 экспорта к CSV с коллекторами?
  •  Прокладчик OCE 9400 не начинает
  •  как добавить десятичное место в формуле в отчете о кристалла seagate
  •  Windows XP и Мичрософт Оутлоок и проблемы установителя Windows
  •  VB6 к VS2010 - консультации тренировки?
  •  
    programming4us programming4us