Нортон (компьютерный журнал)

Главная  Статьи обзоры  Видео-ролики  REXX-скрипты  [+] Опубликовать  
 
Поиск по нашему сайту:
 

Генерация текстов

#xx #xx

Обработка текстов

CSV файлы

#xx #xx

Шедулеры

#xx #xx

Инсталяторы

SysInfo

xxx:0004

2022/10/07

Yuri Larin ------- 1) это обработка текстового файла. точнее, обработка N файлов. Да, поиск файлов по маске "*.properties" в поддиректории "de" и обработка их на основе данных из одноимённых файлов из поддиректории "ru". * что делает с каждым файлом? Ищет строки вида "ключ = значение" и заменяет "значение" строкой из файла с русскими ресурсами, если там "ключ" будет найден. Если в русском файле не найдёт такой "ключ", то оставляет "значение" как есть, из немецкого файла. ------ Вот простой скрипт, из последних, использовал для создания xpi-файла русификации SeaMonkey 2.42.9 на основе немецкого варианта с хоббесов и русификации предыдущей версии SeaMonkey:


/* Ищем и переносим строки из русской локали в немецкую */

if RxFuncQuery('SysLoadFuncs') then do
  call RxFuncAdd 'SysLoadFuncs', 'RexxUtil', 'SysLoadFuncs'
  call SysLoadFuncs
 end

curdir = directory()

call SysFileTree curdir||'\de\*.properties', 'Files', 'FOS'

do i = 1 to Files.0
  say i
  call TransFile Files.i
end

say 'Done 'Files.0' files.'
exit

TransFile: procedure expose curdir
  parse arg FileDE
  FileRU  = overlay('\ru\chrome\ru\locale\ru\', FileDE, length(curdir)+1)
  OutFile = FileDE||"_ru"

  if stream(FileRU,"C","Query Exists") <> "" then do
    i = 1
    do while lines(FileRU) > 0
      RuName.0 = i
      InStr = linein(FileRU)
      parse value InStr with RuName.i '=' RuStr.i
      RuName.i = translate(space(RuName.i))
      RuStr.i = space(RuStr.i)
      if RuStr.i \= '' then i = i + 1
    end
    say stream(FileRU,"C","CLOSE") 'RU=' RuName.0

    do while lines(FileDE) > 0
      InStr = linein(FileDE)
      parse value InStr with DeName '=' DeStr
      if DeStr \= '' then do
        OutStr = ''
        do i = 1 to RuName.0
          if translate(space(DeName)) = RuName.i then do
            if left(DeStr,1) = ' ' then RuStr.i = ' '||RuStr.i
            OutStr = DeName||'='||RuStr.i
          end
          if translate(space(DeName)) = RuName.i then leave
        end
        if OutStr = '' then OutStr = InStr
      end
      else OutStr = InStr

      call LineOut OutFile, OutStr
    end
    call LineOut OutFile
    say stream(FileDE,"C","CLOSE") OutFile
  end
return 0


 

 

Нортон - сайт-спутник интернет-магазина eCo Shop eCo Shop принадлежит компании Сибирский Медведь