ФИНАНСЫ БЕЗ ПРОБЛЕМ(tm):
ПЕРЕГОВОРНЫЙ ПУНКТ II

Добро пожаловать, Гость. Пожалуйста, выберите:
Вход || Регистрация.
05.12.24 в 00:37:42


Наш сайт | Cтаpый форум (до 08.2003 года) | Интернет-магазин & Центр загрузок |
Главная | Помощь | Поиск | Участники | Вход | Регистрация
Модифицированный Клиент CLW32:
Из документации ...
На форуме...

Использование Клиента FCM:
1. Отчетный период и журнал операций.
2. Печать.
3. Экспорт.
4. Многострочная операция.
5. Редактирование многострочных операций.
http://www.fwp-client.com

Работа с ФБП через браузер:
Настройка для лечебных учреждений, оказывающих медицинские услуги:
На форуме...
http://vasoft.ru

Технический аудит настройки.
[Читать]

ФИНАНСЫ БЕЗ ПРОБЛЕМ (сетевая) и Opencart:
предлагаем:
1. Выгрузка новых покупателей из интернет-магазина в план счетов и сохранение информации в extrd.dat.
2. Выгрузка данных о заказанном товаре и сохранение в ФБП в журнале операций, номер заказа регистрируем в плане счетов как с.счет.
3. Українська локалізація.






   Финансы без пpоблем: Пеpеговоpный Пункт II
   Пpедложения по усовеpшенствованию, сообщения об ошибках

   loadbin 4.21 для 2-х пользователей
« Предыдущая Тема | Следующая Тема »
Страниц: 1  Ответить | Уведомлять | Послать Тему | Печатать
   Автор  Тема: loadbin 4.21 для 2-х пользователей  (Прочитано 8782 раз)
Denis, Dnepropetrovsk

***



Я люблю этот Форум!

   
Просмотреть Профиль | E-мэйл

Сообщений: 129
loadbin 4.21 для 2-х пользователей
« В: 20.03.13 в 16:59:39 »
Цитировать | Править

Вот хотел упорядочить extrd.dat силами сервера.
Обнаружилась неприятная вещь:
Тестовая форма:
 
f1=[dir 0]+'extrd.old'
f2=[dir 0]+'extrd.new'
\>file f2
loadbin f1
LX=[ged 'lb.N']
^^^^^^^^LX
for i=1 to LX
    ST=[ged 'lb.'+[intsn i]]
    printstr ST to file f2
endfor
перезапись выполнена!!!
stop
 
Результат выполнения разный  Huh
Размер extrd.old  103775232 байта
 
Размер extrd.new после каждого выполнения разный:
1  103773080  
2  103773504
3  103772928
 
Это ошибка сервера или данные глотаются на этапе записи в файл??
 
После каждого выполнения сервер перезагружался!!!
 
Вечером попробую дома (этот пример выполнялся на удаленном сервере, где windows запущен виртуально под WMWARE).
Зарегистрирован
Boris, Kiev.

*****



Адепт ФБП  с 1996г.

   
Просмотреть Профиль | E-мэйл

Сообщений: 875
Re: loadbin 4.21 для 2-х пользователей
« Ответить #1 В: 20.03.13 в 22:51:12 »
Цитировать | Править

20.03.2013  22:43  156 187 136 extrd.dat
20.03.2013  21:33    2 695 872 extrd.new
20.03.2013  20:51    2 695 872 extrd.NEW1
20.03.2013  21:55  115 332 352 extrd.new110
20.03.2013  22:28  115 332 352 extrd.new110-2
20.03.2013  22:43  115 332 352 extrd.new110-posle_restarta
20.03.2013  19:17    2 695 936 extrd.OLD
11.03.2013  15:38    2 695 680 extrd.ORIDAT
13.02.2013  15:15  115 332 352 extrd.test110
 
Напугали, скорее всего ваша виртуальность сыграла.
Зарегистрирован
Denis, Dnepropetrovsk

***



Я люблю этот Форум!

   
Просмотреть Профиль | E-мэйл

Сообщений: 129
Re: loadbin 4.21 для 2-х пользователей
« Ответить #2 В: 22.03.13 в 11:25:33 »
Цитировать | Править

Вопрос снимается это были проблемы с Виндой под wmware  Embarassed
 
Кому интересно вот форма, преобразующая extrd.dat, в удобоваримый формат для просмотра и редактирования в far:
(перед запуском формы скопируйте extrd.dat в extrd.old в рабочем каталоге базы)
 
*Упорядочивание extrd.dat
*.on
*,off
f1=[dir 0]+'extrd.old'
f2=[dir 0]+'extrd.new'
\>file f2
loadbin f1
LX=[ged 'lb.N']+0.1
sl=0;SS=0
for i=1 to LX
    ST=[ged 'lb.'+[intsn i]]
    for k=1 to [length ST]+0.1
   sl=sl+1
   if     sl=256
     if SS=0  
   SS=[ch 10]
     else
   SS=SS+[ch 10]
     endif
     sl=0
   else
     if SS=0
   SS=[cp ST,k,1]
     else
   SS=SS+[cp ST,k,1]
     endif
   endif
   if [length SS]=250
      printstr SS to file f2
      SS=0
   endif
    endfor
endfor
if SS<>0
   printstr SS to file f2
endif
перезапись выполнена!!!
stop
 
Полученный extrd.new в fare можно редактировать, удаляя мусор построчно (1 строка =1 запись)
 
PS.
Прошу прощение за ложное сообщение об ошибке.
(сохраняйте оригинальный extrd.dat перед манипуляциями с ним Wink )
Зарегистрирован
Vladimir

****



Я люблю этот Форум!

   
Просмотреть Профиль | WWW |

Сообщений: 264
Re: loadbin 4.21 для 2-х пользователей
« Ответить #3 В: 14.05.13 в 05:10:15 »
Цитировать | Править

Денис, спасибо за форму.
Я понимаю, что после редактирования файл EXTRD.NEW вручную переименовывается в EXTRD.DAT, который правильно воспринимается программой?
 
А вы не пробовали XDEDIT.EXE?
 
После того, как я воспользоваля вашим алгоритмом, я обнаружил колоссальное количество записей такого вида:
 
93_153_215_26_052658.a1.120 S=GD
93_153_215_26_052658.a1.121 S=GD
93_153_215_26_052658.a1.122 S=GD
93_153_215_26_052658.a1.123 S=GD
93_153_215_26_052658.a1.124 S=GD
93_153_215_26_052658.a1.125 S=GD
 
похоже что это результат работы NULLCG.CGI.
Их очень много и удалять руками затруднительно.  
Кто-нибудь может посоветовать, как организовать подчистку (обнуление) таких записей?
Зарегистрирован

С уважением,
Владимир
Boris, Kiev.

*****



Адепт ФБП  с 1996г.

   
Просмотреть Профиль | E-мэйл

Сообщений: 875
Re: loadbin 4.21 для 2-х пользователей
« Ответить #4 В: 14.05.13 в 12:13:12 »
Цитировать | Править

Как это было давно, рекомендую к прочтению архивы ПП, сколько вопросов порешали..., с версии 3.14 есть такое:
 

IV) Пpи стаpте Сеpвеp пpоходит тепеpь так называемую R-фазу. Пpи этом файл extrd.dat пеpеписывается на новое место, и из него удаляются записи с нулевыми значениями.

 
Зачитайте loadtxt полученный файл (конечно если сразу не хотите или не можете), обнулите всё что считаете нужным удалить, не забудьте обнулить свой вызов loadtxt от 1 до [ged 'lt.N'] и конечно перезапустить сервер.
Зарегистрирован
Denis, Dnepropetrovsk

***



Я люблю этот Форум!

   
Просмотреть Профиль | E-мэйл

Сообщений: 129
Re: loadbin 4.21 для 2-х пользователей
« Ответить #5 В: 14.05.13 в 13:59:08 »
Цитировать | Править

Правильно extrd.new можно переименовать extrd.dat и подкинуть в рабочую базуGrin
 
Не люблю пользоваться сторонними *.exe, если можно не особо  напрягаясь написать самостоятельно и подправить под собственные нужды.
 
Loadtxt использовать необязательно.
 
Сам использовал полученный файл для определения ненужных индексов (у меня много индексов используется как служебные для переноса данных между формами и мне проще отследить их в полученном файле, чем копаться в формах и искать что я там использовал, к тому же за несколько лет там накопились остатки экспериментов Wink, которых по другому не найти)
 
Потом писал простейшую форму типа [sed ID,0] и рестарт сервера для удаления нулевых записей.
 
В Вашем случае форма имеет вид:
 
for i=0 to 999
     for j=0 to 9
          ID='93_153_215_26_052658.a'+[intsn j]+'.'
          if        i<10
                   ID=ID+'00'+[intsn i]
          elseif i<100
                   ID=ID+'0'+[intsn i]
          else
                   ID=ID+[intsn i]
          endif
          if [ged ID]<>0 [sed ID,0];endif
     endfor
endfor  
stop
 
Можно вложить еще несколько переборов чтобы проверить все варианты индексов  Grin
Если индексы единичные, то удалял руками :
Ctrl+Y замечательно удаляет строчку в Far
 
Таким образом за несколько часов я уменьшил свой extrd.dat c 3.5 gb до 1.5 gb (2 gb мусора было удалено для запуска новогоднего адаптера  Grin)
 
Удачи в очистке Smiley
« Изменён в : 14.05.13 в 14:09:28 пользователем: Denis, Dnepropetrovsk » Зарегистрирован
Vladimir

****



Я люблю этот Форум!

   
Просмотреть Профиль | WWW |

Сообщений: 264
Re: loadbin 4.21 для 2-х пользователей
« Ответить #6 В: 14.05.13 в 17:06:30 »
Цитировать | Править

on 14.05.13 в 13:59:08, Denis, Dnepropetrovsk wrote:
Можно вложить еще несколько переборов чтобы проверить все варианты индексов  Grin

 
Спсибо, Денис, за ответ. Всегда приятно, когда тебе помогают и делом и советом.  
В общем-то так и мыслилось. Ситуация, правдя, усугубляется тем, что IP много и разные. Хорошо, что мир еще не перешел на IPv6, а то перебирать пришлось бы многовато  
 Grin Grin Grin
« Изменён в : 14.05.13 в 17:10:25 пользователем: Vladimir » Зарегистрирован

С уважением,
Владимир
Boris, Kiev.

*****



Адепт ФБП  с 1996г.

   
Просмотреть Профиль | E-мэйл

Сообщений: 875
Re: loadbin 4.21 для 2-х пользователей
« Ответить #7 В: 14.05.13 в 19:22:55 »
Цитировать | Править

on 14.05.13 в 13:59:08, Denis, Dnepropetrovsk wrote:


for i=0 to 999
     for j=0 to 9
          ID='93_153_215_26_052658.a'+[intsn j]+'.'
          if        i<10
                   ID=ID+'00'+[intsn i]
          elseif i<100
                   ID=ID+'0'+[intsn i]
          else
                   ID=ID+[intsn i]
          endif

          if [ged ID]<>0 [sed ID,0];endif
     endfor
endfor  

stop
 
 

Выделенные строки - очень слабенькие.
Удивлен, что с гигами играетесь при этом.
Подправьте плз., здесь ведь бывает взыскательная публика, а не только жаждущие любой конкретики.
 
p.s.1. если не затруднит, параметры серверной машины и время R-фазы, очень интересно.
 
« Изменён в : 14.05.13 в 20:01:21 пользователем: Boris, Kiev. » Зарегистрирован
Vladimir

****



Я люблю этот Форум!

   
Просмотреть Профиль | WWW |

Сообщений: 264
Re: loadbin 4.21 для 2-х пользователей
« Ответить #8 В: 15.05.13 в 05:10:31 »
Цитировать | Править

on 14.05.13 в 19:22:55, Boris, Kiev. wrote:

Выделенные строки - очень слабенькие.

 
Любая конкретная помощь, даже написанная на скорую руку, лучше отсылки к руководству.
"Слабенькие" они или нет, не столь важно. Важно то, что они решают конкретную задачу. Человеку, занятому конкретным делом, надо выдавать результат.
 
"Взыскательной" же "публики", Борис, тут становится все меньше. Я, вообще, "публики" не вижу. Полагаю, что одной из причин снижения активности являются зачастую резкие и не дружелюбные комментари с вашей стороны.
« Изменён в : 15.05.13 в 05:19:06 пользователем: Vladimir » Зарегистрирован

С уважением,
Владимир
Boris, Kiev.

*****



Адепт ФБП  с 1996г.

   
Просмотреть Профиль | E-мэйл

Сообщений: 875
Re: loadbin 4.21 для 2-х пользователей
« Ответить #9 В: 15.05.13 в 07:19:42 »
Цитировать | Править

Лирическое отступление:
 
ПП не для скорой помощи «человекам, занятым конкретным делом», для скорой помощи есть e-mail.
«Конкретные люди» как правило платят нашим настройщикам деньги, а не расписывают свои проблемы в ожидании их решения на нашем ПП.
 
Увы, на ПП предполагается общение коллег .
Моя лично задача на ПП, не опустить уровень текстов ниже своего, заставить настройщика-коллегу подумать ещё раз перед тем как выбросить что-либо на публику.
Кто-нибудь напишет лучше, нет проблем, с местом, званием, любыми текстами, ведь уясните, мы, которых на ПП с конца 90-ых здесь уже нет, просто физически отходим, а болото оставлять не хочется. Не держите зла, расслабьтесь, никто оценок Вам не ставит, больше думайте о сути ФБП-вопросов.
 
Если Денис заснул, то ничего страшного, проснется, может и удивит чем, а может и просто скажет, «поторопился, сорри» или что-то в этом роде.
 
P.S. Vladimir(у), если отвечать, то плз. по существу вопроса. Хватит лирики. Спасибо.
Зарегистрирован
Denis, Dnepropetrovsk

***



Я люблю этот Форум!

   
Просмотреть Профиль | E-мэйл

Сообщений: 129
Re: loadbin 4.21 для 2-х пользователей
« Ответить #10 В: 16.05.13 в 10:44:40 »
Цитировать | Править

Извините за задержку..  
Я сюда не каждый день захожу просто...
 
Пример формы писал 3 мин. в момент ответа и не проверял ее даже. Тут просто показан принцип очистки, который сам использовал.
 
Параметры машины для Бориса:
 
core i5-2500K
16 GB RAM
OS Windows 2008 Enterprise SP2
Винт 500 гб WD5000AAKX
 
Текущий размер Extrd.dat 2.1 Gb
Крутится одновременно 4 сервера (3 вспомогательных значительно скромнее основного)
Запуск серверов в автозагрузке. Время R-фазы специально не замерял, но мин. через 15-25 после рестарта все сервера работают.
Сам компьютер перезагружается раз в месяц (1-го числа каждого месяца для возможности регистрации операции в новый месяц, ну или при сбое питания.)
Зарегистрирован
Boris, Kiev.

*****



Адепт ФБП  с 1996г.

   
Просмотреть Профиль | E-мэйл

Сообщений: 875
Re: loadbin 4.21 для 2-х пользователей
« Ответить #11 В: 16.05.13 в 12:47:03 »
Цитировать | Править

Спасибо, приятно, что такие громоздкие базы крутятся и даже без примочек по дискам. Будет время, просто засеките R-фазу. Интересно.
 
По поводу писем на ходу и наглядности, понятно, но Вы дали пищу для разбора алгоритма, т.к. уж очень наглядно можно и нужно показать как можно и как надо писать строчки кода, чтобы почти в два раза быстрее чистить Extrd.dat(и не толькоWink):
 
Вpеменной пpофиль фоpмы %_0
 
Количество выполнений: для фоpм не запоминается.
На это количество выполнений потpебовалось 84 мс = 100%
Распpеделение вpемени по стpокам исходного текста в относительных %, и мс:
 
     ~   ~I 0001 * Денис, Днепр.
     ~   ~I 0002 пример того, как не надо писать циклы и вставлять условия внутрь циклов, если есть возможность этого не делать.
     ~   ~I 0003 for i=0 to 999
     ~   4I 0004 for j=0 to 9
     ##### 26.2%  22I 0005      ID='92_153_215_26_052658.a'+[intsn j]+'.'
     ~   3I 0006      if   i<10
     ~   ~I 0007     ID=ID+'00'+[intsn i]
     ~   3I 0008      elseif i<100
     ~   ~I 0009     ID=ID+'0'+[intsn i]
     ~   ~I 0010      else
     ##### 27.4%  23I 0011     ID=ID+[intsn i]
     ~   1I 0012      endif
    ###### 29.8%  25I 0013      if [ged ID]<>0 [sed ID,0];endif
     ~   1I 0014 endfor
     ~   2I 0015 endfor
 
Вpеменной пpофиль фоpмы %_1
 
Количество выполнений: для фоpм не запоминается.
На это количество выполнений потpебовалось 51 мс = 100%
Распpеделение вpемени по стpокам исходного текста в относительных %, и мс:
 
     ~   ~I 0001 * ПРИМЕР
     ~   ~I 0002
     ~   ~I 0003 пример того, как надо писать циклы и обходиться без использования условий.
     ~   ~I 0004 L1='93_153_215_26_052658.a'
     ~   ~I 0005 for j=1 to 10 [A j,L1+[intsn (j-1)]+'.'];endfor
     ~   1I 0006 for i=0 to 999
     ~   4I 0007 IL=[cp [intsn(1000+i)],2,3]
     ~   4I 0008    for j=1 to 10
    ###### 33.3%  17I 0009       ID=[A j]+IL
      ######### 49.0%  25I 010       if [ged ID]<>0 [sed ID,0];endif
     ~   ~I 0011    endfor
     ~   ~I 0012 endfor
Зарегистрирован
Denis, Dnepropetrovsk

***



Я люблю этот Форум!

   
Просмотреть Профиль | E-мэйл

Сообщений: 129
Re: loadbin 4.21 для 2-х пользователей
« Ответить #12 В: 17.05.13 в 11:15:50 »
Цитировать | Править

Борис специально для Вас измерил время R-фазы
После w on  w off
R-фаза  длилалсь примерно 2.5 мин.
 
По поводу оптимального написания форм
Лично мое мнение, нужно учитывать для чего пишется форма и как ее используют.
Из особо нагруженных форм нужно выжимать из алгоритма все, чтобы форма выполнялась быстрее.
А для такой одноразовой формы как в примере такой прирост скорости себя не окупает...
(к тому же у Вас алгоритм перебора слегка изменен поэтому вы тестируете не только использование условий Wink хотя вариант [cp [intsn 1000+j],2,3] конечно оптимальнее )
А вообще таким образом перебрать все IP в приемлемое время не получится ни моим ни Вашим алгоритмом..
Так что если уж чистилку универсальную делать, тогда вариант без Loadtxt не пройдет.
Придется Loadtxt-ом грузить extrd.new выделять индекс и проверять индекс по какому-то условию (например если в индексе встречается 4 раза '_'  и в остатке строки после 4-го подчеркивания встречается '.a' , то 99.9% что этот индекс можно обнулять)..
Зарегистрирован
Страниц: 1  Ответить | Уведомлять | Послать Тему | Печатать

« Предыдущая Тема | Следующая Тема »

Powered by YaBB 1 Gold - SP 1.3.2!
Forum software copyright й 2000-2004 Yet another Bulletin Board