Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/VBS сортировка txt реестров СБРФ - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
VBS сортировка txt реестров СБРФ
casper200 Дата: Пятница, 02.11.2012, 10:51 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 9
Репутация: 0 ±
Замечаний: 0% ±

hi ALL
Есть реестр СБ РФ в формате txt, нужно разбить файл txt на несколько (по участкам) в зависимости от лицевого счета.
т.е.[vba]
Code
' инициализация массива "имен dbf-файлов с диапазонами номеров книг"
ad = Array( _
      Array("1-й участок", 20100, 20216), _
      Array("2-й участок", 20257, 20514, 20634, 20636), _
      Array("4-й участок", 20777, 20777), _
      "3-й участок")
[/vba]
есть модифицированный конвертер использовался раньше

Прошу помочь исправить конвертер,

Приветствуется любая помощь, лучше с примерами и кометами, т.к. в VBA я ЧАЙНИК!
К сообщению приложен файл: test.txt (1.7 Kb) · txt_txt.xls (86.5 Kb)
 
Ответить
Сообщениеhi ALL
Есть реестр СБ РФ в формате txt, нужно разбить файл txt на несколько (по участкам) в зависимости от лицевого счета.
т.е.[vba]
Code
' инициализация массива "имен dbf-файлов с диапазонами номеров книг"
ad = Array( _
      Array("1-й участок", 20100, 20216), _
      Array("2-й участок", 20257, 20514, 20634, 20636), _
      Array("4-й участок", 20777, 20777), _
      "3-й участок")
[/vba]
есть модифицированный конвертер использовался раньше

Прошу помочь исправить конвертер,

Приветствуется любая помощь, лучше с примерами и кометами, т.к. в VBA я ЧАЙНИК!

Автор - casper200
Дата добавления - 02.11.2012 в 10:51
Hugo Дата: Воскресенье, 04.11.2012, 02:27 | Сообщение № 2
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3691
Репутация: 790 ±
Замечаний: 0% ±

365
Ничего не понял - что нужно то в итоге? Что не работает?


webmoney: E265281470651 Z422237915069
USDT TRC20: TN8XeEF17o5KPBD9pNwYzNyruycuAc2mVD
 
Ответить
СообщениеНичего не понял - что нужно то в итоге? Что не работает?

Автор - Hugo
Дата добавления - 04.11.2012 в 02:27
casper200 Дата: Вторник, 06.11.2012, 06:39 | Сообщение № 3
Группа: Пользователи
Ранг: Прохожий
Сообщений: 9
Репутация: 0 ±
Замечаний: 0% ±

hi Hugo, вообще то Матрена уже отреагировала, могу выложить результат...
требовалось следующее
из одного (общего) реестра сделать несколько (т.е. отсортировать по участкам в зовисимости от л/сч. это второй столбец после кода 6700038: 20111 :) + в шапке поправить кол-во записей в реестре и сумму реестра соответственно
# 397 ;Номер реестра
# 15960.00 ;Сумма реестра
# 0.00 ;В том числе пеня
# 231.43 ;Удержанная сумма
# 15960.00 ;Сумма к перечеслению
# 9 ;Число записей

# 670058 ;Код агента
# 49 ;Номер услуги
# 24/09/2012 00:00:00 ;Дата формирования реестра
# 21/09/2012 08:08:31 ;Начало диапазона дат документов, входящих в реестр
# 21/09/2012 17:35:34 ;Конец диапазона дат документов, входящих в реестр
#21/09/2012:332720:
6700038:20111:029:01:21/09/2012:09.2012:11:0:0:БЕЗ АДРЕСА,БЕЗ АДРЕСА,БЕЗ АДРЕСА,БЕЗ АДРЕСА:10941:1110136;3000.00;21/09/2012;5408614

реестр 1 уч. - 20100-20216
реестр 2 уч. - 20257-20514, 20634-20636
реестр 3 уч. - остальные
реестр 4 уч. - 20777-20777
 
Ответить
Сообщениеhi Hugo, вообще то Матрена уже отреагировала, могу выложить результат...
требовалось следующее
из одного (общего) реестра сделать несколько (т.е. отсортировать по участкам в зовисимости от л/сч. это второй столбец после кода 6700038: 20111 :) + в шапке поправить кол-во записей в реестре и сумму реестра соответственно
# 397 ;Номер реестра
# 15960.00 ;Сумма реестра
# 0.00 ;В том числе пеня
# 231.43 ;Удержанная сумма
# 15960.00 ;Сумма к перечеслению
# 9 ;Число записей

# 670058 ;Код агента
# 49 ;Номер услуги
# 24/09/2012 00:00:00 ;Дата формирования реестра
# 21/09/2012 08:08:31 ;Начало диапазона дат документов, входящих в реестр
# 21/09/2012 17:35:34 ;Конец диапазона дат документов, входящих в реестр
#21/09/2012:332720:
6700038:20111:029:01:21/09/2012:09.2012:11:0:0:БЕЗ АДРЕСА,БЕЗ АДРЕСА,БЕЗ АДРЕСА,БЕЗ АДРЕСА:10941:1110136;3000.00;21/09/2012;5408614

реестр 1 уч. - 20100-20216
реестр 2 уч. - 20257-20514, 20634-20636
реестр 3 уч. - остальные
реестр 4 уч. - 20777-20777

Автор - casper200
Дата добавления - 06.11.2012 в 06:39
Hugo Дата: Вторник, 06.11.2012, 10:21 | Сообщение № 4
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3691
Репутация: 790 ±
Замечаний: 0% ±

365
Hi, casper200!
И всё равно в деталях непонятно.
То, что нужно разложить строки в 3 кучки - это понятно, и это уже делал тот код.
Непонятно было с шапкой - что-то там формировалось, что из чего и что конкретно нужно - самим придумывать/анализировать нужно, кому охота гадать?
Хотя вероятно какой-то Матрёне была охота smile
Да и сейчас непонятно с шапкой - 2 суммы и количество правим, остальное нет? Но ведь там тоже что-то может измениться, например "Удержанная сумма"?
Ну ладно, раз сделано - можно не отвечать.
Но тот код, что был в файле - я бы полностью сделал иначе, без копирования всяких листов и сохранения их в текст.
Ну теперь уж ладно - раз работает, то сочинять другой вариант думаю нерационально.

Но мысль была такая - критерии в словарь, затем перебором строк (сравниваем с словарём) формируем 3 коллекции строк, и сразу 3 массива строк шапки (ну или их можно сделать потом перебором этих коллекций).
Затем на основе собранного генерим 3 файла.


webmoney: E265281470651 Z422237915069
USDT TRC20: TN8XeEF17o5KPBD9pNwYzNyruycuAc2mVD
 
Ответить
СообщениеHi, casper200!
И всё равно в деталях непонятно.
То, что нужно разложить строки в 3 кучки - это понятно, и это уже делал тот код.
Непонятно было с шапкой - что-то там формировалось, что из чего и что конкретно нужно - самим придумывать/анализировать нужно, кому охота гадать?
Хотя вероятно какой-то Матрёне была охота smile
Да и сейчас непонятно с шапкой - 2 суммы и количество правим, остальное нет? Но ведь там тоже что-то может измениться, например "Удержанная сумма"?
Ну ладно, раз сделано - можно не отвечать.
Но тот код, что был в файле - я бы полностью сделал иначе, без копирования всяких листов и сохранения их в текст.
Ну теперь уж ладно - раз работает, то сочинять другой вариант думаю нерационально.

Но мысль была такая - критерии в словарь, затем перебором строк (сравниваем с словарём) формируем 3 коллекции строк, и сразу 3 массива строк шапки (ну или их можно сделать потом перебором этих коллекций).
Затем на основе собранного генерим 3 файла.

Автор - Hugo
Дата добавления - 06.11.2012 в 10:21
casper200 Дата: Среда, 07.11.2012, 07:45 | Сообщение № 5
Группа: Пользователи
Ранг: Прохожий
Сообщений: 9
Репутация: 0 ±
Замечаний: 0% ±

hi Hugo,
Идея Ваша мне нравится, но как я писал выше в VBA - чайник!...
Quote (Hugo)
То, что нужно разложить строки в 3 кучки - это понятно, и это уже делал тот код.
- OK

Quote (Hugo)
Непонятно было с шапкой - что-то там формировалось, что из чего и что конкретно нужно - самим придумывать/анализировать нужно, кому охота гадать?
зачем гадать? в шапке будут меняться только ко-во строк, и сумма реестра, т.к. при экспорте сотф проверяет эти параметры.
в остальном у всех реестров шапка идентична. Если общий реестр с №321 то все реестры (разбитые по участкам сколько бы их не получилось будут с № 321 и дата и абсолютно все параметры КРОМЕ)

# 15960.00 ;Сумма реестра
# 15960.00 ;Сумма к перечислению
# 9 ;Число записей

эти параметры будут меняться, т.к. если из общего реестра для уч.1 будут выделены 3 записи на общую сумму 300 р. то эти данные в шапке реестра для 1 уч. и нужно указать
# 300.00 ;Сумма реестра
# 300.00 ;Сумма к перечислению
# 3 ;Число записей

Фсе...
Я как мог конвертер переписал, т.к. при переводе в dbf там и сроки местами менялись и и поля другие были и т.д.
на сколько смог разобрался строки склеил обратно, сумму считать научился, кол-во строк тоже... шапку корректно не могу сам, собрать для всех реестров формируемых.

Хотя бы накидайте скрипт формирования шапки, без описания постараюсь сам разобраться как работает...
вот код Матрены, (надеюсь не обидеться, хотя разрешения не спрашивал...) Она почему то не весь массив целиком грузит (содержимое txt файла)а кусочками (разбивает на несколько столбцов)... в результате , при сохранении, получаются "съеденные" строки (МАТРЕНА СИЛЬНО ОБИДЕЛАСЬ, ЗА ТО ЧТО Я ВЫЛОЖИЛ МАКРОС И ЗА МОИ "РАЗБОРЫ" НА ФОРУМЕ ЕЕ МАКРОСА, В СВЯЗИ С ЧЕМ УБИРАЮ ЕЕ МАКРОС И ПРИНОШУ СВОИ ГЛУБОЧАЙШИЕ ИЗВИНЕНИЯ), для профи это может и пара пустяков, я не знаю как это побороть... ;(


Сообщение отредактировал casper200 - Среда, 07.11.2012, 11:57
 
Ответить
Сообщениеhi Hugo,
Идея Ваша мне нравится, но как я писал выше в VBA - чайник!...
Quote (Hugo)
То, что нужно разложить строки в 3 кучки - это понятно, и это уже делал тот код.
- OK

Quote (Hugo)
Непонятно было с шапкой - что-то там формировалось, что из чего и что конкретно нужно - самим придумывать/анализировать нужно, кому охота гадать?
зачем гадать? в шапке будут меняться только ко-во строк, и сумма реестра, т.к. при экспорте сотф проверяет эти параметры.
в остальном у всех реестров шапка идентична. Если общий реестр с №321 то все реестры (разбитые по участкам сколько бы их не получилось будут с № 321 и дата и абсолютно все параметры КРОМЕ)

# 15960.00 ;Сумма реестра
# 15960.00 ;Сумма к перечислению
# 9 ;Число записей

эти параметры будут меняться, т.к. если из общего реестра для уч.1 будут выделены 3 записи на общую сумму 300 р. то эти данные в шапке реестра для 1 уч. и нужно указать
# 300.00 ;Сумма реестра
# 300.00 ;Сумма к перечислению
# 3 ;Число записей

Фсе...
Я как мог конвертер переписал, т.к. при переводе в dbf там и сроки местами менялись и и поля другие были и т.д.
на сколько смог разобрался строки склеил обратно, сумму считать научился, кол-во строк тоже... шапку корректно не могу сам, собрать для всех реестров формируемых.

Хотя бы накидайте скрипт формирования шапки, без описания постараюсь сам разобраться как работает...
вот код Матрены, (надеюсь не обидеться, хотя разрешения не спрашивал...) Она почему то не весь массив целиком грузит (содержимое txt файла)а кусочками (разбивает на несколько столбцов)... в результате , при сохранении, получаются "съеденные" строки (МАТРЕНА СИЛЬНО ОБИДЕЛАСЬ, ЗА ТО ЧТО Я ВЫЛОЖИЛ МАКРОС И ЗА МОИ "РАЗБОРЫ" НА ФОРУМЕ ЕЕ МАКРОСА, В СВЯЗИ С ЧЕМ УБИРАЮ ЕЕ МАКРОС И ПРИНОШУ СВОИ ГЛУБОЧАЙШИЕ ИЗВИНЕНИЯ), для профи это может и пара пустяков, я не знаю как это побороть... ;(

Автор - casper200
Дата добавления - 07.11.2012 в 07:45
Hugo Дата: Среда, 07.11.2012, 11:37 | Сообщение № 6
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3691
Репутация: 790 ±
Замечаний: 0% ±

365
Хорошо, на досуге посмотрю, если раньше не будет других ответов.
Но Вы скажите, как формируется (или откуда берётся)
# 231.43 ;Удержанная сумма
Процент какой-то некруглый... Или всем ставить в шапку эту строку без изменений?

Ну и я так полагаю, что шапка всегда 12 строк и одного вида, т.е. всегда Сумма реестра, Сумма к перечеслению и Число записей в одних и тех же строках, нужно только заменить числа?
Т.е. можно без доп.анализа брать первых 12 строк файла и в них менять 2, 5 и 6 строку? Ну и вопрос по строке 4 - её менять или нет?
Ещё (не хочется изучать те коды) - что с "3-й участок"? К нему относить все строки, которые не отобрались в другие участки, или его нет вообще? Зачем тогда он упомянут в ad = Array()?


webmoney: E265281470651 Z422237915069
USDT TRC20: TN8XeEF17o5KPBD9pNwYzNyruycuAc2mVD
 
Ответить
СообщениеХорошо, на досуге посмотрю, если раньше не будет других ответов.
Но Вы скажите, как формируется (или откуда берётся)
# 231.43 ;Удержанная сумма
Процент какой-то некруглый... Или всем ставить в шапку эту строку без изменений?

Ну и я так полагаю, что шапка всегда 12 строк и одного вида, т.е. всегда Сумма реестра, Сумма к перечеслению и Число записей в одних и тех же строках, нужно только заменить числа?
Т.е. можно без доп.анализа брать первых 12 строк файла и в них менять 2, 5 и 6 строку? Ну и вопрос по строке 4 - её менять или нет?
Ещё (не хочется изучать те коды) - что с "3-й участок"? К нему относить все строки, которые не отобрались в другие участки, или его нет вообще? Зачем тогда он упомянут в ad = Array()?

Автор - Hugo
Дата добавления - 07.11.2012 в 11:37
casper200 Дата: Среда, 07.11.2012, 12:10 | Сообщение № 7
Группа: Пользователи
Ранг: Прохожий
Сообщений: 9
Репутация: 0 ±
Замечаний: 0% ±

Hugo,
# 231.43 ;Удержанная сумма - это услуги банка они присутствуют не в каждом реестре и обработке не подлежат... менять ее не нужно.
в остальном Все поняли правильно. по третьему участку именно все оставшиеся, т.е. не разобранные пихаем туда... (вообще то есть и диапазон, просто тот кто писал этот конвертер видимо посчитал что не целесообразно еще одно условие пихать и организовал таким образом... )
огромное спасибо за помощь.
 
Ответить
СообщениеHugo,
# 231.43 ;Удержанная сумма - это услуги банка они присутствуют не в каждом реестре и обработке не подлежат... менять ее не нужно.
в остальном Все поняли правильно. по третьему участку именно все оставшиеся, т.е. не разобранные пихаем туда... (вообще то есть и диапазон, просто тот кто писал этот конвертер видимо посчитал что не целесообразно еще одно условие пихать и организовал таким образом... )
огромное спасибо за помощь.

Автор - casper200
Дата добавления - 07.11.2012 в 12:10
Hugo Дата: Четверг, 08.11.2012, 01:35 | Сообщение № 8
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3691
Репутация: 790 ±
Замечаний: 0% ±

365
Ну вот пока так, сколько сегодня успел.
Уже всё работает, но остались вопросы:
1. нужно ли генерить файлы, для которых нет строк?
2. куда собственно генерить файлы?
3. нужен ли диалог выбора файлов, или можно жёстко прописать путь? (как сейчас в коде, замените на свой)
4. в выходные файлы пишется лишний перевод строки в конце - если это критично, то можно усложнить код и это устранить.

5 строк позаимствовал, но чуть изменил smile
Если бы прописать все номера 3-го участка - код был бы чуть короче и проще, ну да ладно smile
Что где происходит - прописывать много, некогда, да и негде - это только сделает нечитаемым код sad
Код писал в Экселе, но можно вероятно запустить и под Вордом, или на vbs переписать - но под Экселем думаю вполне неплохо, можно например поставить на автозапуск при открытии файла (и работает быстрее, чем как vbs, хотя если строк не миллион, то практически разницу не почувствуете).


Да, изначальная идея чуть изменилась, но общее направление осталось.


webmoney: E265281470651 Z422237915069
USDT TRC20: TN8XeEF17o5KPBD9pNwYzNyruycuAc2mVD
 
Ответить
СообщениеНу вот пока так, сколько сегодня успел.
Уже всё работает, но остались вопросы:
1. нужно ли генерить файлы, для которых нет строк?
2. куда собственно генерить файлы?
3. нужен ли диалог выбора файлов, или можно жёстко прописать путь? (как сейчас в коде, замените на свой)
4. в выходные файлы пишется лишний перевод строки в конце - если это критично, то можно усложнить код и это устранить.

5 строк позаимствовал, но чуть изменил smile
Если бы прописать все номера 3-го участка - код был бы чуть короче и проще, ну да ладно smile
Что где происходит - прописывать много, некогда, да и негде - это только сделает нечитаемым код sad
Код писал в Экселе, но можно вероятно запустить и под Вордом, или на vbs переписать - но под Экселем думаю вполне неплохо, можно например поставить на автозапуск при открытии файла (и работает быстрее, чем как vbs, хотя если строк не миллион, то практически разницу не почувствуете).


Да, изначальная идея чуть изменилась, но общее направление осталось.

Автор - Hugo
Дата добавления - 08.11.2012 в 01:35
casper200 Дата: Четверг, 08.11.2012, 07:30 | Сообщение № 9
Группа: Пользователи
Ранг: Прохожий
Сообщений: 9
Репутация: 0 ±
Замечаний: 0% ±

hi Hugo,
огромное спасибо!
Quote (Hugo)
1. нужно ли генерить файлы, для которых нет строк?

НЕТ.
Quote (Hugo)
2. куда собственно генерить файлы?

туда же где лежит исходный файл
Quote (Hugo)
3. нужен ли диалог выбора файлов, или можно жёстко прописать путь? (как сейчас в коде, замените на свой)

да нужен. (т.к. само имя файла - реестра каждый раз новое... и пользователи меняются могут в разных местах выполнять)
Quote (Hugo)
4. в выходные файлы пишется лишний перевод строки в конце - если это критично, то можно усложнить код и это устранить.

нет - этот переход в конце как раз нужен.

Quote (Hugo)
Если бы прописать все номера 3-го участка - код был бы чуть короче и проще, ну да ладно

3-уч. 20600-20633,20637
Quote (Hugo)
Что где происходит - прописывать много, некогда, да и негде - это только сделает нечитаемым код
Код писал в Экселе, но можно вероятно запустить и под Вордом, или на vbs переписать - но под Экселем думаю вполне неплохо, можно например поставить на автозапуск при открытии файла (и работает быстрее, чем как vbs, хотя если строк не миллион, то практически разницу не почувствуете).
понимаю ВАС, там для ВАС все понятно как Божий день.
Скорость работы изумила, чувствуется рука МАСТЕРА!.
сейчас пытаюсь разобраться с кодом,
 
Ответить
Сообщениеhi Hugo,
огромное спасибо!
Quote (Hugo)
1. нужно ли генерить файлы, для которых нет строк?

НЕТ.
Quote (Hugo)
2. куда собственно генерить файлы?

туда же где лежит исходный файл
Quote (Hugo)
3. нужен ли диалог выбора файлов, или можно жёстко прописать путь? (как сейчас в коде, замените на свой)

да нужен. (т.к. само имя файла - реестра каждый раз новое... и пользователи меняются могут в разных местах выполнять)
Quote (Hugo)
4. в выходные файлы пишется лишний перевод строки в конце - если это критично, то можно усложнить код и это устранить.

нет - этот переход в конце как раз нужен.

Quote (Hugo)
Если бы прописать все номера 3-го участка - код был бы чуть короче и проще, ну да ладно

3-уч. 20600-20633,20637
Quote (Hugo)
Что где происходит - прописывать много, некогда, да и негде - это только сделает нечитаемым код
Код писал в Экселе, но можно вероятно запустить и под Вордом, или на vbs переписать - но под Экселем думаю вполне неплохо, можно например поставить на автозапуск при открытии файла (и работает быстрее, чем как vbs, хотя если строк не миллион, то практически разницу не почувствуете).
понимаю ВАС, там для ВАС все понятно как Божий день.
Скорость работы изумила, чувствуется рука МАСТЕРА!.
сейчас пытаюсь разобраться с кодом,

Автор - casper200
Дата добавления - 08.11.2012 в 07:30
Hugo Дата: Четверг, 08.11.2012, 10:13 | Сообщение № 10
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3691
Репутация: 790 ±
Замечаний: 0% ±

365
С вопросами понятно, разобрались - постараюсь за выходные сделать smile
Но смотрю изменились условия (вернее я их изначально неверно понял, т.к. Вы ничего не пояснили) - номера оказывается в диапазоне, это меняет подход.
Поэтому и косяк с первым участком.
Придётся часть кода переработать...

Для ясности напишите диапазоны номеров - пока стало понятно с
3-уч. 20600-20633,20637
Что с остальными?


webmoney: E265281470651 Z422237915069
USDT TRC20: TN8XeEF17o5KPBD9pNwYzNyruycuAc2mVD
 
Ответить
СообщениеС вопросами понятно, разобрались - постараюсь за выходные сделать smile
Но смотрю изменились условия (вернее я их изначально неверно понял, т.к. Вы ничего не пояснили) - номера оказывается в диапазоне, это меняет подход.
Поэтому и косяк с первым участком.
Придётся часть кода переработать...

Для ясности напишите диапазоны номеров - пока стало понятно с
3-уч. 20600-20633,20637
Что с остальными?

Автор - Hugo
Дата добавления - 08.11.2012 в 10:13
casper200 Дата: Четверг, 08.11.2012, 11:44 | Сообщение № 11
Группа: Пользователи
Ранг: Прохожий
Сообщений: 9
Репутация: 0 ±
Замечаний: 0% ±

Hugo,
Quote (Hugo)
Для ясности напишите диапазоны номеров - пока стало понятно с
3-уч. 20600-20633,20637
Что с остальными?

О_о они же в коде есть....
"1-й участок", "20100-20216"
"2-й участок", "20257-20514", "20634-20636"
3-уч. 20600-20633,20637 - только этого не було...
"4-й участок", "20777"
огромное спб. за помощь
 
Ответить
СообщениеHugo,
Quote (Hugo)
Для ясности напишите диапазоны номеров - пока стало понятно с
3-уч. 20600-20633,20637
Что с остальными?

О_о они же в коде есть....
"1-й участок", "20100-20216"
"2-й участок", "20257-20514", "20634-20636"
3-уч. 20600-20633,20637 - только этого не було...
"4-й участок", "20777"
огромное спб. за помощь

Автор - casper200
Дата добавления - 08.11.2012 в 11:44
Hugo Дата: Суббота, 10.11.2012, 16:37 | Сообщение № 12
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3691
Репутация: 790 ±
Замечаний: 0% ±

365
Получился такой код:

Для выбора файла использовал готовую функцию неизвестного автора smile

P.S. Если кто-то ищет тут код vbs - не ищите, нету...
Пытался сделать версию vbs - слишком много переделывать. В vbs нет коллекции, не работает так Mid...
Ну разве что если очень нужно vbs, то можно заняться.
К сообщению приложен файл: txt_txt_v2.rar (24.3 Kb)


webmoney: E265281470651 Z422237915069
USDT TRC20: TN8XeEF17o5KPBD9pNwYzNyruycuAc2mVD
 
Ответить
СообщениеПолучился такой код:

Для выбора файла использовал готовую функцию неизвестного автора smile

P.S. Если кто-то ищет тут код vbs - не ищите, нету...
Пытался сделать версию vbs - слишком много переделывать. В vbs нет коллекции, не работает так Mid...
Ну разве что если очень нужно vbs, то можно заняться.

Автор - Hugo
Дата добавления - 10.11.2012 в 16:37
casper200 Дата: Воскресенье, 11.11.2012, 09:07 | Сообщение № 13
Группа: Пользователи
Ранг: Прохожий
Сообщений: 9
Репутация: 0 ±
Замечаний: 0% ±

hi Hugo, Все устраивает
код спрессован максимально, пошагово выполнил основные моменты понял.
завтра проверю, на рабочих реестрах, думаю проблем быть не должно.
еще раз огромное спасибо за помощь!, надо учить VBA - мощный язык.
 
Ответить
Сообщениеhi Hugo, Все устраивает
код спрессован максимально, пошагово выполнил основные моменты понял.
завтра проверю, на рабочих реестрах, думаю проблем быть не должно.
еще раз огромное спасибо за помощь!, надо учить VBA - мощный язык.

Автор - casper200
Дата добавления - 11.11.2012 в 09:07
casper200 Дата: Понедельник, 12.11.2012, 07:27 | Сообщение № 14
Группа: Пользователи
Ранг: Прохожий
Сообщений: 9
Репутация: 0 ±
Замечаний: 0% ±

hi Hugo,
столкнулся с тем что в реестрах в конце файла переход строки, (в тестовом который я предоставлял. его нет...) поэтому при выполнении макроса происходит ошибка на строке
[vba]
Code
            t = Split(arrstr(i), ":", 3)(1): tt = "unknown"
[/vba] он видимо не понимает что конца достиг раз там переход на сл. строку, тут надо проверку как то сделать?
пока сделал так
[vba]
Code
        For i = 12 To UBound(arrstr) - 1
[/vba]
- работает, но не знаю достаточно ли этого?
 
Ответить
Сообщениеhi Hugo,
столкнулся с тем что в реестрах в конце файла переход строки, (в тестовом который я предоставлял. его нет...) поэтому при выполнении макроса происходит ошибка на строке
[vba]
Code
            t = Split(arrstr(i), ":", 3)(1): tt = "unknown"
[/vba] он видимо не понимает что конца достиг раз там переход на сл. строку, тут надо проверку как то сделать?
пока сделал так
[vba]
Code
        For i = 12 To UBound(arrstr) - 1
[/vba]
- работает, но не знаю достаточно ли этого?

Автор - casper200
Дата добавления - 12.11.2012 в 07:27
Hugo Дата: Понедельник, 12.11.2012, 10:19 | Сообщение № 15
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3691
Репутация: 790 ±
Замечаний: 0% ±

365
Перед
[vba]
Code
t = Split(arrstr(i), ":", 3)(1)
[/vba]добавьте
[vba]
Code
if len(trim(arrstr(i))) then
[/vba]ну и в конце закройте условие:
[vba]
Code
.Item(tt) = tArr
end if
Next
[/vba]Так будут обрабатываться только строки, где что-то есть.
Ну или ещё можно проверить на наличие в строке ":" :
[vba]
Code
if instr(arrstr(i),":") then
[/vba]Тогда можно идти до конца массива - а то вдруг попадётся файл, где нет этого последнего лишнего перевода строки?


webmoney: E265281470651 Z422237915069
USDT TRC20: TN8XeEF17o5KPBD9pNwYzNyruycuAc2mVD
 
Ответить
СообщениеПеред
[vba]
Code
t = Split(arrstr(i), ":", 3)(1)
[/vba]добавьте
[vba]
Code
if len(trim(arrstr(i))) then
[/vba]ну и в конце закройте условие:
[vba]
Code
.Item(tt) = tArr
end if
Next
[/vba]Так будут обрабатываться только строки, где что-то есть.
Ну или ещё можно проверить на наличие в строке ":" :
[vba]
Code
if instr(arrstr(i),":") then
[/vba]Тогда можно идти до конца массива - а то вдруг попадётся файл, где нет этого последнего лишнего перевода строки?

Автор - Hugo
Дата добавления - 12.11.2012 в 10:19
casper200 Дата: Понедельник, 12.11.2012, 12:53 | Сообщение № 16
Группа: Пользователи
Ранг: Прохожий
Сообщений: 9
Репутация: 0 ±
Замечаний: 0% ±

Hugo,
оставил
[vba]
Code
if instr(arrstr(i),":") then
t = Split(arrstr(i), ":", 3)(1)
....
.Item(tt) = tArr
end if
Next
[/vba] на мой взгляд так правильнее...
ЕЩЕ РАЗ СПАСИБО ОГРОМНОЕ
 
Ответить
СообщениеHugo,
оставил
[vba]
Code
if instr(arrstr(i),":") then
t = Split(arrstr(i), ":", 3)(1)
....
.Item(tt) = tArr
end if
Next
[/vba] на мой взгляд так правильнее...
ЕЩЕ РАЗ СПАСИБО ОГРОМНОЕ

Автор - casper200
Дата добавления - 12.11.2012 в 12:53
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!