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

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

← →
Дом   (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 вся ветка

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



Память: 0.53 MB
Время: 0.034 c
15-1159505220
boriskb
2006-09-29 08:47
2006.10.22
Энциклопедия целочисленных последовательностей.


15-1159383314
x.pro
2006-09-27 22:55
2006.10.22
Mobile phone tools 4


2-1160030756
TrainerOfDolphins
2006-10-05 10:45
2006.10.22
Значение по умолчанию на стороне клиента


15-1159773033
balepa
2006-10-02 11:10
2006.10.22
Как вы определяете конфигурацию для нормальной работы программы ?


15-1159749141
Fimoza
2006-10-02 04:32
2006.10.22
OBD II




   Наверх