How to convert binary data to string

 Registry.RootKey := HKEY_CURRENT_USER;
  Registry.OpenKey('\Software\Microsoft\Windows\CurrentVersion\Explorer\RecentDocs\Folder',False)
   Registry.ReadBinaryData('VALUE7', Buffer , Sizeof(Buffer))
  How to convert binary data to string.

rsivamAsked:
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

Ray_AdamsCommented:
This is just UNICODE string. Use
var
  data:array[0..255] of WideChar;
as a buffer for reading.
0
steve_hskCommented:
Hi Rsivam ...

If you want the recent docs info, then there may be a better approach ... I thought there was a shell api function  like this one ...

procedure DoStuff(const Filename: string);
begin
  SHAddToRecentDocs(SHARD_PATH, @Filename[1]);
end;

I think this what your currently trying to do, although the output isn't completely clean :

procedure TForm1.Button1Click(Sender: TObject);
VAR Registry : TRegistry;
    Buffer   : array[1..255] of char;
    isize : Integer;
    sOutput : String;
    iCharCount : Integer;
begin
    Registry := TRegistry.Create;

    Registry.RootKey := HKEY_CURRENT_USER;
    Registry.OpenKey('\Software\Microsoft\Windows\CurrentVersion\Explorer\RecentDocs\Folder',False);
    iSize := sizeof(Buffer);
    Registry.ReadBinaryData('a', Buffer, isize);
    Registry.Free;

    sOutput := '';
    For iCharCount := 0 To iSize do
    begin
        IF Buffer[iCharCount] <> #0 THEN
        begin
            sOutput := sOutput + Buffer[iCharCount];
        end;
    end;
    // NOTE >> Need a memo and a button on a form :
    Memo1.Lines.Add(sOutput);
end;

Here are 2 good examples of bin to string conversion :

http://www.latiumsoftware.com/en/delphi/00004.php

http://www.experts-exchange.com/Programming/Programming_Languages/Delphi/Q_10111505.html

Hope this helps,
Steve
0

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
merry_princeCommented:
Carry out below method, you can use buffer var as string.

var Registry: TRegistry;
    Buffer   : array[1..255] of char;
    isize : Integer;
begin
   Registry := TRegistry.Create;

   Registry.RootKey := HKEY_LOCAL_MACHINE;
   Registry.OpenKey('\SOFTWARE\Prn\DEMO2',False);
   iSize := sizeof(Buffer);
   Registry.ReadBinaryData('PASSWD', Buffer, isize);
   Registry.Free;
   Buffer[isize] := #0;
   ShowMessage(buffer);
end;
0
CleanupPingCommented:
rsivam:
This old question needs to be finalized -- accept an answer, split points, or get a refund.  For information on your options, please click here-> http:/help/closing.jsp#1 
EXPERTS:
Post your closing recommendations!  No comment means you don't care.
0
snehanshuCommented:
Hi!
No comment has been added lately and this question is therefore classified abandoned.

If asker wishes to close the question, then refer to
http://www.experts-exchange.com/help/closing.jsp

Otherwise, I will leave a recommendation in the Cleanup topic area that this question is:

Answered by: steve_hsk

Please leave any comments here within the next seven days. It is assumed that any participant not responding to this request is no longer interested in its final disposition.

PLEASE DO NOT ACCEPT THIS COMMENT AS AN ANSWER!

...Snehanshu
EE Cleanup Volunteer
0
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Delphi

From novice to tech pro — start learning today.

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.