program prjRead
implicit none
integer:: a
real(8) :: b
real(8) :: c
character(18) :: header
character(18) :: cAsString
character(18) :: cWithOutStops
open (123,file = "test.csv", DECIMAL='COMMA')
read(123,*) header
read(123,*) a, &
b, &
cAsString
cWithOutStops = drop_stops(cAsString)
read(cWithOutStops,*,decimal='comma') c
write(*,*) "gives c without decimal places"
write(*,*) a,b,c
write(*,*) "********************"
write(*,*) "second try, the function drop_stops does what it
promisses. If have to feed it with the right string"
cAsString ="123.456,78"
cWithOutStops = drop_stops(cAsString)
read(cWithOutStops,*,decimal='comma') c
write(*,*) a,b,c
contains
FUNCTION drop_stops(instr) RESULT(outstr)
CHARACTER(len=*), INTENT(in) :: instr
CHARACTER(len=:), ALLOCATABLE :: outstr
CHARACTER(len=1), DIMENSION(:), ALLOCATABLE :: str_array
ALLOCATE(str_array(LEN_TRIM(instr)))
str_array = TRANSFER(instr,str_array)
str_array = PACK(str_array,str_array /= '.')
ALLOCATE(CHARACTER(len=SIZE(str_array))::outstr)
outstr = TRANSFER(str_array,outstr)
END FUNCTION drop_stops
end program prjRead
Выходные данные
дают c без десятичных разрядов 5 56.670000000000002 123456.00000000000 ********************************************************* drop_stops делает то, что обещает. Если нужно указать правильную строку 5 56.670000000000002 123456.78000000000
blockquote>Решение HighPerformanceMarks почти готово. Мне не хватает только умения проглотить число с одним куском при чтении. или я читаю 2 строки и объединяю их.
Если вам не нравится использовать официально поддерживаемый AppleScript, JavaScript или VBScript, то есть также возможность сделать это на Python. Это объясняется в статье Создание сценариев Photoshop с помощью Python , в которой используется COM-интерфейс Photoshop.
Я не пробовал его, поэтому, если он вам не подходит:
Если ваш текст сохраняется после преобразования в SVG , вы можете просто заменить его любым инструментом, который вам нравится. Затем преобразуйте его в PNG (например, с помощью inkscape --export-png = ...
).
Задумывались ли вы об открытии и редактировании изображения в GIMP? Он имеет очень хорошую поддержку PSD и может быть написан на нескольких языках.
Какой из них вы будете использовать, частично зависит от вашей платформы, интерфейс Perl не работал в Windows, насколько мне известно. Я считаю, что Scheme поддерживается на всех портах.
Единственный способ, который я могу придумать для автоматизации изменения текста внутри PSD, - это использовать подстановку на основе регулярных выражений.
Этот метод, если он применим, будет работать, только если рассматриваемый слой содержит известную строку, которая может быть заменена другим вашим значением. Обратите внимание, что я не знаю, сработает ли это, так как у меня нет Photoshop на этом компьютере, чтобы опробовать этот метод. Может, у вас получится заставить его работать?
Что касается конвертации в png, я в недоумении. Если заменяющий сценарий написан на Python, вы можете сделать это с помощью библиотеки изображений Python (PIL, , которая, похоже, поддерживает его ), но в противном случае вам, возможно, придется просто открыть Photoshop, чтобы выполнить преобразование. Это означает, что, вероятно, вообще не стоит менять текст прагматично.
Вы можете использовать сам Photoshop, чтобы сделать это с помощью OLE. Конечно, вам нужно будет установить Photoshop. Win32 :: OLE в Perl или аналогичный модуль в Python. См. http://www.adobe.com/devnet/photoshop/pdfs/PhotoshopScriptingGuide.pdf
Если вы собираетесь автоматизировать Photoshop, вам в значительной степени придется использовать собственные системы сценариев Photoshop. Я не думаю, что есть способ обойти это.
Если взглянуть на проблему с другой стороны, можно ли экспортировать из Photoshop в какой-нибудь другой формат, поддерживающий слои, например PNG, который редактируется ImageMagick?