Я хочу хранить журнал транзакций в таблице Paradox и хотел бы писать и читать коды транзаций вместо простых целых чисел, которые они представляют в данный момент...
Можете попробовать сделать так:
type Tcodes = (c1,c2,c3,c4);
var code: Tcodes;
code := Tcodes(Table1Field1.AsInteger);
if code in [c2,c4] then .....
Table1Field1.AsInteger := Integer(code);
Here's the translation into Russian:
В этом улучшенном варианте я выполнил следующие действия:
Извлекаю целочисленное значение из поля Table1Field1 в отдельную переменную codeInt, чтобы избежать необходимости повторно конвертировать значение поля в целое число.
Использую функцию Ord() для сравнения целого кода с порядковыми значениями перечисленных типов (c2 и c4). Это более эффективно, чем использовать список целых чисел, так как оно avoids need for repeated comparisons.
Обратите внимание, что можно также использовать оператор case вместо множества операторов if...else if:
case codeInt of
Ord(c1): // Делать что-то при встрече c1
Ord(c2): // Делать что-то при встрече c2
Ord(c3): // Делать что-то при встрече c3
Ord(c4): // Делать что-то при встрече c4
end;
Это может сделать код более компактным и легче для чтения, особенно если у вас есть большое количество случаев.
В статье Mike Orriss рассматриваются способы использования нумерации в TFields, в частности, хранение журнала транзакций с кодами вместо простых целых чисел.
Комментарии и вопросы
Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS