Форум: "Начинающим";
Текущий архив: 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