Delete from file

  • Thread starter Thread starter Ole
  • Start date Start date
O

Ole

I know that it generally isn't possible to delete a part of a file, but I'll
pop this question anyway in case there is a good idea out there:

I have a program that runs on a PDA with e.g. 32MB storage. The program
generate a file and if the file exceed 16MB I do not have the possibility to
delete a single character from the file, because I normally will have to
create a new file without the character and after that delete the original
file ---- or what????

Thanks
Ole
 
I don't understand what you are trying to achieve. Are you saying, when the
file equals a certain size, you want to delete it?
 
Sounds like he wants to remove a section of a file that is half the size of
the available storage. Since you can't just cut out some bytes from the
middle, the only practical way to do it is to create a new file and copy
just the parts of the old file that you want into the new file. However, if
the old file is half the size of the storage, that's a problem. There's no
fix that I can think of other than to stop growing the other file sooner...

Paul T.
 
The only thing I could think of is opening the file multiple times with
share access and doing some form of data "shift" using two file pointers -
essentially copying file data within the target file itself. It could be
slow and terribly thrashy if, for example, you deleted a single byte at the
start of a 16MB file. You'd end up copying the entire 16MB one byte at a
time to shift it.

On the plus side, at least it would work.


--

Chris Tacke, eMVP
Join the Embedded Developer Community
http://community.opennetcf.com



"Paul G. Tobey [eMVP]" <p space tobey no spam AT no instrument no spam DOT
com> wrote in message news:e4r%[email protected]...
 
Sounds like a very useful idea and exactly what I was looking for - will try
it out.

Thanks
Ole


The only thing I could think of is opening the file multiple times with
share access and doing some form of data "shift" using two file pointers -
essentially copying file data within the target file itself. It could be
slow and terribly thrashy if, for example, you deleted a single byte at
the start of a 16MB file. You'd end up copying the entire 16MB one byte
at a time to shift it.

On the plus side, at least it would work.


--

Chris Tacke, eMVP
Join the Embedded Developer Community
http://community.opennetcf.com



"Paul G. Tobey [eMVP]" <p space tobey no spam AT no instrument no spam DOT
com> wrote in message news:e4r%[email protected]...
Sounds like he wants to remove a section of a file that is half the size
of the available storage. Since you can't just cut out some bytes from
the middle, the only practical way to do it is to create a new file and
copy just the parts of the old file that you want into the new file.
However, if the old file is half the size of the storage, that's a
problem. There's no fix that I can think of other than to stop growing
the other file sooner...

Paul T.
 
I wonder what happens to the "Tale" of the file and how to tell the OS that
the file has decreased in size.? If I have a file of e.g. 10 KB in size and
I want to delete 1 KB from the middle of it, then I according to the below,
should "shift" the upper part of the file downwards until the the last byte
which is the EOF, but what happens to the last 10KB? Are there any code
snippets available?

Thanks,
Ole
 
Back
Top