When you think ASP, think...
Recent Articles
All Articles
ASP.NET Articles
ASPFAQs.com
Message Board
Related Web Technologies
User Tips!
Coding Tips

Sections:
Sample Chapters
Commonly Asked Message Board Questions
JavaScript Tutorials
MSDN Communities Hub
Official Docs
Security
Stump the SQL Guru!
XML Info
Information:
Feedback
Author an Article
ASP ASP.NET ASP FAQs Message Board Feedback

The 4 Guys Present: ASPFAQs.com

Jump to a FAQ
Enter FAQ #:
..or see our 10 Most Viewed FAQs.

4GuysFromRolla.com : ASP FAQS : FileSystemObject


Question:

How do I insert more information into the middle of a text file? How do I delete something from a text file? How do I add to the front of a text file?


[Print this FAQ]

Answer: Short answer: YOU CAN NOT DO THAT.

Longer answer: First of all, we need to note that this is not a limitation of ASP, of the FileSystemObject, of VBScript, or of the Windows operating system. There is no system in the world, on any kind of computer, that allows any of those operations.

To understand why, you have to understand how data is stored on a disk, especially data in the form of a text file.

A directory entry (a file name) simply points to a starting point of the disk. (Perhaps something in the form of "start at block number 77123".) And then the data starts at that spot and continues, without interruption, to the end of the block. If the data is larger than a block, then again the directory (typically...there are other schemes possible, though none that I know of used in modern operating systems) points to the next block to be used. Again, the data continues at the start of the next block and continues to the end of it. The process is repeated until all the data is written to the disk.

Now, can you dream up a scheme whereby you could insert or remove some data from the middle of that file???

Effectively, you'd have to find a way to "stretch" or "shrink" a block on the disk, wouldn't you? But blocks are always a fixed size (in fact, excepting for a few mainframe operating systems, they are always the same size throughout a given disk drive). You can't change their size! So you can't insert or delete data. Period.

The only way to alter the contents of a text file (other than by appending data to the end of it--which is allowed by Windows) is to read all the data (the entire text file) into memory, change the data, erase the original file, and then write the new data back to the same file.

Period. Honest. That's the only way.


FAQ posted by Bill Wilkinson at 2/25/2001 2:28:52 PM to the FileSystemObject category. This FAQ has been viewed 48,185 times.

Do you have a FAQ you'd like to suggest? Suggestions? Comments? If so, send it in! Also, if you'd like to be a FAQ Admin (creating/editing FAQs), let me know! If you are looking for other FAQs, be sure to check out the 4Guys FAQ and Commonly Asked Messageboard Questions!

Most Viewed FAQs:

1.) How can I format numbers and date/times using ASP.NET? For example, I want to format a number as a currency. (761643 views)
2.) I am using Access and getting a 80004005 error (or a [Microsoft][ODBC Microsoft Access Driver] The Microsoft Jet database engine cannot open the file '(unknown)' error) when trying to open a connection! How can I fix this problem? (207777 views)
3.) How can I convert a Recordset into an array? Also, how can I convert an array into a Recordset? (202549 views)
4.) How can I quickly sort a VBScript array? (196039 views)
5.) How can I find out if a record already exists in a database? If it doesn't, I want to add it. (156019 views)
6.) How do I display data on a web page using arrays instead of Do...While...MoveNext...???... (152331 views)
7.) When I get a list of all files in a directory via the FileSystemObject, they aren't ordered in any reasonable way. How can I sort the files by name? Or by size? Or by date created? Or... (140381 views)
8.) For session variables to work, must the Web visitor have cookies enabled? (110162 views)
9.) Can I send emails without using CDONTS? (107083 views)
10.) How can I take the result of a SELECT...MULTIPLE or a group of same-named checkboxes and turn it into a query? That is, if the user selects 3 answers, how can I construct a query that looks for all 3? (106308 views)
Last computed at 9/17/2007 3:22:00 AM


ASP.NET [1.x] [2.0] | ASPMessageboard.com | ASPFAQs.com | Advertise | Feedback | Author an Article