Терминал сбора данных

Clarion, Clarion 7

Модератор: Дед Пахом

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Ответить
gopstop2007
✯ Ветеран ✯
Сообщения: 1702
Зарегистрирован: 25 Март 2009, 21:55
Благодарил (а): 9 раз
Поблагодарили: 4 раза

Терминал сбора данных

Сообщение gopstop2007 »

Есть китайский терминал с которого импорт данных на компьютер, собранные данные в виде списка (штрих код, кол-во) сбрасываются в блокнот или в открытый Excel. Попросили автоматизировать данный процесс. Проверил Clipboard() не используется.
Создал окно в нем поле l_loadWorkData STRING(4096). Парсю перебором всех символов. Разделитель поставил ';' , но не получается определить конец строки CR, определяю так:

Код: Выделить всё

l_CLRF           EQUATE('<13,10>')
r_symb	     STRING(1)
r_field           BYTE
r_fieldAdd      STRING(256)    
CODE

    lastEnd# = LEN(CLIP(l_loadWorkData))
    r_field = 1
    LOOP i# = 1 TO lastEnd#
        r_symb = l_loadWorkData[i#]
        ! ====== записываем в поля ==============
        IF (r_symb =';' OR r_symb ='ж' OR r_symb ='Ж')
            ! штрих код
            IF l_pBCsort = r_field 
                Any1Table_m:str2 = r_fieldAdd                
            END
            ! кол-во
            IF l_pBCsort = r_field 
                Any1Table_m:str1 = r_fieldAdd
            END
            
            r_fieldAdd = ''
            r_field += 1
       ! ========== конец строки =================     
        ELSIF (r_symb = CHR(13) OR r_symb = '<13>' OR r_symb = l_CLRF) ! НЕ ВИДИТ ОКОНЧАНИЕ СТРОКИ
            Any1Table_m:id = next#
            ADD(Any1Table_m)
            l_loadWorkData = ''
            next# += 1
        ! ========== считываем по символам ========    
        ELSE
            r_fieldAdd = CLIP(r_fieldAdd) & r_symb    
        END    
    END
Может кто сталкивался и есть решение, без блокнота или Excel :)
Спасибо за внимание.
“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 4561
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 6 раз
Поблагодарили: 34 раза

Терминал сбора данных

Сообщение finsoftrz »

Окончание строки может иметь один код <10>. В юниксовых приладах так обычно бывает. Гляньте файло в шестнадцатеричном редакторе (far или чем пользуетесь).
C6/C11, ШВС, tps/btrieve.
gopstop2007
✯ Ветеран ✯
Сообщения: 1702
Зарегистрирован: 25 Март 2009, 21:55
Благодарил (а): 9 раз
Поблагодарили: 4 раза

Терминал сбора данных

Сообщение gopstop2007 »

finsoftrz писал(а): 18 Май 2021, 18:03 Окончание строки может иметь один код <10>. В юниксовых приладах так обычно бывает. Гляньте файло в шестнадцатеричном редакторе (far или чем пользуетесь).
Спасибо большое, Вы правы, проверил, работает. :ty:
“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп
Ответить