Форум » GUI » LOWER » Ответить

LOWER

Vlad04: Что -то не пойму !! Функция не работает. Пробовал в xHarboyr и MiniGui . Проверьте пример из описания функций в Harboyr к MiniGui . [quote] ? LOWER("STRING") // Result: string ? LOWER("1234 CHARS = ") // Result: 1234 chars = wait [/quote]

Ответов - 10

Andrey: А в чём это выражается ? У меня работает.

Vlad04: В МиниГуи These examples demonstrate various results of LOWER(): ? LOWER("STRING") // Result: string ? LOWER("1234 CHARS = ") // Result: 1234 chars = LIBRARY Library is rtl.lib Так и делаю. Надо базу конвертировать. Без изменений или ошибка в строке

Vlad04: У тебя работает в клиппере или Харборе. Собрал консольный проект в МиниГуи для проверки - не работает


Vlad04: Весь проект состоит буквально из двух строк , которые в ОПИСАНИИ приводятся

SergKis: Vlad04 пишет Весь проект состоит буквально из двух строк , которые в ОПИСАНИИ приводятся Беру первый попавшийся пример МиниГуи и ...[pre2] #define _HMG_OUTLOG #define WM_COPYDATA 74 #define WM_CLOSE 0x0010 #define SHOW_TITLE APPSERVER_TITLE #include "minigui.ch" #include "l_names.ch" #include "hbthread.ch" MEMVAR oMain, oTimer //////////////////////////////////////////////////////////////////////////// FUNCTION Main() LOCAL cFont := 'Tahoma', nFontSize := 20 LOCAL nY, nX, nW, nH, nWBtn, nHBtn, nHWIco, hIcon LOCAL hMainWin, cText, aBackColor := {215,166, 0} LOCAL o, hTimer PUBLIC oMain, oTimer // назначим переменную для объекта окна Main PUBLIC aPubWordHandle // назначим массив для закрытия окон MsWord SetsEnv() // loading the program environment -> demo_misc.prg ///////////////////////////////////////////////////////////// SET WINDOW MAIN OFF LoadPublicValueThisProject() // Функция загрузки моих данных / The function of loading my data ///////////////////////////////////////////////////////////// ? ? "Lower(...) =>", LOWER("STRING") ? "Lower(...) =?", LOWER("1234 CHARS = ") ? ... ВСЕ РАБОТАЕТ ! ======================= Запуск программы - 14:42:05.244 ======================= Harbour MiniGUI Extended Edition 23.07.0 (32-bit) ANSI Разрешение экрана = 1280x720 LargeFonts() = нет БФ . Lower(...) => string Lower(...) =? 1234 chars = ... [/pre2]

Vlad04: Ок, спасибо, Андрей. В вызове функции в МиниГуи нашел ошибочку, а в утилитке (которой лет 10) на хХарборе, вроде все правильно, но не работает. Сейчас перепишу на МиниГуи .

Vlad04: А добавьте кирилицу на любой кодовой странице

SergKis: Vlad04 пишет А добавьте кирилицу на любой кодовой странице Вот [pre2] FUNCTION Main() LOCAL cFont := 'Arial', nFontSize := 20 LOCAL nY, nX, nW, nH, nWBtn, nHBtn, nHWIco, hIcon LOCAL hMainWin, cText, aBackColor := {215,166, 0} LOCAL nHLbl SET CODEPAGE TO RUSSIAN SET LANGUAGE TO RUSSIAN PUBLIC oMain // назначим переменную для объекта окна Main PUBLIC aPubWordHandle // назначим массив для закрытия окон MsWord ? ? "Lower(...) =>", LOWER("STRING") , Lower("СТРОКА") ? "Lower(...) =>", LOWER("1234 CHARS = "), Lower("СТРОКА 1234567890") ? ... Результат: Lower(...) => string строка Lower(...) => 1234 chars = строка 1234567890 ... Или FUNCTION Main() LOCAL cFont := 'Arial', nFontSize := 20 LOCAL nY, nX, nW, nH, nWBtn, nHBtn, nHWIco, hIcon LOCAL hMainWin, cText, aBackColor := {215,166, 0} LOCAL nHLbl PUBLIC oMain // назначим переменную для объекта окна Main PUBLIC aPubWordHandle // назначим массив для закрытия окон MsWord ? ? "Lower(...) =>", LOWER("STRING") , Lower("СТРОКА") ? "Lower(...) =>", LOWER("1234 CHARS = "), Lower("СТРОКА 1234567890") ? ... INIT PROCEDURE My_Sets_Env SET LANGUAGE TO RUSSIAN SET CODEPAGE TO RUSSIAN SetsEnv() // loading the program environment -> demo_misc.prg myTimerMode() // инициализация таймеров RETURN ... Результат: Lower(...) => string строка Lower(...) => 1234 chars = строка 1234567890 Думаю и такой вариант пойдет cCdp := "RU866" IF hb_cdpExists( cCdp ) cOld := hb_cdpSelect( cCdp ) ? // текст ниже должен быть в RU866 ? "Lower(...) =>", LOWER("STRING") , Lower("СТРОКА") ? "Lower(...) =>", LOWER("1234 CHARS = "), Lower("СТРОКА 1234567890") ? hb_cdpSelect( cOld ) ENDIF [/pre2]

Vlad04: Вообщем почему то связано с кодировкой. Вот так идет hb_SetCodepage("RU1251") REQUEST HB_CODEPAGE_RU866 REQUEST HB_CODEPAGE_RU1251 а так нет REQUEST HB_CODEPAGE_RU866 REQUEST HB_CODEPAGE_RU1251 hb_SetCodepage("RU866") Всё это я проделывал на хХарбор 1.0

SergKis: Vlad04 Harbour MiniGUI Extended Edition 23.07.0 (32-bit) ANSI [pre2] #define _HMG_OUTLOG #include "hmg.ch" REQUEST DBFCDX, DBFFPT REQUEST HB_CODEPAGE_UTF8, HB_CODEPAGE_RU1251, HB_CODEPAGE_RU866 FUNCTION Main() LOCAL cFont := "Arial", nSize := 12 LOCAL cBuf, aBuf, cCdp, cOld LOCAL cBom := hb_utf8Chr( 0xFEFF ) SET LANGUAGE TO RUSSIAN SET CODEPAGE TO RUSSIAN RddSetDefault("DBFCDX") SET OOP ON SET EPOCH TO 2000 SET DATE TO GERMAN SET CENTURY ON SET AUTOPEN OFF SET DELETED OFF SET FONT TO cFont, nSize cBuf := hb_memoread("demo2.txt") IF left(cBuf, Len(cBom)) == cBom cBuf := subs(cBuf, Len(cBom)+1) ENDIF aBuf := hb_ATokens(cBuf, CRLF) cCdp := "RU1251" ? "LANG =", hb_cdpSelect(), cCdp FOR EACH cBuf IN aBuf ? hb_enumIndex(cBuf), hb_Utf8ToStr(cBuf) NEXT ? cCdp := "RU866" cOld := hb_cdpSelect(cCdp) ? "LANG =", hb_cdpSelect(), cCdp FOR EACH cBuf IN aBuf ? hb_enumIndex(cBuf), hb_Utf8ToStr(cBuf) NEXT ? hb_cdpSelect(cOld) // или FOR EACH cCdp IN {"RU866", "RU1251"} ? hb_enumIndex(cCdp), "LANG =", cCdp FOR EACH cBuf IN aBuf ? hb_enumIndex(cBuf), hb_Utf8ToStr(cBuf, cCdp) NEXT ? NEXT RETURN Nil Файл txt (Utf8): В общем почему то связано с кодировкой Результат (FAR F4 -> 1251): LANG = RU1251 RU1251 1 В 2 общем 3 почему 4 то 5 связано 6 с 7 кодировкой 8 '' LANG = RU866 RU866 1 ‚ 2 ®ЎйҐ¬ 3 Ї®зҐ¬г 4 в® 5 бўп§ -® 6 б 7 Є®¤Ёа®ўЄ®© 8 '' 1 LANG = RU866 1 ‚ 2 ®ЎйҐ¬ 3 Ї®зҐ¬г 4 в® 5 бўп§ -® 6 б 7 Є®¤Ёа®ўЄ®© 8 '' 2 LANG = RU1251 1 В 2 общем 3 почему 4 то 5 связано 6 с 7 кодировкой 8 '' Результат (FAR F4 -> 866): LANG = RU1251 RU1251 1 ┬ 2 юс∙хь 3 яюўхьє 4 Єю 5 ёт чрэю 6 ё 7 ъюфшЁютъющ 8 '' LANG = RU866 RU866 1 В 2 общем 3 почему 4 то 5 связано 6 с 7 кодировкой 8 '' 1 LANG = RU866 1 В 2 общем 3 почему 4 то 5 связано 6 с 7 кодировкой 8 '' 2 LANG = RU1251 1 ┬ 2 юс∙хь 3 яюўхьє 4 Єю 5 ёт чрэю 6 ё 7 ъюфшЁютъющ 8 '' [/pre2] все нормально PS. Использование upper() и lower() работает так же, т.е. делаем [pre2] FOR EACH cCdp IN {"RU866", "RU1251"} ? hb_enumIndex(cCdp), "LANG =", cCdp FOR EACH cBuf IN aBuf cBuf := upper(hb_Utf8ToStr(cBuf, cCdp)) ? hb_enumIndex(cBuf), cBuf, lower(cBuf) NEXT ? NEXT [/pre2]



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