Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.11.04;
Скачать: 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 вся ветка

Текущий архив: 2002.11.04;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.02 c
4-11554
Slym
2002-09-23 07:19
2002.11.04
Где и как хранить данные ассоциированные с определенным окном


14-11426
Anatoly Podgoretsky
2002-10-15 00:54
2002.11.04
Именинники 15 октября


3-11073
Prok12
2002-10-15 13:45
2002.11.04
Delphi 7: про доступ к БД InterBase через компоненты dbExpress


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


1-11230
Vikuksa
2002-10-25 10:27
2002.11.04
Проблемы с памятью