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

Вниз

Реестр и бинарные данные   Найти похожие ветки 

 
Дом   (2006-10-04 20:12) [0]

Помогите, пожалуйста!!! Нужно очень срочно а у мня не выходит это :-(. Нужно с реестра винды вытащить бинарные данные и сохранить их в текстовый файл(как они есть). Заранее спасибо.


 
Джо ©   (2006-10-04 20:13) [1]

1. TRegistry.ReadBinaryData
2. BlockWrite или TFileStream.Write


 
Джо ©   (2006-10-04 20:14) [2]

> их в текстовый файл(как они есть)

"Бинарные данные" и "текстовый формат" — это, так сказать, "две вещи несовместные".


 
Дом   (2006-10-04 22:39) [3]

но данные эти наверное можно сохранить в текстовый(записать)


 
Чапаев ©   (2006-10-04 22:44) [4]

"как они есть" -- нельзя. Можешь в хекс перегнать, в бейс64 или ещё что...


 
Джо ©   (2006-10-04 23:02) [5]

> [3] Дом   (04.10.06 22:39)
> но данные эти наверное можно сохранить в текстовый(записать)

Если их туда записать, то файл уже перестанет быть текстовым :) Так что,  или — или. Ну, а преобразовать их в текстовый (читаемый) вид можно. Смотри, например [4] Чапаев.


 
Дом   (2006-10-05 00:29) [6]

хорошо предположим перегнать в хекс... как это сделать(у меня вообще что то ничего не выходит)... дайте плз код


 
Джо ©   (2006-10-05 00:30) [7]

> [6] Дом   (05.10.06 00:29)
> хорошо предположим перегнать в хекс... как это сделать(у
> меня вообще что то ничего не выходит)... дайте плз код

BinToHex.


 
Германн ©   (2006-10-05 00:37) [8]


> Дом   (05.10.06 00:29) [6]
>
> хорошо предположим перегнать в хекс... как это сделать(у
> меня вообще что то ничего не выходит)... дайте плз код
>

Лучше ты дай свой код, который у тебя не работает, а мы поищем в нём ошибки. А то нарвёшся на обвинения в "халяве". Кроме того по твему коду может выясниться, что мы тебя неправильно понимаем.


> Джо ©   (05.10.06 00:30) [7]
>
> BinToHex.

В Д6 есть BinToHex?


 
Джо ©   (2006-10-05 00:38) [9]

> [8] Германн ©   (05.10.06 00:37)
> В Д6 есть BinToHex?

В Д6 есть BinToHex :)


 
Германн ©   (2006-10-05 00:44) [10]


> Джо ©   (05.10.06 00:38) [9]

Да Серёг есть даже в Д4.
Кто-то меня попутал. Про другое подумал. :-(


 
Дом   (2006-10-05 00:46) [11]

var
REG : TRegistry;
Buffer: array[0..1000] of string;
begin
REG := TRegistry.Create;
REG.RootKey:=HKEY_CURRENT_USER;
if REG.OpenKey("\Software\Microsoft\MediaPlayer\ISeeTheTruth",false) then
begin
REG.ReadBinaryData("Palette", buffer, 1000);
end;
REG.CloseKey;
REG.free;

вот, вроде читать читает, а как сохранить это чтобы его можно было прочесть потом...не знаю как


 
Джо ©   (2006-10-05 00:47) [12]

> [11] Дом   (05.10.06 00:46)
> вот, вроде читать читает, а как сохранить это чтобы его
> можно было прочесть потом...не знаю как

См. пост [1] пункт 2.


 
Дом   (2006-10-05 00:47) [13]

да и с этим BinToHex не работал(понятия не имею как)


 
Джо ©   (2006-10-05 00:48) [14]

> Buffer: array[0..1000] of string;

Ай! Даже и не заметил. Во-первых, of byte, во-вторых 0..999, раз уж размер 1000.


 
Дом   (2006-10-05 00:48) [15]

и с тем...


 
Джо ©   (2006-10-05 00:49) [16]

Да и вообще код плохой. Сейчас напишу как надо, я что-то подобрел :)


 
Дом   (2006-10-05 00:49) [17]

ок спасибо :)


 
Германн ©   (2006-10-05 00:50) [18]


> вот, вроде читать читает, а как сохранить это чтобы его
> можно было прочесть потом...не знаю как
>

Ну так ты скоро крупно нарвешься!


 
Дом   (2006-10-05 00:51) [19]

т.е.?


 
Германн ©   (2006-10-05 00:52) [20]


> Сейчас напишу как надо, я что-то подобрел :)
>

Серёгу понесло. Видать Хортиця сегодня особо вкусная :-) Шутка.


 
Ketmar ©   (2006-10-05 00:58) [21]

>[16] Джо(c) 5-Oct-2006, 00:49
>я что-то подобрел :)
страшные симптомы. срочно лечи это. а то перейдёт в хроническую стадию...


 
Джо ©   (2006-10-05 01:03) [22]

В таком роде, в первом приближении.
procedure TForm1.Button1Click(Sender: TObject);
const
 BranchName = "Software\Microsoft\MediaPlayer\ISeeTheTruth";
 KeyName = "Palette";
var
 Reg: TRegistry;
 Sz: Integer;
 Data: array of Char;
 Text: string;
 F: TextFile;
begin
 Reg := TRegistry.Create (KEY_READ);
 try
   if Reg.OpenKey(BranchName,False) then
   begin
     Sz := Reg.GetDataSize(KeyName);
     SetLength(Data,Sz);
     Reg.ReadBinaryData(KeyName,Data[0],Sz);

     // каждый байт будет занимать 2 символа
     SetLength (Text, Sz*2);

     // конфертируем в hex-строку
     BinToHex (@Data[0],PChar(Text),Sz);

     AssignFile (F,"d:\registrydata.txt");
     Rewrite (F);
     try
       WriteLn (F,Text);
     finally
       CloseFile (F);
     end;

   end;
 finally
   Reg.Free;
 end;
end;


 
Джо ©   (2006-10-05 01:04) [23]

Да, и проверить Sz на -1.


 
Джо ©   (2006-10-05 01:04) [24]

> [21] Ketmar ©   (05.10.06 00:58)
> >[16] Джо(c) 5-Oct-2006, 00:49
> >я что-то подобрел :)
> страшные симптомы. срочно лечи это. а то перейдёт в хроническую
> стадию...

Да... Германн тут прав, это всё инородные ферменты :)


 
Дом   (2006-10-05 01:09) [25]

что то он у меня ничего не создает :(


 
Джо ©   (2006-10-05 01:14) [26]

> [25] Дом   (05.10.06 01:09)
> что то он у меня ничего не создает :(

А что ты хочешь, чтобы оно у тебя создавало? Если файл, то, значит, до этого и не дошло :) Ветки или ключ могут не существовать или параметр может быть не типа BINARY. Я лично у себя в реестре вообще такого не нашел.


 
Дом   (2006-10-05 01:18) [27]

он BINARY у меня такое лично есть


 
Джо ©   (2006-10-05 01:18) [28]

Пройдись отладчиком.


 
Дом   (2006-10-05 01:23) [29]

по логике он же должен создавать файл, но не делает этого :(


 
Германн ©   (2006-10-05 01:25) [30]


> Пройдись отладчиком.


 
Дом   (2006-10-05 01:27) [31]

знать бы как...


 
Джо ©   (2006-10-05 01:28) [32]

> [29] Дом   (05.10.06 01:23)
> по логике он же должен создавать файл, но не делает этого
> :(

По  логике моего кода он НЕ будет создавать файл, если
1. Ветки не существует
2. Если параметр нет типа BINARY
Или по ходу действия пьесы произойдут иные какие непредвиденные события.


 
Дом   (2006-10-05 01:28) [33]

я только первую неделю с дельфой разбираюсь...вот такая у меня идея появилась(хотелось в прогу впихнуть)


 
Дом   (2006-10-05 01:30) [34]

1. ветка есть
2. тип BINARY
а то там еще может произойти?


 
Дом   (2006-10-05 01:39) [35]

:)))) Спасибо ОГРОМНОЕ ВАМ!!!!!!!! Все работает :) спасибо,спасибо,спасибо,спасибо,спасибо,спасибо,спасибо,спасибо!!!!!!


 
Джо ©   (2006-10-05 01:40) [36]

> [35] Дом   (05.10.06 01:39)
> :)))) Спасибо ОГРОМНОЕ ВАМ!!!!!!!! Все работает :) спасибо,
> спасибо,спасибо,спасибо,спасибо,спасибо,спасибо,спасибо!
> !!!!!

Так а в чем дело-то было?


 
Дом   (2006-10-05 01:42) [37]

там в начале самом стоит try вот его и надо было вырубить :)


 
Джо ©   (2006-10-05 01:43) [38]

> [37] Дом   (05.10.06 01:42)
> там в начале самом стоит try вот его и надо было вырубить
> :)

Приехали. Его не нужно "вырубать".


 
Дом   (2006-10-05 01:44) [39]

у меня без нее работает


 
Ketmar ©   (2006-10-05 01:47) [40]

>[37] Дом 5-Oct-2006, 01:42
ошизеть. чтобы не видеть ошибки, мы её гордо никому не покажем...



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

Форум: "Начинающим";
Текущий архив: 2006.10.22;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.54 MB
Время: 0.043 c
2-1159901078
MOVEz
2006-10-03 22:44
2006.10.22
WriteBinaryData


2-1160093162
БезИмени
2006-10-06 04:06
2006.10.22
Просмотреть все компоненты


2-1159818990
AveyiS
2006-10-02 23:56
2006.10.22
Радио по сети


3-1156510745
PEAKTOP
2006-08-25 16:59
2006.10.22
EXECUTE BLOCK


1-1157705880
Gena KAKAIN
2006-09-08 12:58
2006.10.22
Операции над чужим окном





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский