powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Преобразование строк
7 сообщений из 7, страница 1 из 1
Преобразование строк
    #33675574
Фотография Feg16
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Имеется таблица, в ней хранятся строки, сформированные через Fox,
они разбираются алгоритмом

Код: plaintext
value = ASC(SUBSTR(stroka,  1 ,  1 )) *  256  + ASC(SUBSTR(stroka,  2 ,  1 ))

При разборе в дельфе, при выборе строки алгоритмом

Код: plaintext
1.
  stroka := Table.Fields[ 0 ].AsString;
  value := (ord (ckod[ 1 ]) *  256  + ord (ckod[ 2 ]) ) /  8 ;

некоторые символы из строки при преобразовании получают другой ASCII код.

Как правильно выбрать данные без потери реальных значений?
...
Рейтинг: 0 / 0
Преобразование строк
    #33676293
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проблема с кодовыми страницами. Один и тот же символ, выглядящий одинаково в разных кодовых страницах будет иметь разный ASCII-код

Когда ты определяешь ASCII код в FoxPro, то символы беруться в текущей кодовой страницы среды FoxPro. Что это за страница можно проверить при помощи

?CPCURRENT()

В момент записи в символьное поле, если существует файл конфигурации CONFIG.FPW (это обычный текстовый файл) со строкой CODEPAGE=1251 происходит автоматическая конвертация полученной строки в кодовую страницу таблицы. Проверить текущую кодовую страницу таблицы можно через функцию

?DBF()

В общем случае, кодовая страница среды FoxPro и файла DBF могут отличаться.

Когда разбираешь в Delphi, то тут уже надо смотреть в какой кодовой странице происходит работа именно в среде Delphi. Как? Я не в курсе. Не работал.
...
Рейтинг: 0 / 0
Преобразование строк
    #33677091
Фотография Feg16
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторсмотреть в какой кодовой странице происходит работа именно в среде Delphi
8) смотреть это влегкую (default by c_1251), а проставить?
...
Рейтинг: 0 / 0
Преобразование строк
    #33678619
Фотография Feg16
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Получил данные в двоичном виде, можно как-нить вытащить скэн коды этих данных прямо из кодовой страницы?
...
Рейтинг: 0 / 0
Преобразование строк
    #33679545
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Feg16Получил данные в двоичном виде, можно как-нить вытащить скэн коды этих данных прямо из кодовой страницы?
Не понял вопроса. Что подразумевается под фразой "скэн коды" применительно к "данные в двоичном виде"?
...
Рейтинг: 0 / 0
Преобразование строк
    #33697024
Фотография Feg16
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подразумевает вытаскивание скан-кода символа из кодовой странице по его бинарному значению
...
Рейтинг: 0 / 0
Преобразование строк
    #33697168
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Feg16Подразумевает вытаскивание скан-кода символа из кодовой странице по его бинарному значению
Как Вы думаете, как физически хранятся символьные данные? Т.е. что именно физически записано на диске? То самое, что Вы прочитали как "бинарное значение"?

Это собственно и есть ASCII-код символа. Вам его надо всего-лишь перевести в десятичное представление.

Но это возвращает к исходной проблеме. Кодовая страница какая? Т.е. сам по себе ASCII-код ничего не значит. Чтобы понять, какой именно символ за ним скрывается надо использовать кодовую страницу.

В файле DBF признак кодовой страницы записан в 29 байте заголовка (первый байт имеет порядковый номер 0). Вот некоторые значения этого байта и чему они соответствуют

x01 - 437 - U.S. MS-DOS
x65 - 866 - Russian MS-DOS
xC9 - 1251 - Russian Windows
x03 - 1252 - Windows ANSI

Надо читать текст файла DBF в той кодовой странице, которая указана в 29 байте заголовка. Тогда разночтений не будет.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Преобразование строк
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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