Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2002.11.04;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.009 c
7-11504
Arkan
2002-07-07 10:35
2002.11.04
Модем


1-11306
Kurt
2002-10-23 11:44
2002.11.04
Как мне перейти из одного элемента редактирования в другое програ


4-11543
raiks
2002-09-22 11:55
2002.11.04
Подавить звук, производимый системой при нажатии на Enter в TEdit


1-11141
Mr.D!
2002-10-24 01:25
2002.11.04
То ли ReadLn не ридит, то ли ListBox не листит. Или одно из семи?


14-11459
Jackson
2002-10-15 23:49
2002.11.04
Игра по модему





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский