You are here: Re: Replacing a record in a flat file « PHP Programming Language « IT news, forums, messages
Re: Replacing a record in a flat file

Posted by Frank on 05/12/05 12:29

Jeff North wrote:
> On Wed, 11 May 2005 20:48:35 -0500, in comp.lang.php "BT3"
> <honeypot@epmctc.com> wrote:
>
>>| I am trying to replace a single record in a flat file. The file is
>>| relatively small and no need for database.
>>| *snip*
>>| What the code actually does, is append a NEW record to the end. Can't seem
>>| to find out hot to REPLACE the original record with the new data.

Yea, databases are evil.. So why write one yourself?!

> This is standard behaviour across all languages. Think of what is
> happening. You have a tab delimited file and you want to change a
> 'record'. The current record is Sam and you want to change it to
> Martina. So your current and updated record will look like:
> Sam\tToocan\t
> Martina\tPoppins\t
>
> Notice the delimiters, they've moved. What happens to the data in all
> of the following records? Well, the data is overwritten by the new
> 'record' thus causing corruption of your data. So your old records may
> look like:
> Sam\tToocan\t
> Bill\tBloggs\t
> Wilbur\tWest\t
>
> The updated record will look like:
> Martina\tPoppins\t
> Bloggs\t
> Wilbur\tWest\t
>
> So now when you read in Bill Bloggs you are going to retrieve
> Bloggs\tWilbur\t
>
> There are 2 methods you can use to get around this problem
> Method 1:
> Read in the entire file
> write out the data up the updated 'record'
> insert the update record into the file
> complete writing out the rest of the data.
>
> (php may have a function that does this for you, I don't know).
>
> Method 2:
> Convert your file to a fixed width format.
> create a structure that defines the 'fields' for each 'record'

Method 3:
Give each record a unique identifier, then just append changed records
to the bottom as you go. I assume you're working with the whole data
set, otherwise a flat file really isn't the way to go in the first place.

Method 4:
Use a frigging database. SQLite, Postgres, even mysql..

 

Navigation:

[Reply to this message]


Удаленная работа для программистов  •  Как заработать на Google AdSense  •  England, UK  •  статьи на английском  •  PHP MySQL CMS Apache Oscommerce  •  Online Business Knowledge Base  •  DVD MP3 AVI MP4 players codecs conversion help
Home  •  Search  •  Site Map  •  Set as Homepage  •  Add to Favourites

Copyright © 2005-2006 Powered by Custom PHP Programming

Сайт изготовлен в Студии Валентина Петручека
изготовление и поддержка веб-сайтов, разработка программного обеспечения, поисковая оптимизация