Open file as: 10101001101....?

Hi.
How can i open a file as integer:101011010100011110001010111 ???

How can i put the file together again, and save it??

It should be able to be displayed as a string (inttostr).

Thanks.
Dennis
LVL 1
Dennis9Asked:
Who is Participating?
 
edsteeleConnect With a Mentor Commented:
Do you know the size of the file you will be loading?  If it's not big, just create an Array of Char of the size you need and read the whole file in at once.  The Read method of the TFileStream class returns the actual number of bytes read, so you can tell how much data was actually loaded.  If the size of the file is unknown or it will be large (you can define "large"), you can process the file a chunk at a time:

var
  MyCharBuffer: Array[0..1023] of Char;

while MyFileStream.Read(MyCharBuffer, 1024) do
begin
  Process(MyCharBuffer);
end;

This piece of code will read in 1KB chunks and pass the buffer to the Process procedure (which you will need to write).  The Process procedure could be as simple as converting the array to a string and storing it.

If I had a better idea of what you are trying to accomplish, my examples could be more directed.

Eric
0
 
bugrogerCommented:
Hi,

"open a file as integer: 101010101010101010?"
 do you mean as bits?

0
 
Dennis9Author Commented:
Yes, but can they  be converted to integer or string?

Dennis
0
Free Tool: Subnet Calculator

The subnet calculator helps you design networks by taking an IP address and network mask and returning information such as network, broadcast address, and host range.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

 
kretzschmarCommented:
just from head, not tested

var
  f : file of integer;
  i : Integer;
begin
  assignfile(f,AFilename);
  rewrite(f);
  for i := 0 to 50 do
    write(f,I);
  closefile(f);
  reset(f);
  seek(f,25); //read the 26th Integervalue
  read(f,i);
  showmessage(IntToStr(i);
  closefile(f);
end;

meikl ;-)
0
 
bugrogerCommented:
Hi,
 here are 3 functions to convert a byte, word and dword
 to a string of BITS and 1 function to convert a string
 of BITS to INTEGER.
 I don't know if it that what you want.

Function ByteToBit(b : byte) : String;
Var
 z : byte;
Begin
 Result := '';
 For z := 1 to 8 do
 Begin
  IF b AND 128 = 128 then Result := Result + '1'
                     else Result := Result + '0';
  b := b SHL 1;
 End;
End;

Function WordToBit(w : word) : string;
Var
 z : byte;
Begin
 Result := '';
 For z := 1 to 16 do
 Begin
  IF w AND 32768 = 32768 then Result := Result + '1'
                         else Result := Result + '0';
  w := w SHL 1;
 End;
End;

Function DWordToBit(d : dword) : string;
Var
 z : byte;
Begin
 Result := '';
 For z := 1 to 32 do
 Begin
  IF d AND $80000000 = $80000000 then Result := Result + '1'
                                 else Result := Result + '0';
  d := d SHL 1;
 End;
End;

Function BitsToInt(s : string) : Integer;
Var
 z : byte;
Begin
 Result := 0;
 For z := 1 to Length(s) do
 Begin
  IF s[z] = '1' then Result := Result +1;
  IF z <> Length(s) then Result  :=  Result  SHL 1;
 End;
End;
0
 
Dennis9Author Commented:
Hi.
I just need a way to open a file, and have it as an integer or string, and then i should be able to save the string/integer back to file. (copy of it)

Dennis
0
 
bugrogerCommented:
like a hex editor?
0
 
edsteeleCommented:
Why don't you use TFileStream.  You can open the file as a stream, then you can read bytes from it into a buffer and do anything you want with the buffer.

Does this help?
Eric
0
 
Dennis9Author Commented:
I will like it as text, but if u can tell me more about the buffer stuff it would be great!

Dennis
0
 
edsteeleCommented:
Well, a lot of using a stream is knowing what the data you are reading in will look like.  Do you have a good idea of what you are reading in?

Here are some examples.

Reading an integer:

After defining MyIntBuffer as an Integer, you can execute the following code to read an integer from the stream.

MyFileStream.Read(MyIntBuffer, SizeOf(MyIntBuffer));

Reading a string:

After defining MyCharBuffer as an Array of Char, you can execute the following code to read a string from the stream.  The catch is that you need to know how much to read from the stream.

MyFileStream.Read(MyCharBuffer, NumCharsToRead);

Maybe this will work for you and maybe it's too much work.  You have to decide that.  :)

Eric
0
 
Dennis9Author Commented:
Hi.
I need to read all from the stream, is there a way to do that?

Dennis
0
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.

All Courses

From novice to tech pro — start learning today.