Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> String --> TFileTime 
:(
    Опции темы
MFSham
Дата 23.10.2005, 21:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 220
Регистрация: 28.8.2005
Где: Беларусь, Гродно

Репутация: 1
Всего: 3



Столкнулся с такой проблемой :
Из регистра читается инфа. Инфа представляет собой некую запись. Все поля нормально
считываю и обрабатываю, но с полем FileTime проблема. Т.е. другими словами у меня имеется
массив байтов, и начиная с некоторого числа i получается
buffer[i]...buffer[i+7] <---- записан тип TFileTime
Я в цикле загоняю эти данные в некоторую строку. Получаю что-то вида : '200137120238157197'.
Как мне теперь обратно из строки получить нормальные данные TFileTime?
Или я может вообще не правильно делаю???
--------------------
Без ветра трава неподвижна. Без программ компьютеры бесполезны.
PM MAIL   Вверх
Poseidon
Дата 23.10.2005, 21:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Delphi developer
****


Профиль
Группа: Комодератор
Сообщений: 5273
Регистрация: 4.2.2005
Где: Гомель, Беларусь

Репутация: 53
Всего: 133



Ошибка в 17 строке.

Код в студию!



--------------------
Если хочешь, что бы что-то работало - используй написанное, 
если хочешь что-то понять - пиши сам...
PM MAIL ICQ   Вверх
MFSham
Дата 23.10.2005, 22:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 220
Регистрация: 28.8.2005
Где: Беларусь, Гродно

Репутация: 1
Всего: 3



Беру отсюда данные :
Код

type
    TSlowInfoCache = record
      Size      : DWord;
      HasName      : LongBool;
      InstallSize : int64;
      LastUsed  : TFileTime;
      Frequency : Integer;
      Name      : array [0..261] of widechar;
    end;
var
    Cache: TSlowInfoCache;
    buffer : array [0..551] of byte;
               ..............
begin
    RegIniFile:=TRegIniFile.Create;
    RegIniFile.RootKey:=HKEY_LOCAL_MACHINE;
    RegIniFile.OpenKey('SOFTWARE\Microsoft\Windows\CurrentVersion\App 
                                                                Management\ARPCache\Xvid',true);
    RegIniFile.ReadBinaryData('SlowInfoCache',buffer,552);
               ..............
    for i:=0 to 551 do 
         case i of
    8..15 :   if buffer[i]<>0 then
                      inf3:=inf3+IntToStr(buffer[i]);                     
             
    16..23 : if buffer[i]<>0 then                     
                      inf4:=inf4+IntToStr(buffer[i]);   
               ..............
          end;
 
     Cache.InstallSize:=StrToInt(inf3);
     Cache.LastUsed:= ??? ;     //как обработать полученую информацию ???
               ..............
     Memo1.Lines.Add(IntToStr(int64(cache.InstallSize)));
               ..............                                   
end;


Это сообщение отредактировал(а) MFSham - 24.10.2005, 23:20
--------------------
Без ветра трава неподвижна. Без программ компьютеры бесполезны.
PM MAIL   Вверх
Poseidon
Дата 23.10.2005, 22:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Delphi developer
****


Профиль
Группа: Комодератор
Сообщений: 5273
Регистрация: 4.2.2005
Где: Гомель, Беларусь

Репутация: 53
Всего: 133



Узнать бы еще, как ты сохраняешь. Но пока попробуй так:

Код
Cache.LastUsed.dwLowDateTime:= StrToInt(inf4);



--------------------
Если хочешь, что бы что-то работало - используй написанное, 
если хочешь что-то понять - пиши сам...
PM MAIL ICQ   Вверх
MFSham
Дата 24.10.2005, 23:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 220
Регистрация: 28.8.2005
Где: Беларусь, Гродно

Репутация: 1
Всего: 3



Цитата(Poseidon @ 23.10.2005, 22:21)
Узнать бы еще, как ты сохраняешь.

Никуда я сохранять эти данные не собираюсь. Просто надо вывестии данные в Memo.
Цитата(Poseidon @ 23.10.2005, 22:21)
Но пока попробуй так:
Код

   Cache.LastUsed.dwLowDateTime:= StrToInt(inf4);


Не, так не пойдет. Я тут немного чего откопал по FileTime :
1. FileTime содердит два числа типа Cardinal;
2. Второе из них состоит 8 символов;
3. Следовательно первое состоит не более чем из 10 символов.
На основании этого я просто разбиваю строку inf4 на две подстроки, которые заношу
под типом Cardinal в тип FileTime.
Использую функцию преобразования типа FileTime в строку, которая содержит дату в наглядном виде получаю окончательный ответ. Все это работает, но данные получаются
абсолютно левые, например : 23.11.1623 5:58:36. Я так думаю, что где-то просто
неправильно берутся данные. Только где???
--------------------
Без ветра трава неподвижна. Без программ компьютеры бесполезны.
PM MAIL   Вверх
Poseidon
Дата 25.10.2005, 00:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Delphi developer
****


Профиль
Группа: Комодератор
Сообщений: 5273
Регистрация: 4.2.2005
Где: Гомель, Беларусь

Репутация: 53
Всего: 133



Цитата(MFSham @ 24.10.2005, 23:37)
Никуда я сохранять эти данные не собираюсь
Как в реестр сохраняешь?



--------------------
Если хочешь, что бы что-то работало - используй написанное, 
если хочешь что-то понять - пиши сам...
PM MAIL ICQ   Вверх
MFSham
Дата 25.10.2005, 01:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 220
Регистрация: 28.8.2005
Где: Беларусь, Гродно

Репутация: 1
Всего: 3



Цитата(Poseidon @ 25.10.2005, 00:19)
Как в реестр сохраняешь?

С реестра я просто читаю данные.

--------------------
Без ветра трава неподвижна. Без программ компьютеры бесполезны.
PM MAIL   Вверх
MFSham
Дата 25.10.2005, 23:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 220
Регистрация: 28.8.2005
Где: Беларусь, Гродно

Репутация: 1
Всего: 3



Пусть имеется этот бинарный файл, который содержит записьSlowInfoCache.
Каким образом мне считать данные из этого файла начиная, допустим, с 8 по 15 байты? Возмоно ли такое?
P.S. то что я предлагал сделать выше полная фигня
--------------------
Без ветра трава неподвижна. Без программ компьютеры бесполезны.
PM MAIL   Вверх
Romikgy
Дата 26.10.2005, 09:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: 26
Всего: 146



С какого места в
Цитата(MFSham @ 23.10.2005, 22:04)
buffer : array [0..551] of byte;

начинается переменная
Цитата(MFSham @ 23.10.2005, 22:04)
TFileTime

?


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
MFSham
Дата 26.10.2005, 20:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 220
Регистрация: 28.8.2005
Где: Беларусь, Гродно

Репутация: 1
Всего: 3



Цитата(Romikgy @ 26.10.2005, 09:31)
С какого места начинается переменная

С 15 байта.
Спасибо за помощь. Я решил свою проблему.

--------------------
Без ветра трава неподвижна. Без программ компьютеры бесполезны.
PM MAIL   Вверх
Romikgy
Дата 27.10.2005, 09:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: 26
Всего: 146



Ну как знаешь.


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0618 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.