powered by simpleCommunicator - 2.0.41     © 2025 Programmizd 02
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / имя открытой dbf-ки в переменную
21 сообщений из 21, страница 1 из 1
имя открытой dbf-ки в переменную
    #36415642
Николай77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Задача такая - есть дбф но не все символы в полях отображаються корректно.. REPLACE FIO WITH STRTRAN меняю нечитаемые символы на нужные.И если бы не украинская заглавные буквы "І" и "Є"то проблема была бы решена- но такие фамилии как Іванов начинались бы с пропиской буквы.. вот тут у меня начинаются проблемы - не знаю как имя открытой дбф загнать в переменнуюмя ,а потом вернуть в имя дбф- нужно для того чтобы после манипуляций по изменению структуры дбф вернуть в конце процедуры ее первоначальное имя...Структуру меняю для того чтобы после copy to ..... TYPE SDF поднять на новую структуру дбф потом обработать украинские буквы из прописных в заглавные и вернуть в изначальную структуры дбф с ее же первоначальным именем.. может я что то заумное придумал.. но пока так.. если будут другие варианты готов расмотреть... а пока подскажите как загнать имя дбф в перемнную и вернуть потом..
...
Рейтинг: 0 / 0
имя открытой dbf-ки в переменную
    #36415713
Трезвый
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dbf()
...
Рейтинг: 0 / 0
имя открытой dbf-ки в переменную
    #36415773
Николай77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Трезвый,

да именно это я пробовал... но не понял как вернуть имя.. там ведь прописыватся весь путь до дбф-ки ..
...
Рейтинг: 0 / 0
имя открытой dbf-ки в переменную
    #36415807
reware
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Николай77Трезвый,

да именно это я пробовал... но не понял как вернуть имя.. там ведь прописыватся весь путь до дбф-ки ..

Код: plaintext
1.
JUSTFNAME(DBF())
...
Рейтинг: 0 / 0
имя открытой dbf-ки в переменную
    #36415810
Николай77,

тогда ALIAS()
...
Рейтинг: 0 / 0
имя открытой dbf-ки в переменную
    #36416069
Николай77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Народ...короче как пел В. Висоцкий - если туп как дерево.. то родишся баобабом... ложу свой пример ..исправте плиз..короче я пока просто хочу сделать копию дбф в другое место...если получится тогда буду менять структуру , имя и возвращать в конце процедуры исходное имя..Кодовая страница в примере дбф 866.Кстати только на этом примере понял что нужно доделать только одну букву "І"..
...
Рейтинг: 0 / 0
имя открытой dbf-ки в переменную
    #36416799
igorbik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Николай77,

Например, так:

************
USE ?
BROWSE

copy to name1
use

select 0
use name1
browse

repl all fio with strtran(fio, 'I', 'И')
repl all fio with strtran(fio, 'i', 'и')

BROWSE
use
****************

Там еще нужно много украинских букв поменять, а также Йо на Ё, но еще имена и отчества не совпадут с русскими, например, Юхим по укр. - это Ефим по русски и пр.
Так что ищи базу русских имен и отчеств и пиши переименовку.
...
Рейтинг: 0 / 0
имя открытой dbf-ки в переменную
    #36417252
Николай77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
igorbik,

Спасибо за помощь... но я все таки пошел немного по другому пути..щас немного занят другим.. но допишу код и покажу как реализовал..просто как говорят нужно хранить копии написаных прог чтобы потом не мучать других..
...
Рейтинг: 0 / 0
имя открытой dbf-ки в переменную
    #36418426
Николай77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Короче менять мне нужно только те символы что не читаются.. вечная проблема чисто украинских букв... в ексель все выводится из прогрммы корректно..но дбф с нечитаемыми символами.. вот поэтому банки просят откоректировать дбф...Сделал в итоге так :
SET DEFAULT TO C:\Employment\Source\foBank\
USE ?
BROWSE
CLEAR
? ALIAS( ) && Display the alias
STORE ALIAS( )to v1
copy to C:\Employment\Source\Correct\1.txt TYPE SDF fields nsc, fio, summa ,ved , name_b ,id_kod
CREATE TABLE C:\Employment\Source\Correct\21;
(nsc C(16),fio_cor C(1),fio C(49), summa N(12,2), ved N(8), name_b C(50),id_kod C(10))
APPEND FROM C:\Employment\Source\Correct\1.txt TYPE sdf
REPLACE FIO WITH STRTRAN(FIO,' _',' I') ALL
REPLACE FIO WITH STRTRAN(FIO,'_','│') ALL
REPLACE Name_b WITH STRTRAN(Name_b,'_','│') ALL
REPLACE fio_cor WITH STRTRAN(fio_cor,'i','▓') ALL
copy to C:\Employment\Source\Correct\11.txt TYPE SDF fields nsc,fio_cor, fio, summa , ved , name_b ,id_kod
CREATE TABLE C:\Employment\Source\Correct\22.dbf;
(nsc C(16),fio C(50), summa N(12,2), ved N(8), name_b C(50),id_kod C(10))
APPEND FROM C:\Employment\Source\Correct\11.txt TYPE sdf
SET DEFAULT TO C:\Employment\Source\Correct\
? v1
COPY TO (v1)
BROWSE
quit
Может не самый "умный" вариант...но я к этому и не стремился..главное работает.. щас доделаю чтобы отдать ползователям и забуду о этом..
...
Рейтинг: 0 / 0
имя открытой dbf-ки в переменную
    #36418662
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что у Вас возвращает функции

Код: plaintext
1.
2.
?CPCURRENT()
?CPDBF()

Для того файла, который читается не правильно?
...
Рейтинг: 0 / 0
имя открытой dbf-ки в переменную
    #36418733
Николай77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВладимирМ,
извените я ваще не програмер... я гдето так слегка админ... на фоксе пишу чисто по необходимости.. избавится от рутины...и на Ваш вопрос не совсем знаю ответ.. вернее ваще не понимаю о чем Вы... если сделает прога не то имя файла.. то оператор скажет что не получилось...если о том то ли загружают.. и то ли получилось .. стоит два раза BROWSE чтобы удостоверится что то загрузил (элементарно сверяют с распечатаной ведомостью первый раз и второй все ли удачно прошло.. чисто визуально..) .. я так подозреваю ответил совсем не по теме .. но извените..
...
Рейтинг: 0 / 0
имя открытой dbf-ки в переменную
    #36419006
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Смысл в том, что FoxPro всегда работает в определенной кодовой странице. Если кодовая страница среды FoxPro отличается от кодовой страницы файла DBF, то как будут отображаться данные из этой таблицы зависит от ряда настроек.

Кодовая страница файла DBF физически записана в 29 байте заголовка DBF (первый бай имеет порядковый номер (смещение) равное 0). Если там ничего не записано, то возникают большие проблемы при интерпретации данных из такой таблицы.

Создание новых файлов в среде FoxPro естесственно происходит в кодовой странице самой среды FoxPro.

Вот я и спрашивал, что записано в 29 байте заголовка исходного DBF и в какой кодовой странице работает среда FoxPro (т.е. содержимое 29 байта заголовка нового файла DBF)

Да, для справки:

Можно использовать ASCII-коды нужных символов вместо их символьного отображения через функцию CHR(). Т.е. вместо, например

Код: plaintext
ChrTran(MyField, "а", "А")

написать

Код: plaintext
ChrTran(MyField, CHR( 224 ), CHR( 192 ))
...
Рейтинг: 0 / 0
имя открытой dbf-ки в переменную
    #36419506
Николай77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВладимирМ,

Может я и не прав но... после use ? выбираю нужную дбф (кстати когда ее формируем в программе то четко указываем 866 кодовую страницу) естественно после того как указали какую дбф открывать указываем руками кодовую страницу MS-DOS 866 и фокс отрывает ее в нужной нам кодировке... так что спрашивать фокса а в какой ?CPDBF() я думаю не совсем логично... руками то ведь указали кодовую страницу.. в приниципе можна было принидительно все это прописать в какой кодовой странице открывать.. но тогда оператор ваще не о чем думать не будет.. тогда если следовать такой же логике то нужно заремить и два BROWSE.. типа зачем утруждать оператора два раза лишних щелкать мышкой..Короче каждый пишет так как считает нужным.. и для меня главное результат.. работает и фиг с ним..а то что не по каким то канонам сделал.. ну извените не учил я этого в университетах...я инженер-механик по образованию..а механику что главное.. правильно -чтобы работало..
...
Рейтинг: 0 / 0
имя открытой dbf-ки в переменную
    #36420043
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
имя открытой dbf-ки в переменную
    #36420177
Николай77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВладимирМ,

спасибо почитаю на досуге.. только вот ехе файлы я не делаю.. не вижу надобности...
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
имя открытой dbf-ки в переменную
    #38940572
styli
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я тут вмешалась в ваш разговор Для меня актуально на данный момент
Есть переменная zm0ff000f0f0f0f
надо скопировать txt файл с таким именем в txt файл с коротким названием zm0f.txt для дальнейшей работы в fox
Поможете?
...
Рейтинг: 0 / 0
имя открытой dbf-ки в переменную
    #38940578
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
styliЯ тут вмешалась в ваш разговор Для меня актуально на данный момент
Не надо вмешиваться не в тему. Надо поднимать отдельный топик со своим вопросом.
styliЕсть переменная zm0ff000f0f0f0f
надо скопировать txt файл с таким именем в txt файл с коротким названием zm0f.txt для дальнейшей работы в fox
Поможете?
Код: sql
1.
copy file (zm0ff000f0f0f0f) to zm0f.txt
...
Рейтинг: 0 / 0
имя открытой dbf-ки в переменную
    #38940596
styli
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
а если и имя короткого файла в переменной
a='zm0f'
...
Рейтинг: 0 / 0
имя открытой dbf-ки в переменную
    #38940600
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
copy file (zm0ff000f0f0f0f) to (a + '.txt')
...
Рейтинг: 0 / 0
имя открытой dbf-ки в переменную
    #38941203
styli
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В том и проблема, что в foxpro простым копированием не копируются файлы с длинным именем
...
Рейтинг: 0 / 0
имя открытой dbf-ки в переменную
    #38941209
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проблема в том что тут телепатов нет. У меня копируются всякие файлы.

Напиши конкретно что хочешь сделать и что не получается. Например хочу скопировать файл "файл с длинным именем.txt" имя которого в переменной myfile в файл c именем "file.txt". Версию фокса укажи если не 9-й.
И заведи отдельный топик.
...
Рейтинг: 0 / 0
21 сообщений из 21, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / имя открытой dbf-ки в переменную
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]