Я пытаюсь разобрать файл .txt, используя PostScript с интерпретатором Ghostscript. Файлы .txt представляют собой файлы журналов, из которых мне нужно извлечь отметку даты. В файле будет строка типа «дата: [01-May-2011 06:41:52]». Я пытаюсь просто вывести часть «01-May-2011 06:41:52» (без скобок и т. д.) в PDF.
Мой код PostScript:
/grabdate {
linehold ([) search { pop pop % get everything after brackets
(]) search {exch pop exch pop % get everything before brackets
== flush
} {pop} ifelse
} {pop} ifelse
} def
/strrx 256 string def % temp line stash
/filename (C:\\path\\to\\file.txt) def
filename (r) file /myworkfile exch def % name of opened file
{myworkfile strrx readline {/linehold exch store grabdate}
{myworkfile closefile exit} ifelse
} loop
Используя Ghostscript в командной строке, я ввожу команду:
gswin32c \
-q \
-dNOPAUSE \
-dBATCH \
-sOutputFile=out.pdf \
-sDEVICE=pdfwrite myfile.ps
Код PostScript частично работает, поскольку он выводит правильно проанализированную строку «дата» на стандартный вывод (из-за == flush
), но моя проблема в том, что я не могу заставить операцию «grabdate» записать ту же самую «дату». string в PDF, а не в стандартный вывод. Есть ли набор команд PostScript, которые я могу использовать для этого? Что мне здесь не хватает?
Любая помощь приветствуется.