Страница 1 из 5

QR - код

Добавлено: 01 Август 2012, 12:13
john113@rambler.ru
Кто то сталкивался с печатью QRкода?

Re: QR - код

Добавлено: 01 Август 2012, 19:51
svru
Есть вариант , но только завтра вечером. QR - это модно.

Re: QR - код

Добавлено: 02 Август 2012, 18:04
svru
Пробуйте.

Re: QR - код

Добавлено: 08 Август 2012, 23:45
ABBASoft
В Вашем примере QR.zip не описана переменная RAW. Что это за переменная?

Re: QR - код

Добавлено: 09 Август 2012, 5:06
Admin
The RAW attribute of a PROCEDURE prototype specifies that STRING or GROUP parameters pass the memory address only. This allows you to pass just the memory address of a *?, STRING, or GROUP parameter, whether passed by value or by reference, to a non-Clarion language procedure or function. Normally, STRING or GROUP parameters pass the address and the length of the string. The RAW attribute eliminates the length portion. For a prototype with a ? parameter, the parameter is taken as a LONG but passed as a "void *" which just eliminates linker warnings. This is provided for compatibility with external library functions that expect only the address of the string.

If a function is prototyped with one of the following return types: ?, *? or *STRING, and the prototype has the RAW attribute, the return value is treated as a LONG.

Example:

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

 MAP
  MODULE('Party3.Obj')                 !A third-party library
Func46 PROCEDURE(*CSTRING),REAL,C,RAW  !Pass CSTRING address-only to C function
  END
 END

Re: QR - код

Добавлено: 09 Август 2012, 5:20
Admin
Вот сразу работающий код :)
Только куда сунуть l:shtr после рутинки я не знаю. Это к автору.

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

                        PROGRAM

LPCSTR                  EQUATE(CSTRING)
DWORD                   EQUATE(ULONG)
WORD                    EQUATE(USHORT)
BOOL                    EQUATE(SIGNED)
LPSTR                   EQUATE(STRING)    

                        MAP
                          MODULE('QRCode.LIB')
                             _enQRCode(*CSTRING, WORD, WORD, WORD) RAW, PASCAL, NAME('QRCodeEncode')
                             QRGetRows(), WORD, RAW, PASCAL, NAME('QRCodeGetRows')
                             QRGetCols(), WORD, RAW, PASCAL, NAME('QRCodeGetCols')
                             QRGetCharAt(WORD, WORD), WORD, RAW, PASCAL, NAME('QRCodeGetCharAt')
                          end
                        END

l:shtr                  CSTRING(4096)
l:mode                  WORD
l:rows                  WORD
l:errCorLev             WORD
l:len                   BYTE
lo:rows                 WORD
lo:column               WORD

  CODE
  DO set_shtr
  MESSAGE(l:shtr)

set_shtr routine

 l:shtr      = '12345678901234567890'
 l:mode      = 2
 l:errCorLev = 0
 l:rows      =  3
 l:len       = len(clip(l:shtr))
 if l:len > 0
   _enQRCode(l:shtr, l:mode, l:errCorLev, l:rows)
   lo:rows = QRGetRows()
   lo:column = QRGetCols()
   l# = 1
   loop i# = 0 to lo:rows - 1
     loop j# = 0 to lo:column - 1
       l:shtr[l#] = chr(QRGetCharAt(i#, j#))
       l# += 1
     end
     l:shtr[l#] = '<13>'
     l# += 1
     l:shtr[l#] = '<10>'
     l# += 1
   end
   l:shtr[l#] = '<0>'
 end

Re: QR - код

Добавлено: 09 Август 2012, 22:57
ABBASoft
Уважаемый ADMIN, большое спасибо за уточненный пример, но, все же, при компиляции дает з ошибки:
Illegal return type or atribute!
на все три процедуры (QRGetRows(), WORD, RAW, PASCAL, Name, QRGetCols(), WORD, RAW, PASCAL, Name, QRGetCharAt(WORD,WORD), WORD, RAW, PASCAL, Name),
которые вставлены в Global MAP, и курсор стоит вначале RAW
С уважением, ABBASoft.

Re: QR - код

Добавлено: 09 Август 2012, 23:45
Admin
В проект добавляли LIB файл?
Какая версия Clarion?
Каков опыт работы с Clarion?, а то вопросы такие ...

P.S. Все это к тому что код, который я дал, скомпилирован и был запущен на C6.3

Re: QR - код

Добавлено: 10 Август 2012, 13:00
Дед Пахом
Скорее всего тип WORD неопределён, надо заменить на USHORT:
WORD EQUATE(USHORT)

Re: QR - код

Добавлено: 10 Август 2012, 15:13
ABBASoft
Уважаемый ADMIN, Ваша програмка у меня была вставлена в Application, библиотека была подцеgлена (определена) в Project.
но выдавало з ошибки. Теперь я сделал как у Вас (программа .clw + определил Project) и все Ок. Ваш пример заработал.
Почему он не работал в APP - не известно.
Но что теперь делать с содержимым в строке l:shtr??? Автор примера QR-кода, подскажите, пожалуйста, что делать дальше?
С уважением, ABBASoft.

Re: QR - код

Добавлено: 10 Август 2012, 21:17
svru
l:shtr может быть размещено в форме, репорте как обычное edit-поле, но при этом необходимо указать шрифт , предварительно установив в систему(панель управления - шрифты), который включен в состав zip-файла.
Надо было мне приложить пример в TXA формате, но это только в понедельник.А впрочем лучше app целиком. :oops:

Re: QR - код

Добавлено: 10 Август 2012, 22:13
ABBASoft
Благодарим всех за отзывчивость (SVRU, ADMINa, Деда Пахома). Ждем от SVRU .app.
С уважением, ABBASoft.

Re: QR - код

Добавлено: 13 Август 2012, 18:58
svru
qr-code + бонус - pdf417
barcode.zip
(79.39 КБ) 390 скачиваний

Re: QR - код

Добавлено: 13 Август 2012, 22:29
ABBASoft
Уважаемый SVRU, большое спасибо за пример, но как из этого кода получить картинку?
Мне ее необходимо напечатать.
С уважением, ABBASoft (ABBASoft@ukr.net).

Re: QR - код

Добавлено: 14 Август 2012, 17:01
svru
Легче простого. Пример можно посмотреть тут. http://www.pisoft.ru/verstak/barfonts.htm Он отностися, конечно, к штрихкоду code-39, но принцип такой же.