Недавно добавленные исходники

•  DeLiKaTeS Tetris (Тетрис)  4 739

•  TDictionary Custom Sort  6 741

•  Fast Watermark Sources  6 530

•  3D Designer  9 471

•  Sik Screen Capture  6 859

•  Patch Maker  7 306

•  Айболит (remote control)  7 253

•  ListBox Drag & Drop  6 113

•  Доска для игры Реверси  97 936

•  Графические эффекты  7 427

•  Рисование по маске  6 722

•  Перетаскивание изображений  5 577

•  Canvas Drawing  5 957

•  Рисование Луны  5 743

•  Поворот изображения  5 197

•  Рисование стержней  3 804

•  Paint on Shape  2 978

•  Генератор кроссвордов  3 916

•  Головоломка Paletto  3 111

•  Теорема Монжа об окружностях  3 933

•  Пазл Numbrix  2 585

•  Заборы и коммивояжеры  3 385

•  Игра HIP  2 325

•  Игра Go (Го)  2 222

•  Симулятор лифта  2 627

•  Программа укладки плитки  2 210

•  Генератор лабиринта  2 731

•  Проверка числового ввода  2 366

•  HEX View  2 708

•  Физический маятник  2 378

 
скрыть

Изменение данных в Delphi 2 (BDE)



Автор: Rob Edgar

...из исходного кода VCL я обнаружил, что при назначении значения DB-полю, имеющему строковый тип, значение "проходит" через функцию ANSItoNative, что может привести к изменению (порче) ASCII-данных. Вот так...

Как 16-, так и 32-битные версии IDAPI.CFG устанавливаются с драйвером языка Paradox 'ascii'.

Я создал простое приложение, записывающее в db-поле значения ASCII в диапазоне 0-255 и затем проверяющее их на предмет появившихся различий..... различия между 16- и 32-битной версией не так велики... для примера... в первых 130 значениях получается следующее преобразование:

 16-бит: 21->182 22->167 31->33 130->128
 32-бит:                        130->128
Очевидно достаточно просто "исправить" 32-битные приложения, чтобы добиться такого же результата, что и получаемые 16-битными приложениями, НО я не уверен что решив проблему на моем PC, я решу ее у остальных пользователей, поскольку могут отличаться установки, драйверы языка... и пр.

После того как я проверил все возможные варианты, я составил таблицу и занес туда пять возможных значений, которые могут отличаться под Delphi2 и Delphi1:

 Значение ASCII    Delphi1     Delphi2
       21            182         21
       22            167         22
       33             31         33
      132            102        132
      255            121        255

Copyright © 2004-2025 "Delphi Sources" by BrokenByte Software. Delphi World FAQ

Группа ВКонтакте