Форум » [x]Harbour » Ошибка в функции AT() » Ответить

Ошибка в функции AT()

Softlog86: По документации : SYNTAX AT( <cSearch>, <cString>, [<nStart>], [<nEnd>] ) --> nPos ARGUMENTS <cSearch> is the substring to search for. <cString> is the searched character string. <nStart> A numeric expression indication the position of the first character in <cString> to begin the search with. It defaults to 1. <nEnd> A numeric expression indication the position of the last character in <cString> to include the search. It defaults to Len(<cString>). По факту - nStart и nEND - не обрабатывается и работает как обычный поиск подстроки в строке , возвращая номер символа ....

Ответов - 31, стр: 1 2 All

Dima: Пример в студию

Pasha: Эти 2 параметра - расширение xHarbour. В Harbour функция At совместима с Clipper, и не поддерживает это расширение. Вместо нее надо использовать функцию hb_At, в ней параметры nStart, nEnd поддерживаются

evgeny2006: Pasha пишет: Вместо нее надо использовать функцию hb_At, в ней параметры nStart, nEnd поддерживаются Скажите, пожалуйста, существует ли где перечень поддерживаемых и неподдерживаемых функций и их замена (заменяемость)?


santy: Документация по Harbour -> http://www.elektrosoft.it/tutorials/Harbour-Reference-Guide/harbour-reference-guide.htm или скачать исходники Harbour в каталоге DOC. Если надо различия между Harbour and xHarbour тогда смотрите в каталоге DOC исходников Harbour файл xhb-diff.txt. Также можна посмотреть файл hbcompat.ch в каталоге contrib\xhb\ исходников Harbour. Если вам нужно краткое описание перехода с xHarbour на Harbour то смотрите вики на сайте Xailer -> MIGRATION GUIDE TO HARBOUR

evgeny2006: santy пишет: или скачать исходники Harbour в каталоге DOC. Спасибо за рекомендации! Все это у меня есть, но беда в том, что никак не могу понять, как все это использовать! Скачал себе различные версии .chm файлов и окончательно с ними запутался. Например. понадобилась мне функция чтения строки из текствого файла. Я применил FReadStr, но в другом руководстве уже говорится, что эта функция для чтения бинарных файлов. Она работает и с текстовыми файлами, но вместо одной строки считывает файл целиком. В другом руководстве (вероятно по-новее), нашел ссылку на функцию HB_FReadLine, что вроде бы меня устраивало. Но при компиляции выдается ошибка о неразрешенной внешней ссылки _HB_FUN_HB_FREADLINE. Ясно, что необходимо подключить какую-то библиотеку! Но какую? В описании функции приводится следующая информация: Source: rtl\fnsplit.c LIB: xhb.lib DLL: xhbdll.dll И что с этим делать? Что подключать? Буду признателен за Ваши советы. Заранее спасибо

Dima: evgeny2006 пишет: Но при компиляции выдается ошибка о неразрешенной внешней ссылки _HB_FUN_HB_FREADLINE Если собирать с помощью HBMK2 то он при компиляции и сборке он подскажет какой либы не хватает. Что касается чтения строк из файла я использую HBNF. Пример тут harbour\contrib\hbnf\tests\fttext.prg

Haz: Dima пишет: И что с этим делать? Что подключать? в папке UTILS лежит Hb_lib сделал ее когда надоело искать функции по библиотекам. работать элементарно - в поиске набираем имя не найденной функции, видим в какой библиотеке она живет и подключаем ее

Dima: Haz пишет: в папке UTILS лежит Hb_lib у себя что то в упор не вижу

evgeny2006: Haz пишет: в поиске набираем имя не найденной функции, видим в какой библиотеке она живет и подключаем ее Вопрос1 А как подключить эту библиотеку? Так: #require "xhb" или так: #require "xhb.lib" И откуда подключать- из contrib?

evgeny2006: Dima пишет: Если собирать с помощью HBMK2 то он при компиляции и сборке он подскажет какой либы не хватает. К сожалению не подсказывает. Просто открывает окно с предложением ввести дополнительные библиотеки. А можно ли это сделать вручную и как? Например, у меня выдает ошибку _HB_FUN_HB_FREADLINE. Функция находится в xhb.lib. Как подключить? Кстати, IDE не сохраняет введенные данные, а набирать каждый раз заново муторно.

Dima: evgeny2006 пишет: Функция находится в xhb.lib. Как подключить? Смотря как собирать. Если с помошью HBP файла то просто указать что то типа C:\hb32mingw\contrib\xhb\xhb.hbc Если из командной строки то -lC:\hb32mingw\contrib\xhb\xhb.hbc PS У меня компилятор Mingw

Haz: Dima пишет: у себя что то в упор не вижу в поставку минигуи включена, но под BCC под MinGw я не делал

evgeny2006: Dima пишет: Смотря как собирать. Если с помошью HBP файла то просто указать что то типа C:\hb32mingw\contrib\xhb\xhb.hbc Все, что у меня есть - это компиляция и сборка (BCC) с помощью . bat файлов или через IDE. Пробовал и так, и так. Все равно облом! Получается так, что за что не возьмусь, везде или ошибки, или недоговоренность, или просто элементарное отсутствие информации.

Haz: evgeny2006 пишет: или просто элементарное отсутствие информации. Да есть же вся информация .Запустите C:\MiniGui\Batch\Compile.bat без параметров в консоли и на экран выдаст все ключи, среди них /L - link additional library т.е в вашем случае в bat нужно добавить /L xhb PS. Просмотрите compile.bat в примерах (Advanced) MiniGui, там часто ключ /L указывается PPS: "...если ничто не помогает - прочти наконец инструкцию" - т.е. не надо спешить, надо внимательно изучить примеры

Dima: Haz Вероятно у него BCC лежит не там где по умолчанию он прописан в Compile.bat из папки C:\MiniGUI\BATCH\ Значит нужно поправить строчечку if not defined MG_BCC set MG_BCC=c:\bcc55 (на папку где он у него живет)

evgeny2006: Haz пишет: "...если ничто не помогает - прочти наконец инструкцию" Вы как всегда правы! Спасибо! Вот это я и называю - отсутствие систематической информации! Где-то, что-то можно случайно найти или кто-то подскажет, также случайным образом получив информацию. Давайте, хотя бы возьмем эту тему. Я имею ввиду заголовок. С чего начилось? С несоответствия описания команды и ее возможности. Я случайно попал на эту тему, т.к практически накануне столкнулся с этой же проблемой. Я ее просто взял и обошел. Но есть вещи, которые или сложно обойти, или очень трудоемко. За что ни возьмусь, всюду меня подталкивают в низкоуровневое программирование. Для меня это не проблема - я просто этого делать не хочу!!! Haz пишет: Запустите C:\MiniGui\Batch\Compile.bat без параметров в консоли и на экран выдаст все ключи, среди них /L - link additional library За подсказку большое спасибо! Но разве это дело по мелочам выцарапывать отовсюду нужную Вам информацию!

evgeny2006: Dima пишет: Вероятно у него BCC лежит не там где по умолчанию он прописан У меня путь к BCC следующий: C:\borland\bcc55 Я подозреваю себя в излишней экономии дискового пространства. Даже сегодня было желание все стереть и установить заново. У меня вначале было также установлено hwgui. И я не помню, была ли папка "contrib" в minigui или нет. Точно помню, что эту папку копировал и вставлял в minigui. Думаю проблема может быть в этом. Вообще же я, когда я что-либо устанавливаю впервые, всегда стараюсь использовать установки по умолчанию.

Dima: evgeny2006 пишет: У меня путь к BCC следующий: C:\borland\bcc55 Отлично. А что прописано в if not defined MG_BCC set MG_BCC= в папке C:\MiniGUI\BATCH\ , файла Compile.bat ? Примеры по ходу собираются из Минигуи ?

Haz: evgeny2006 пишет: Где-то, что-то можно случайно найти Никаких случайностей нет 1. ВСЯ информация в ОТКРЫТОМ виде, начиная от исходников самого Harbour и далее, ничего выцарапывать не надо 2. проект СВОБОДНО распространяемый и помощи по нему на просторах инета - не перечитать. В этом есть и свои минусы по части систематизации, но никто не неволит, есть коммерческие разработки , можно их купить и обоснованно "делать мозги" разработчикам за свои деньги. 3. низкоуровневым программированием тут не пахнет, все на уровне НАЧАЛЬНЫХ знаний bat файлов и СТАНДАРТНЫХ функций Harbour (Clipper) если конечно вы не имеете в виду это недостойным вашего уровня и не желаете учиться принципиально. 4. В этой теме вам дали ответ чтоб не плодить новой всего из двух сообщений которые не носят познавательного характера - см п.1 5. Установочные комплекты BCC и MiniGui после их установки по умолчанию - сразу начинают работать , никакой настройки не требуется 6. Как же еще можно изучить язык , не смотря стандартные примеры и инструментарий ? Наше первое знакомство началось с вашего упрека в сторону простейшей функции Directory() в хелпе к которой черным по белому все расписано что и как работает. Вы же читать не захотели и итог мы все помним. В вашем случае, если действительно есть желание научиться - то нужно сначала читать, а потом писать критику, хотя может вас вернуться к программированию после административной работы заставили обстоятельства и вы этому отчаянно сопротивляетесь - тогда может и начинать не стоит. 7. вам тут все же отвечают и будут отвечать, Ведь вы получили ответы на все свои вопросы, возможно не моментально, но да. какое же это выцарапывание ? это и есть обучение Давайте сменим вектор от критики всего и всех к простым вопросам типа как сделать то или это, где посмотреть и т.д. ведь уже начало получаться

evgeny2006: Dima пишет: Примеры по ходу собираются из Минигуи ? Примеры собираются по ходу и нормально работают! В if not defined MG_BCC прописано: if not defined MG_BCC set MG_BCC=c:\borland\bcc55 Спасибо за участие!



полная версия страницы