parser

Написать ответ на текущее сообщение

 

 
   команды управления поиском

regexp

ELEKTpoHuK 27.09.2009 20:09

Настроил на локальной машине NConvert скачанный отсюда http://www.kulikoff.net/parser3/img/ Все прекрасно работало. Но стал переносить все это на хостинг (в данном случае masterhost freebsd 6.2) и сразу при запросе информации об изображении стала появляться ошибка.
Стал искать причину -
$fResult.text - выдавал информцию о файле в исходном виде
$fResult.stderr - выдавал wmftogif: not found
$fResult.status - выдавал 0

** NCONVERT v5.50 (c) 1991-2009 Pierre-E Gougelet (Sep 16 2009/14:59:37) **
Version for FreeBSD x86 (X11) (All rights reserved)
** This is a freeware software (for non commercial use)


/home/u98130/hev-dog.ru/www//_pic_/dogs/146.jpg : Success
Format : JPEG TrueColor (v1.2)
Name : jpeg
Compression : JPEG
Width : 600
Height : 400
Components per pixel : 3
Bits per component : 8
Depth : 24
# colors : 16777216
Color model : RGB
Bytes Per Plane : 1800
Orientation : Top Left
Xdpi : 100
Ydpi : 100
Page(s) : 1
, wmftogif: not found
, 0

Стал искать причину дальше и остановился на том, что не срабатывает регулярное выражение
^fInfo.text.match[^^\s*(\S.+\S)\s+:\s+(.+)\s*^$][gm]
при этом выражение
^fInfo.text.match[^^\ *(.+)\ +:\ +(.+)\ *^$][gm] срабатывает но не дает приемлемый результат
т.к. \s и \S относятся к Спецсимволам в регулярных выражениях то я сделал вывод, что именно спецсимволы и не срабатывают.

Встречался ли кто-нибудь с такой проблемой? Как можно ее решить?
На всякий случай выкладываю код функции в которой происходит ошибка
@_parseInfo[fInfo][sDummy;tSize]
$result[
	$.hRaw[^hash::create[]]
]
# этот код срабатывает и информация пишется в файл но не убирает пробелы после первого слова
$f_info_text[$fInfo.text]
$f_info_match[^f_info_text.match[^^\ *(.+)\ +:\ +(.+)\ *^$][gm]]
^f_info_match.save[/f_info_match.txt]

^if(!$fInfo.status && def $fInfo.text){
	
# а этот код уже не срабатывает
$sDummy[^fInfo.text.match[^^\s*(\S.+\S)\s+:\s+(.+)\s*^$][gm]{
		^result.hRaw.add[$.[$match.1][$match.2]]
		^switch[$match.1]{
			^case[Name]{^result.add[$.sFormat[$match.2]]}
			^case[Compression]{^result.add[$.sCompression[$match.2]]}
			^case[Width]{^result.add[$.iWidth($match.2)]}
			^case[Height]{^result.add[$.iHeight($match.2)]}
			^case[Xdpi]{^result.add[$.iXdpi[$match.2]]}
			^case[Ydpi]{^result.add[$.iYdpi[$match.2]]}
			^case[# colors]{^result.add[$.iColors[$match.2]]}
		}
	}]
}
#end @_parseInfo