powered by simpleCommunicator - 2.0.58     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / анализ строки
16 сообщений из 41, страница 2 из 2
анализ строки
    #37272268
... третий баг:
при отсутствия разделителя в строке не проверяется условие Len(код_книги+абонент+договор)<=10
...
Рейтинг: 0 / 0
анализ строки
    #37272295
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
пробуй камнемпри отсутствия разделителя в строке не проверяется условие Len(код_книги+абонент+договор)<=10
Может, код_книги & абонент & договор ?
...
Рейтинг: 0 / 0
анализ строки
    #37272313
AndreTM,
без разницы(с)
Т.к. НЕ проверяется.
...
Рейтинг: 0 / 0
анализ строки
    #37273787
balbes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hi
пробуй камнем

Проблема разрешилась... Дело было в том что ПО анализирует кол-во знаков в полях "KNIGA_KD","ABON_NN","DOG_NB" при загрузке
если "KNIGA_KD" <> 5 знакам или должно быть "-1" то возникает ошибка...
руками поправил поле "KNIGA_KD" что бы соответствовало 5 знакам... файло подтянулось...

Думаю что нужно реализовать доп проверки, как вы и описывали на. кол-во знаков введенных в данное поле... и т.п. но боюсь тут все не предусмотреть, т.к. операторы СБ РФ уже новые варианты ввода лицевых практикуют. Буду с банком созваниваться что бы единообразить ввод лицевых...

Если есть идеи по проверке введенных в строку значений буду благодарен...
...
Рейтинг: 0 / 0
анализ строки
    #37273952
balbes... операторы СБ РФ уже новые варианты ввода лицевых практикуют.
...
Если есть идеи по проверке введенных в строку значений ...Для каждого варианта ввода - свою обработку. Геморр ещё тот. Но альтернатива balbesБуду с банком созваниваться что бы единообразить ввод лицевых... имхо, ещё менее радостная
...
Рейтинг: 0 / 0
анализ строки
    #37304202
balbes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hi ALL & пробуй камнем
из одного txt файла нужно сделать 3 dbf (Участки )
в зовисимости от значения книги поле № 2 в txt фйле. нужно данные запихнуть в один из 3 dbf
1 участок книги от 100-216
2 участок книги от 257-514
3 участок остальныен книги
в архиве txt файл и конвертр txt->dbf
помогите люди добрые...
да и злые тоже...
...
Рейтинг: 0 / 0
анализ строки
    #37304650
balbesв зовисимости от значения книги поле № 2 в txt фйле

Код: plaintext
1.
2.
3.
 6700038 : 20427 : 148 : 01 : 08 . 06 . 2011 :: 11 : 0 : 0 :М-ЗОРКАЛЬЦЕВА,...
^        ^     ^
поле0  поле1  поле2
...
Рейтинг: 0 / 0
анализ строки
    #37305121
balbes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hi пробуй камнем
спасибо огромное, неожидал так быстро...
разбираюсь с кодом...
...
Рейтинг: 0 / 0
анализ строки
    #37479941
balbes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hi пробуй камнем

не могу разобраться самостоятельно плз. подскажи....

Код: plaintext
1.
2.
3.
4.
5.
6.
' инициализация массива "имен dbf-файлов с диапазонами номеров книг"
ad = Array( _
     Array("1-й участок",  20100 ,  20216 ), _
     Array("2-й участок",  20257 ,  20514 ), _
     "3-й участок")
' инициализация массива счетчиков строк
arrRow = Array( 2 ,  2 ,  2 )
требуется разбивать на 4 реестра (файла)

Попробовал так... (получается ерунда, либо 3-й участок, либо "Юрики" реестр не формируется...)
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
' инициализация массива "имен dbf-файлов с диапазонами номеров книг"
ad = Array( _
     Array("1-й участок",  20100 ,  20216 ), _
     Array("2-й участок",  20257 ,  20514 ), _
     Array("Юрики",  20777 ,  20777 ), _
     "3-й участок")
' инициализация массива счетчиков строк
arrRow = Array( 2 ,  2 ,  2 )
И как можно добавить значения в 1 и 2 реестры участков если их номера выпадают из диапазонов 20100-20216 и 20257-20514 ?
Например 20640 - 1 участок, и 20156 - 2участок?

Конвертер немного модифицировал, поэтому выкладываю последний вариант. + файл реестра
...
Рейтинг: 0 / 0
анализ строки
    #37480034
balbes,
всё относится к процедуре Sub texthandling().
И как можно добавить значения в 1 и 2 реестры участков если их номера выпадают из диапазонов 20100-20216 и 20257-20514 ?
Например 20640 - 1 участок, и 20156 - 2участок?

Код: plaintext
1.
2.
'Добавляем одну переменную
Dim ii%
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
' инициализация массива "имен dbf-файлов с диапазонами номеров книг"
' (!) для каждого, кроме последнего, участка указываем диапазоны номеров
' (!) диапазоны не должны пересекаться, иначе получим неправильное распределение
' REM ИМХО: если количество участков/кол-во диапазонов будет расти, данный код будет сложно поддерживать
ad = Array( _
     Array("1-й участок",  20100 ,  20155 ,  20157 ,  20216 ,  20640 ,  20640 ), _
     Array("2-й участок",  20156 ,  20156 ,  20257 ,  20514 ), _
     Array("Юрики",  20777 ,  20777 ), _
     "3-й участок")
' инициализация массива счетчиков строк
' (!) количестко элементов должно соответствовать кол-ву елементов массива ad()
arrRow = Array( 2 ,  2 ,  2 ,  2 ) 
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
            ' на какой участок распределить книгу
            For i =  0  To Ub -  1 
            For ii =  1  To UBound(ad(i)) Step  2 
                If CLng(a( 1 )) >= CLng(ad(i)(ii)) Then
                If CLng(a( 1 )) <= CLng(ad(i)(ii +  1 )) Then
                    s = ad(i)( 0 ): ii =  0 
                    Exit For
                End If
                End If
            Next ii
                If ii =  0  Then Exit For
            Next i
            If s = "" Then s = ad(Ub): i = Ub
ЗЫ: (!) работоспособность кода не проверял.
...
Рейтинг: 0 / 0
анализ строки
    #37480502
balbes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
конвертер отрабатывает без ошибок...
НО... Участок 3 реестр не создается... туда должен попасть этот абонент.
Код: plaintext
 6700038 : 20620 : 056 : 01 : 10 . 10 . 2011 : 10 . 2011 : 11 : 0 : 0 :БЕЗ АДРЕСА,БЕЗ АДРЕСА, 0 , 0 :ВВЕДИТЕ ИЛИ НАЖМИТЕ ДАЛЕЕ:; 375 . 39 ; 10 . 10 . 2011 ; 587731178 
Голову сломал не могу разобраться....
...
Рейтинг: 0 / 0
анализ строки
    #37480581
Hugo121
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я бы делал проще и иначе - весь текст в массив по строкам типа
Код: plaintext
1.
a = Split(CreateObject("Scripting.FileSystemObject").OpenTextFile("C:\Temp\ree_.txt",  1 ).ReadAll, Chr( 10 ))
, создаём 3 пустых массива по этому размеру, перебор массива строк, бъём текущую строку в массив на поля Split'ом по двоеточию (так ведь нужно делить?) ну или анализируем по Mid().
Затем анализируем 2-е поле типа так:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
Sub tt()
Dim x

'1 участок книги от 100-216
'2 участок книги от 257-514
x =  220 

Select Case x
Case  100  To  216 : MsgBox  1 
Case  257  To  514 : MsgBox  2 
Case Else: MsgBox "Else"
End Select

End Sub
По результату раскладываем текущую строку в один из 3-х созданных массивов.
В конце верхушку каждого массива выгружаем в свой лист и сохраняем.
Можно циклом по этим массивам.
И кстати так легко править условия - добавить/изменить участки, даже если добавится 4-я группа, то нужно всего-лишь добавить один пустой массив по аналогии.
...
Рейтинг: 0 / 0
анализ строки
    #37481065
balbesконвертер отрабатывает без ошибок...
НО... Участок 3 реестр не создается... туда должен попасть этот абонент.
Код: plaintext
 6700038 : 20620 : 056 : 01 : 10 . 10 . 2011 : 10 . 2011 : 11 : 0 : 0 :БЕЗ АДРЕСА,БЕЗ АДРЕСА, 0 , 0 :ВВЕДИТЕ ИЛИ НАЖМИТЕ ДАЛЕЕ:; 375 . 39 ; 10 . 10 . 2011 ; 587731178 
Голову сломал не могу разобраться....Ещё один патчик
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
            ' если текущий лист не совпадает с требуемым
            If ws.Name <> s Then
            On Error Resume Next
                ' "ищем" требуемый лист в новойкниге
                Set ws = ws.Parent.Worksheets(s)
                
                If Err.Number <>  0  Then
                ' не нашли - скопировали шаблон
                    Err.Clear
                    With ws.Parent.Worksheets
                    'ThisWorkbook.Worksheets(2).Copy After:=ws
                        ThisWorkbook.Worksheets( 2 ).Copy After:=.Item(.Count)
                    'With ActiveWorkbook.Worksheets
                        Set ws = .Item(.Count)
                    End With
                    Application.CutCopyMode = False
                    ws.Name = s
                End If
            On Error GoTo  0 
            End If
...
Рейтинг: 0 / 0
анализ строки
    #37481117
balbes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GE пробуй камнем

Я уже путем титанических усилий тоже, определил, что при вставке последний лист переименовывается вместо, вставленного, но из-за не знания vba? парился с исправлением...

Вы как всегда меня выручили!...

ОГРОМНОЕ спасибо!...
...
Рейтинг: 0 / 0
анализ строки
    #37978621
balbes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hi ALL
помогите поправить конвертер. в полученные реестры после обработки нужно добавить "шапку" из оригинального txt, но исправить 2 строки
1- # 4810.00 ;Сумма реестра
2- # 9 ;Число записей
шапка реестра# 397 ;Номер реестра
# 4810.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:

оригинал реестра для обработки txt
# 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
6700038:20125:006:01:21/09/2012:09.2012:11:0:0:БЕЗ АДРЕСА,БЕЗ АДРЕСА,БЕЗ АДРЕСА,БЕЗ АДРЕСА:7183:1250089;650.00;21/09/2012;5409122
6700038:20777:002:18:21/09/2012:09.2012:11:0:0:БЕЗ АДРЕСА,БЕЗ АДРЕСА,БЕЗ АДРЕСА,БЕЗ АДРЕСА:0:;1500.00;21/09/2012;5409498
6700038:20187:061:01:21/09/2012:09.2012:11:0:0:БЕЗ АДРЕСА,БЕЗ АДРЕСА,БЕЗ АДРЕСА,БЕЗ АДРЕСА:20700:1870222;300.00;21/09/2012;5411416
6700038:20777:010:09:21/09/2012:09.2012:11:0:0:БЕЗ АДРЕСА,БЕЗ АДРЕСА,БЕЗ АДРЕСА,БЕЗ АДРЕСА:1:;8500.00;21/09/2012;5412687
6700038:20493:434:01:21/09/2012:09.2012:11:0:0:БЕЗ АДРЕСА,БЕЗ АДРЕСА,БЕЗ АДРЕСА,БЕЗ АДРЕСА:12200:4930122;450.00;21/09/2012;5413995
6700038:20777:007:74:21/09/2012:09.2012:11:0:0:БЕЗ АДРЕСА,БЕЗ АДРЕСА,БЕЗ АДРЕСА,БЕЗ АДРЕСА:1:;700.00;21/09/2012;5414237
6700038:20175:027:01:21/09/2012:09.2012:11:0:0:БЕЗ АДРЕСА,БЕЗ АДРЕСА,БЕЗ АДРЕСА,БЕЗ АДРЕСА:1:1750111;500.00;21/09/2012;5414306
6700038:20187:130:01:21/09/2012:09.2012:11:0:0:БЕЗ АДРЕСА,БЕЗ АДРЕСА,БЕЗ АДРЕСА,БЕЗ АДРЕСА:16770:1870103;360.00;21/09/2012;5417518
...
Рейтинг: 0 / 0
анализ строки
    #37992273
Hi balbes,
ещё бы неплохо было пароль на проект vba указать ))
...
Рейтинг: 0 / 0
16 сообщений из 41, страница 2 из 2
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / анализ строки
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]