On-line: гостей 0. Всего: 0 [подробнее..]
АвторСообщение





Пост N: 58
Зарегистрирован: 31.05.07
ссылка на сообщение  Отправлено: 12.03.10 09:02. Заголовок: CODEPAGE


Хочу переходить с xHarbour на Harbour из последних сборок, но столкнулся с тем, что некоторый код не могу перевести, поскольку не пойму, как подключить кириллическую кодовую страницу.
Конструкция:
 
REQUEST HB_CODEPAGE_RU866
hb_setCodePage('RU866')

не работает...
подскажите пожалуйста...

Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 49 , стр: 1 2 3 All [только новые]


постоянный участник


Пост N: 844
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 12.03.10 10:40. Заголовок: используйте hb_cdpSe..


используйте hb_cdpSelect() или Set( _SET_CODEPAGE )

Спасибо: 0 
ПрофильЦитата Ответить





Пост N: 59
Зарегистрирован: 31.05.07
ссылка на сообщение  Отправлено: 12.03.10 11:23. Заголовок: Петр пишет: использ..


Петр пишет:

 цитата:
используйте hb_cdpSelect() или Set( _SET_CODEPAGE )


а у меня ругается при вызове этой функции... :(
Пишет Unresolved external ...

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 1429
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 12.03.10 16:30. Заголовок: spair2k Вероятно ну..


spair2k
Вероятно нужно прилинковать Hbextern.lib

Спасибо: 1 
ПрофильЦитата Ответить
постоянный участник




Пост N: 2318
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 04.09.12 10:52. Заголовок: spair2k пишет: Хочу..


spair2k пишет:

 цитата:
Хочу переходить с xHarbour на Harbour из последних сборок



Я тоже собрался это делать. У меня программа на xHarbour'e GTWVT-терминал 866-кодировка.

Подскажите какие нюансы нужно учитывать при переходе ?

Как правильно в начале программы задать 866 кодировку ?


Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 572
Зарегистрирован: 11.06.10
ссылка на сообщение  Отправлено: 04.09.12 11:19. Заголовок: hb_cdpSelect("RU..


hb_cdpSelect("RU866")

если будет ругаться, то вначале добавить

#include "hbextcdp.ch"

а правильно так:

IF Empty( cTermCP )
cTermCP := "PLISO"
ELSE
cTermCP := Upper( cTermCP )
ENDIF
IF Empty( cHostCP )
cHostCP := "PLMAZ"
ELSE
cHostCP := Upper( cHostCP )
ENDIF
lBoxChar := !Empty( lBoxChar )
hb_cdpSelect( cHostCP )
hb_SetTermCP( cTermCP, cHostCP, lBoxChar )

смотреть \harbour\tests\gtkeys.prg
и читать Changelog
2006-02-04 17:05 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
...
The new three .prg functions:
HB_SETKEYCP( <cTermCP> [,<cHostCP>] )
HB_SETDISPCP( <cTermCP> [,<cHostCP>] [,<lBoxChar>] )
HB_SETTERMCP( <cTermCP> [,<cHostCP>] [,<lBoxChar>] )
...
<cTermCP> is encoding used on external (terminal) side
<cHostCP> is encoding used internally, if not given then
current code page set HB_SETCODEPAGE() is used.
some of GTs which uses unicode output may
ignore <cTermCP>
<lBoxChar> is optional parameter which interacts with dispbox()
output disabling switching to alternate character
set in some GTs. It effectively causes that if internal
(host) code page contains some letters on the box char
positions then they will be shown also by box drawing
functions like dispbox() instead of CP437 characters.
In some cases it could be useful. By default lBoxChar
is not set and GTs which can switch between standard
and alternate character set (GTCRS, GTSLN) will try to
use alternate character set for box drawing functions.

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 2324
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 04.09.12 16:37. Заголовок: AlexMyr ПАСИБО БОЛЬ..


AlexMyr
ПАСИБО БОЛЬШОЕ !

А еще вопрос не в тему:
как сделать компиляцию одного prg файла с командной строки, чтобы привязать к вызову из FAR ?

У меня для хХарбора есть вызов z:\xHarbour\bin\bld_b32.bat !

Как сделать аналогично для Харбора ?

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 577
Зарегистрирован: 11.06.10
ссылка на сообщение  Отправлено: 04.09.12 17:02. Заголовок: Для Dos navogator вы..


Для Dos navogator вызов по расширению

prg{ c:\dev\harbour\bin\hbmk2.exe -p #.prg >#.log}

для Far наверное

z:\Harbour\bin\hbmk2.exe !

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 2325
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 04.09.12 17:34. Заголовок: AlexMyr пишет: для ..


AlexMyr пишет:

 цитата:
для Far наверное
z:\Harbour\bin\hbmk2.exe !



Нет, вот так работает для Far:
z:\hb30\Bin\HBMK2.EXE -gtwin !.! > !.log -run
-gtwin : терминал GTWIN
-run : запуск сразу программы

А вообще классная штука HBMK2.EXE

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 317
Зарегистрирован: 13.10.05
ссылка на сообщение  Отправлено: 05.09.12 10:37. Заголовок: spair2k и Andrey ..


spair2k и Andrey

 цитата:
Хочу переходить с xHarbour на Harbour


А какие Вы хотите получить преимущества от такого перехода. Понятно, если бы на GUI.

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 579
Зарегистрирован: 11.06.10
ссылка на сообщение  Отправлено: 05.09.12 10:41. Заголовок: Vlad04 пишет: Понят..


Vlad04 пишет:

 цитата:
Понятно, если бы на GUI.

А тут в чем преимущество, в красивых рюшечках?

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 2326
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 05.09.12 13:55. Заголовок: Vlad04 пишет: А как..


Vlad04 пишет:

 цитата:
А какие Вы хотите получить преимущества от такого перехода.



1) Харбор быстрей хХарбора, здесь на форуме тесты приводились.
2) Возможность использовать MinGW и собирать приложения х64.
3) Терминал GTWVT на Харборе поддерживает создание дочерних окон программы.
?:\hb30\tests\wvtext.prg

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 2
Зарегистрирован: 05.10.12
ссылка на сообщение  Отправлено: 08.10.12 05:57. Заголовок: Привет всем ! Может..


Привет всем !

Может мой вопрос и повторяется но все же задам.
dbf файл создан в dos, что нужно чтобы при редактировании базы данные сохранялись и отображались (ТSBROWSE) в кодировке 866
использую версию Harbour MiniGUI Extended Edition 2.1.5 - 2012.09.12


Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 795
Зарегистрирован: 27.01.07
ссылка на сообщение  Отправлено: 08.10.12 08:13. Заголовок: HB_CDPSelect( "R..


REQUEST HB_CODEPAGE_RU866
HB_CDPSelect( "RU866" )

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 3
Зарегистрирован: 05.10.12
ссылка на сообщение  Отправлено: 08.10.12 09:42. Заголовок: Все равно не отображ..


Все равно не отображается dos база в код.866 в TSBROWSE, если корректируешь то данные сохраняются в RU1251.

Спасибо: 0 
ПрофильЦитата Ответить
Администратор




Пост N: 2500
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 08.10.12 09:50. Заголовок: При старте программы..


При старте программы надо задать:

REQUEST HB_CODEPAGE_RU866
REQUEST HB_CODEPAGE_RU1251
HB_CDPSelect( "RU1251" )

при открытии файла надо указывать 866-ю страницу:

USE ... CODEPAGE "RU866"


Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 4
Зарегистрирован: 05.10.12
ссылка на сообщение  Отправлено: 08.10.12 10:33. Заголовок: Спасибо ! Все работа..


Спасибо ! Все работает.

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 3325
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 17.04.14 00:17. Заголовок: Опять фигня с кодиро..


Опять фигня с кодировками...
xHarbour 1.2.3 Intl. (SimpLex) (Build 20130903)
Терминал GTWVT, в программе стоит:
REQUEST HB_CODEPAGE_RU866
hb_SetCodepage( "RU866" )
REQUEST HB_LANG_RU866
HB_LANGSELECT("RU866")
hb_cdpSelect("RU866")
Wvt_SetCodePage(255) // #define OEM_CHARSET 255 - from wingdi.h
Wvt_SetFont( 'Terminal', 18, 10, 0 )

Считываю файлы с директории на русском языке:
Импорт из системы ГОРОД.doc
Конфигурация программы.doc

В программе считываются как:
╚ьяюёє шч ёшёєхь√ ├╬╨╬─.doc
╩юэїшуєёрўш  яёюуёрьь√.doc

Вывожу на экран преобразовав функцией HB_ANSITOOEM().
Получается фигня:
Импосу из сисуемы ГОРОД.doc
Конхигусачия псогсаммы.doc

Что не так делаю ?

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 3991
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 17.04.14 10:12. Заголовок: Andrey пишет: Импос..


Andrey пишет:

 цитата:
Импосу из сисуемы ГОРОД.doc
Конхигусачия псогсаммы.doc


Это на хорватском ?

В какой кодировке содержимое файлов которые считываешь ?

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 3327
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 17.04.14 13:24. Заголовок: Перед тем как считат..


Перед тем как считать файлы проверяю ? hb_SetCodepage() , возвращает "RU866"
Имена файлов в папке только на русском...

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 3992
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 17.04.14 13:59. Заголовок: сделал вот такой про..


сделал вот такой простой тест на Harbour 3.2

 
proc main
local amas

REQUEST HB_LANG_RU866
HB_LANGSELECT("RU866")
REQUEST HB_CODEPAGE_RU866
hb_cdpSelect( "RU866" )
amas:=directory("*.doc")
aeval(amas,{|x| qout(x[1])})

return


Имена вывалились нормально на русском .



Спасибо: 1 
ПрофильЦитата Ответить





Пост N: 208
Зарегистрирован: 16.12.08
ссылка на сообщение  Отправлено: 17.04.14 16:18. Заголовок: Dima пишет: proc m..


Dima пишет:

 цитата:
proc main
local amas

REQUEST HB_LANG_RU866
HB_LANGSELECT("RU866")
REQUEST HB_CODEPAGE_RU866
hb_cdpSelect( "RU866" )
amas:=directory("*.doc")
aeval(amas,{|x| qout(x[1])})

return



данный код корректно отработал в xHarbour на файлах с кирилицей в названии.

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 3329
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 18.04.14 00:13. Заголовок: Dima пишет: Имена в..


Dima пишет:

 цитата:
Имена вывалились нормально на русском .


Да точно, этот короткий тест тоже у меня отработал НОРМАЛЬНО !
Полез в свою функцию сортировки получения массива...

Вот через неё не срабатывало (а может и еще что-то мешает...) :
Скрытый текст


Спасибо: 0 
ПрофильЦитата Ответить
Администратор




Пост N: 3145
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 18.04.14 07:51. Заголовок: Для того, чтобы имен..


Для того, чтобы имена файлов были в кодировке OEM, надо сделать функцию:

#pragma BEGINDUMP
#include "windows.h"

HB_FUNC_STATIC( SETFILEAPIS ) // Имена файлов в кодировке OEM
{
SetFileApisToOEM();
}
#pragma ENDDUMP

и вызвать ее при старте программы:

SETFILEAPIS()

Тогда перекодировать ничего не надо.

Спасибо: 1 
ПрофильЦитата Ответить



Пост N: 7
Зарегистрирован: 05.07.14
ссылка на сообщение  Отправлено: 23.07.14 10:34. Заголовок: spair2k пишет: ...к..


spair2k пишет:

 цитата:
...как подключить кириллическую кодовую страницу


Большинство вопросов касается БД, что естественно.
А у меня следующий вопрос.
Если я собираю программу через hmg_IDE, то все нормально. Русский текст на форме отображается правильно
Когда же я пытаюсь собрать программу с помощью .bat файла (приводится ниже), то получаю кракозябры:

call C:\MiniGUI\batch\compile.bat demo %1 %2 %3 %4 %5 %6 %7 %8 %9

Как мне победить?

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 85
Зарегистрирован: 24.04.13
ссылка на сообщение  Отправлено: 27.01.15 09:00. Заголовок: Имеется структуриров..


Имеется структурированный текстовый файл в 1251-кодировке.
База данных в 866 кодировке.
Возможно ли командой append from считать этот файл в базу чтобы была 866 кодировка?
В append from есть параметр CODEPAGE, но как его использовать ?

Спасибо: 0 
ПрофильЦитата Ответить
moderator


Пост N: 834
Зарегистрирован: 06.07.06
ссылка на сообщение  Отправлено: 27.01.15 09:07. Заголовок: По идее ( я не прове..


По идее ( я не проверял сам ) надо открыть ваш целевой dbf, указав кодировку 866, а в append from указать кодировку источника - в данном случае 1251.

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 86
Зарегистрирован: 24.04.13
ссылка на сообщение  Отправлено: 27.01.15 09:14. Заголовок: alkresin, попробовал..


alkresin, попробовал так:

use sds codepage "RU866"
zap
appe from sds32.txt codepage ("RU1251") delimited with ( {"", "="} )

переносит в кодировке как в текстовом файле

Спасибо: 0 
ПрофильЦитата Ответить
moderator


Пост N: 835
Зарегистрирован: 06.07.06
ссылка на сообщение  Отправлено: 27.01.15 09:37. Заголовок: Хм... Думаю, это неп..


Хм... Думаю, это неправильно - какая-то ошибка в Харборе..
Во всяком случае, вот так работает:

hb_cdpSelect( "RU866" )
use sds
zap
appe from sds32.txt codepage ("RU1251") delimited with ( {"", "="} )


Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 87
Зарегистрирован: 24.04.13
ссылка на сообщение  Отправлено: 27.01.15 11:34. Заголовок: alkresin пишет: Во..


alkresin пишет:

 цитата:

Во всяком случае, вот так работает:

hb_cdpSelect( "RU866" )
use sds
zap
appe from sds32.txt codepage ("RU1251") delimited with ( {"", "="} )


Ничего не получается и так :(
Может как то можно через промежуточный файл преобразовать,
какие-нибудь другие варианты?

Спасибо: 0 
ПрофильЦитата Ответить
Администратор




Пост N: 3244
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 27.01.15 12:05. Заголовок: Если харбор собран с..


Если харбор собран с HB_CLP_STRICT, то append from ... codepage ... delimited with не сработает.

Спасибо: 0 
ПрофильЦитата Ответить
Администратор




Пост N: 3245
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 27.01.15 12:07. Заголовок: Можно сделать так: ..


Можно сделать так:

use...

hb_cdpSelect( "RU1251" )
append from ...
hb_cdpSelect( "RU866" )


Спасибо: 0 
ПрофильЦитата Ответить
moderator


Пост N: 837
Зарегистрирован: 06.07.06
ссылка на сообщение  Отправлено: 27.01.15 12:33. Заголовок: azoo пишет: Ничего ..


azoo пишет:

 цитата:
Ничего не получается и так :(



А request HB_CODEPAGE_RU1251 у вас объявлен ?


 цитата:
Может как то можно через промежуточный файл преобразовать,
какие-нибудь другие варианты?



Ну, самый очевидный вариант:

s := Memoread( "sds32.txt" )
hb_MemoWrit( "sds32.txt", hb_Translate( s, "RU1251", "RU866" ) )


Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 88
Зарегистрирован: 24.04.13
ссылка на сообщение  Отправлено: 27.01.15 12:51. Заголовок: Спасибо за ответы по..


Спасибо за ответы, получилось.
Правильный вариант:

REQUEST HB_CODEPAGE_RU866
REQUEST HB_CODEPAGE_RU1251
hb_cdpSelect( "RU866" )
use sds
zap
appe from sds32.txt codepage ("RU1251") delimited with ( {"", "="} )


Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 4167
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 14.05.15 15:01. Заголовок: Pasha пишет: при от..


Pasha пишет:

 цитата:
при открытии файла надо указывать 866-ю страницу:

USE ... CODEPAGE "RU866"



А если создаешь базу и записать нужно в базу "RU866", а программа сама в кодировке RU1251 как делать ?
Т.е. я делаю: DbCreate( cPathLocal+cFile, aStruct, "DBFCDX", .T., "MYALIAS" )
и копирую записи из другой базы (RU866) в MYALIAS ! Записи получаются в кодировке RU1251...
А нужны в кодировке RU866.
Как назначить кодировку RU866 при создании базы ?




Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 4800
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 14.05.15 15:09. Заголовок: Если верить сырцу db..


Если верить коментам в сырце
dbCreate( cFile, aStruct, cRDD, lKeepOpen, cAlias, cDelimArg, cCodePage, nConnection )

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 625
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 14.05.15 15:10. Заголовок: Andrey пишет:Как наз..


Andrey пишет:
 цитата:
Как назначить кодировку RU866 при создании базы ?


1. Harbour.. src\*.*
2. Far Alt+F7 *.prg,*.c наити dbcreate
3. получаем (dbcmd.c):
 
/*
* In Clipper the arguments are:
* dbCreate( cFile, aStruct, cRDD, lKeepOpen, cAlias, cDelimArg )
* In Harbour:
* dbCreate( cFile, aStruct, cRDD, lKeepOpen, cAlias, cDelimArg, cCodePage, nConnection ) (HB_EXTENSION)
*/
HB_FUNC( DBCREATE )


Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 4168
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 14.05.15 15:16. Заголовок: Спасибо !!! :sm36: ..


Спасибо !!!
Еще вопрос по ходу - что за параметр cDelimArg ?

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 4801
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 14.05.15 15:19. Заголовок: Andrey пишет: Еще в..


Andrey пишет:

 цитата:
Еще вопрос по ходу - что за параметр cDelimArg ?



 
/*
* NOTE: 4-th, 5-th and 6-th parameters are undocumented Clipper ones
* 4-th is boolean flag indicating if file should stay open (any boolean
* value will enable this behavior)
* 5-th is alias - if not given then WA is open without alias
* 6-th is optional DELIMITED value used by some RDDs like DELIM
*/



Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 4170
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 14.05.15 15:23. Заголовок: Dima пишет: 6-th is..


Dima пишет:

 цитата:
6-th is optional DELIMITED value used by some RDDs like DELIM



Я им не пользовался и не сталкивался...

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 4802
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 14.05.15 15:33. Заголовок: Andrey пишет: Я им ..


Andrey пишет:

 цитата:
Я им не пользовался и не сталкивался...


Ну типа так
 
request DELIM
dbcreate("test",{{"t","n",10,0},{"t1","n",10,0}} , "DELIM", .t., "tst", ";")
tst->(dbappend())
tst->t:=10
tst->t1:=20
close tst


На выходе получим TEST.TXT
Вот только результат в нем такой 10,20 вместо ожидаемого 10;20

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 4171
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 14.05.15 15:47. Заголовок: Dima пишет: На выхо..


Dima пишет:

 цитата:
На выходе получим TEST.TXT


Вспомнил, примеры в Клипере 5.3 были такие...

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 92
Зарегистрирован: 09.09.11
ссылка на сообщение  Отправлено: 28.12.16 06:13. Заголовок: С наступающим Новым ..


С наступающим Новым Годом! Здоровья и всех благ...

Программа на xHarbour Compiler build 1.2.1 (SimpLex) (Rev. 6476)
Требуется обработать файлы, имена которых в кириллице, функция FILE() возвращает .F., работает ли FILE() с кириллицей в имени файла?
Переименовать файлы нет возможности....

Пробовал функцией SETFILEAPIS() - имена на экран вышли в кириллице... Что делать дальше???




Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 93
Зарегистрирован: 09.09.11
ссылка на сообщение  Отправлено: 28.12.16 09:29. Заголовок: Спасибо, доработал б..


Спасибо, доработал блок формирования имени файла, FILE() возвращает .T. с кириллицей в имени файла...


Спасибо: 0 
ПрофильЦитата Ответить
moderator


Пост N: 1057
Зарегистрирован: 06.07.06
ссылка на сообщение  Отправлено: 28.12.16 09:32. Заголовок: И вас с наступающим!..


И вас с наступающим!

Не знаю, как в xHarbour, а в Harbour File() правильно отрабатывает, если REQUEST HB_CODEPAGE_..., hb_setCodePage(...) указывают на ту кодовую страницу, в которой написана программа.
Попробуйте разные варианты, включая изменение кодовой страницы текста программы.

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 94
Зарегистрирован: 09.09.11
ссылка на сообщение  Отправлено: 30.12.16 08:43. Заголовок: Добрый день, EXCEL20..


Добрый день,
EXCEL2010 открывает файл, имя которого содержит кириллицу и пробелы, а EXCEL2016 падает Excel.Application:WORKBOOKS/14 DISP_E_BADPARAMCOUNT: OPEN
открываю с помощью WorkBooks:Open()

Решил проблему по схеме:
- копирую файл с кириллицей и пробелами в имени в рабочий каталог с фиксированным именем (например TEMP_EXCEL)
- открываю Excel (2010/2016) TEMP_EXCEL
- обработка
- удаление TEMP_EXCEL


Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 1064
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 30.12.16 09:04. Заголовок: Oskar_AAA пишет: DI..


Oskar_AAA пишет:

 цитата:
DISP_E_BADPARAMCOUNT


Скорее что-то не так в пути к файлу раз простое копирование решает проблему.
Тоже открываю кириллицу и пробелы экселями 07—16 и все нормально.


Спасибо: 0 
ПрофильЦитата Ответить
Администратор




Пост N: 3520
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 30.12.16 10:00. Заголовок: Для неуникодных прог..


Для неуникодных программ (а xharbour именно такой) существенной является кодировка, в которой представлено имя файла.
Если сделан вызов SetFileApis (которая вызывает SetFileApisToOEM()), то windows работает с именами в кодировке OEM, т.е. cp866.
Для excel же надо обязательно передавать имя документа в кодировке cp1251. Хотя все равно непонятно различное поведение разных версий excel.

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 95
Зарегистрирован: 09.09.11
ссылка на сообщение  Отправлено: 30.12.16 10:17. Заголовок: С наступающим Новым ..


С наступающим Новым Годом, друзья.
Вот и я хочу понять "Кто is Who?"
Excel2010 без проблем открывает, а 2016 выносит мозги... Пока оставил по схеме см.пост выше, но интерес остался, для кругозора...



Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 96
Зарегистрирован: 09.09.11
ссылка на сообщение  Отправлено: 30.12.16 10:44. Заголовок: + файл источник копи..


+ файл источник копируется в файл TEMP_EXCEL.xls в том же каталоге, что файл источник.... Так, что в пути к файлу ничего не меняется...

фрагмент кода:

Lsmet_File3=Mar5+Alltrim(Name_Lsmet3)+'.XLS'
?Lsmet_File3,File(Lsmet_File3)
wait
If File(Lsmet_File3)==.T.
cFileXls_Exl:=Mar5+'BALABA.XLS'
Copy File &Lsmet_File3 To &cFileXls_Exl
oExcel_S :=ToleAuto():New("Excel.Application")
oExcel_S :Workbooks:Open(cFileXls_Exl)
oExcel_S :Set("DisplayAlerts",.F.)
oExcel_S :Visible :=.F.
oBook_S :=oExcel_S:ActiveWorkBook
oAs_S :=oExcel_S:ActiveSheet()
oRange_S :=oExcel_S:ActiveCell:SpecialCells(xlLastCell)
cRecno_S :=oRange_S:Row
cColumn_S :=oRange_S:Column

......


Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 49 , стр: 1 2 3 All [только новые]
Ответ:
1 2 3 4 5 6 7 8 9
большой шрифт малый шрифт надстрочный подстрочный заголовок большой заголовок видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки моноширинный шрифт моноширинный шрифт горизонтальная линия отступ точка LI бегущая строка оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 237
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет