Вниз
Скачать: CL | DM;

Integer and Cardinal   Найти похожие ветки 

← →
Ilya1   (2002-10-24 19:42) [0]

Задача: записывать и считывать c объектом TIniFile переменную типа Longword в INI-file. Проблема заключатся в том, что у TIniFile нет метода наподобие WriteLondword или WriteCardinal. Имеющиеся методы Read/WriteInteger естественно не решают проблему. Есть мысль переводить LongWord c помощью IntToStr в строку, а вот обратно как обратно? StrToInt не возвращает тип Longword.
У кого-нибудь есть какие-нибудь решения?
Заранее СПАСИТБО!


← →
Андрей Прокофьев ©   (2002-10-24 19:47) [1]

StrToInt64() не поможет?


← →
Anatoly Podgoretsky ©   (2002-10-24 19:51) [2]

IntToHex тоже может оказаться полезным


← →
Ilya1   (2002-10-24 21:57) [3]

:)))
Спасибо, но ни StrToInt64 ни StrToHex не помогает. Уже пробовал.
Суть такова, чтобы более менее оптимально работасть с 32 битами использую LongWord. Логичный с вашей стороны вопрос: а почему не работаю с LongIntege? а потому что знаковые целые с битовыми функциями (например xor)не работают. Вот и потребовалось такое преобразование. Конечно можно для хранения создать свой тип или вообще пользоваться нетипизированным файлом. Но зачем плодить фалы - есть уже ini-файл и достаточно. Тем более мои данные это тоже своего рода настроичные (это ключик для 128битной шифрации).


← →
TTCustomDelphiMaster ©   (2002-10-24 22:24) [4]


> но ни StrToInt64 ни StrToHex не помогает


Как это? Даже это не работает ???

var
i: longword;
begin
i := StrToInt64("4294967293");
ShowMessage(inttostr(i));
end;


← →
Anatoly Podgoretsky ©   (2002-10-24 22:30) [5]

Или
"$"+IntToHex($FFFFFFFF,8)
что тоже не работает?


← →
Pumpkin   (2002-10-24 22:50) [6]

А чем тебя ReadInteger/WriteInteger не устраивает? Читает из ини то же значение что и пишет (какая тебе разница что он там записан со знаком). Если тебе руками ини ковырять нужно и ты хочешь, чтобы твой DWord красиво смотрелся в ини, без знака. Тогда Anatoly Podgoretsky © (24.10.02 19:51).


← →
Ilya1   (2002-10-25 00:20) [7]

то Pumpkin
Все верно, ReadInteger/WriteInteger работает! Сейчас так у меня и написано. Но хочется, что бы был красивый алгоритм, а не по принципу "как проще".
Когда у меня вычисляется 128-битнsй ключик при помощи Хеш-функции, то он формируется из 4х LongWord внутри DLL-ки, потом вовращаются эти 4-ре значения в основную программу и для дальнейшей работы записывается в ini-файл. И вот здесь мне совсем не хочется снова перечитывать ini-file, и снова передавать эти 4 переменных теперь уже в диапазоне Integer"а в эту DLL для дальнейших действий, ведь эти же данные уже есть и имеют нужные значения.

то TTCustomDelphiMaster

Что ж !!!??? накидал я текстит дома 7ке см.ниже РАБОТАЕТ!
А на 5ке на работе не работало :( Странно, может быть гдето в голове к концу раб.дня переглючило. Бывает. Завтра на рботе более внимательно посмотрю..

var
MyIniFile: TIniFile;
i: LongWord;
begin
i:= 4294967293;
MyIniFile := TIniFile.Create("c:\myapp.ini");
MyIniFile.WriteString("key", "longWord", IntToStr(i));
i := StrToInt64(MyIniFile.ReadString("key", "longWord", "0"));
ShowMessage(inttostr(i));
MyIniFile.Free;
end;

Всем большое спасибо!!!!!



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.012 c
6-11373
JohnBurg
2002-09-04 11:50
2002.11.04
Не пойму почему вылетает ошибка


1-11307
id_privin
2002-10-22 15:16
2002.11.04
Как победить Invalid class typecast в DLL


14-11434
Melamed
2002-10-14 17:41
2002.11.04
Delphi 7


4-11533
Oxy2
2002-09-20 11:40
2002.11.04
Как получить хендл главного окна приложения.


14-11390
Nikolay M.
2002-10-16 17:50
2002.11.04
День Программиста - официальный выходной!




   Наверх