• 0

[VB.NET] Deleting string from text file


Question

9 answers to this question

Recommended Posts

  • 0
  Puggsley said:
I need to search through a .txt file and remove a specific string. Anything i've found so far deletes a specific line number, but the string could appear on any line.

Ok, this answer will work, but I'm sure there are less expensive ways to achive the desired result. That said... Load the entire file into a string (oh my!) and then do a String.Replace("OLD VALUE", "") and then save the string to the file.

If the file is small, this is not a big deal, if the file is large it can take a serious chunk of memory.

If I think of something else I'll post back.

  • 0

Thanks for the prompt reply!

Thats the best solution i could come up with as well. As for the file size, there is about 10 files, varying from 20kb to 5mb so it could be a problem. Time and memory isn't too much of an issue and if it becomes one then it is something to look at in the future, but right now its more important to get something working

How much of a problem do you think it will be?

  • 0

I think the 5mb file is a LITTLE bit of an issue, but since these days (as opposed to 1995) memory is cheap and plentiful it's not something I would freak about.

If you write your code well, when you find a better solution, you'll be able to change that small chunk of code and get better performance. (hack? oh a little)

If it was me, and I was out of time, I'd go with the original idea and then at a later date do the performance gain. I've done tech work for 20 years and dev for 15. *I* find it most important to get the job done, over having it done well. Done well is nice, but not if it's NOT done. (read that sentence carefully)

  • 0

Would it be possible to read the file just one line at a time? This way only one line will have to be in memory. There may be a way to loop this method until the end of file has been reached. Just search through each line one at a time for the string to remove it. After the line has been analyzed, unload it and load the next line.

I'm not sure how you would go about coding this, but perhaps the idea will spark something. :)

  • 0

The problem with the "line by line" is that VB opens access to the file and will allocate a chunk of memory near the size of the file in either case. This is a concern and I'm sure there is a better solution that I have stated above... at the moment I don't have one. (sorry)

EDIT:

I thought I'd make a comment here: Besides the coding issues another point of development work is to know which goals to reach for... I had a friend back in San Francisco that spent a month creating a reporting engine in VB. Considering his fee and the abilities of VB the time would have been much better spent purchasing Crystal Reports or some other engine and having a large number of reports created by the end of that first month. (of course there are arguments for creating the engine, but in this case it was a serious waste of the client's cash)

SOMETIMES getting something done quickly vs writing tight, memory and CPU light code is better. It's a case by case issue based on the information at hand and the time alotted.

Just food for thought.

Peace,

James Rose

New York City

Edited by jameswjrose
  • 0

OK, so i took the plunge and went with the original suggestion but am having real difficulties getting it to work

To make sure its nothing else in the program i created a new project and put the following code on the form load event and created a text file with the contents "Hello World" in the output folder

Dim FileContents as String
Dim objReader as System.IO.StreamReader
objReader - New StreamReader(Environment.CurrentDirectory & "\test.txt")
FileContents = objReader.ReadToEnd
objReader.Close
FileContents.Replace("Hello", "")
Dim objWriter as System.IO.StreamWriter
objWriter = New StreamWriter(Environment.CurrentDirectory & "\test.txt")
objWriter.Write(FileContents)
objWriter.Close

From watching in explorer the program seems to zero byte the file and then write exactly the same contents back again.

Any ideas would be greatly appreciated!

This topic is now closed to further replies.
  • Recently Browsing   0 members

    • No registered users viewing this page.
  • Posts

    • It's not. It's a rightwing lie peddled by liars to BillyBob'sFreedumb email chain. Feel free to provide any credible source to support this claim. You won't find a single one. The reason Biden wasn't prosecuted was because it was a handful of documents from the Obama years that were just in storage. And when the FBI asked for them, Biden and his team did everything they could to find them and return them immediately -- even ones the FBI didn't know were "missing". https://en.wikipedia.org/wiki/...assified_documents_incident Whereas the Charlatan in Chief stored mountains of classified material out in the open in his pay to play club infested with foreign spies. https://www.pbs.org/newshour/p...-mar-a-lago-shower-ballroom Trump also revealed this nation's most classified information to foreigners who had no clearance to access them...and then bragged about knowing them to their friends overseas. https://www.nbcnews.com/politi...arines-according-rcna119173 And not only are many still missing and not returned... https://www.cnn.com/interactiv...ssia-intelligence-trump-dg/ Trump denied having them to the FBI repeatedly and moved them around to avoid having to return them to the proper authorities for over a year. https://www.pbs.org/newshour/p...ing-of-classified-documents There is no credible legitimate comparison between the two classified documents cases. You might want to change the source of the information you are getting and falling for. They are quite obviously lying to you. PS On the content issue...I am a content creator. You and everyone else in the world loves the franchises and content I have created and/or contributed meaningfully to. It's the studios that are doing everything they can to remove us, the content creators, from their balance sheets (now with AI)...not the people who consume what we create for free. We've already been paid, thanks. Blame Wall Street for forcing the bottomless greedy enshittification of everything American, not the consumers, pirates, or the actual creators.
    • https://support.microsoft.com/...61ff-00a1-04e2-2d1f3865450d
    • https://support.microsoft.com/...61ff-00a1-04e2-2d1f3865450d
    • Swatle AI — the smarter way to manage your teams, projects, and tasks now 75% off by Steven Parker Today's highlighted deal comes via our Apps + Software section of the Neowin Deals store, where you can save 75% off on Swatle All-in-One AI Assistant (Premium lifetime subscription). Stop over-hiring and overspending to meet your productivity goals. Swatle is all you need to achieve more with less. Swatle is an all-in-one AI solution designed to supercharge your productivity without over-hiring or overspending. Whether you're managing projects, automating repetitive tasks, or organizing your team's workflow, Swatle can help you achieve more with less. Powered by cutting-edge artificial intelligence, it adapts to your needs, streamlines operations, and eliminates inefficiencies so you can focus on what matters most—growing your business. With Swatle, working smarter isn’t just a goal—it’s your new reality. Let Swatle AI handle the necessary mundane tasks. SWATLE AI PROJECT ASSISTANT Step-by-Step Guidance: For every task you assign, either write step-by-step instructions yourself or let Swatle AI write on your behalf Skip the Standups: Ask Swatle AI about project progress and get instant, actionable updates—no daily meetings needed Accurate Time Estimates: Plan your day better by estimating the time required to complete your tasks Message Refinement: Send crystal clear messages; Swatle AI will rephrase your message & make it crisp and clear Project Quality Boost: Turn normal project descriptions into a crystal-clear description TEAM COLLABORATION MADE EASY Streamline Communication: Send & receive messages and updates within Swatle for real-time, tool-free collaboration Centralized Team Portfolios: Create dedicated portfolios to highlight your team's expertise & track their contributions effectively Conversational Task Creation: Instantly create tasks while having casual conversations with a single click. Make sure nothing falls through the crack Share Files & Feedback Directly: Eliminate scattered documents and email threads by sharing files and providing feedback directly in Swatle chat SWATLE TASKDESK Non-Technical Projects: Specifically designed for projects like marketing campaigns, content creation, and event planning Visualize Work Your Way: Manage tasks through Kanban boards, lists, Gantt charts, or Timelines—whatever fits your flow AI Task Assistant: Break down complex tasks into manageable subtasks quickly & easily Workload Tracking: View the workload of your team members & distribute tasks across the team to encourage a balanced workload. Proactive Notifications: Effortlessly keep your projects on track with timely, proactive notifications SWATLE DEVBOARD Technical Projects: Create unlimited sprints & backlogs for full control and visibility into every phase of your projects Burndown Chart: Provides a clear, real-time visual representation of your team's work remaining against the sprint timeline Set Goals, Create Sprints, Achieve More: Define your objectives and launch focused sprints that empower your team to concentrate on key tasks within short, impactful cycles Why choose Swatle? No Learning Curve: Swatle offers a remarkably easy-to-use interface. Empower your entire team to understand project progress without requiring technical expertise. Actionable Intelligence: Swatle turns raw project data into visualizations, like Assigned vs Completed charts, enabling focused analysis without manual effort. Proactively Mitigate Risks: Swatle visual dashboards make it easy to spot potential delays, bottlenecks, and resource imbalances, enabling you to take timely action and keep your projects on track. Ensure Resources Are Optimized: By visualizing workloads, you can strategically distribute tasks, promote a balanced environment, and prevent team burnout. Maintain Project Alignment & Stakeholder Confidence: Keep everyone from your internal team to clients and stakeholders on the same page with clear Gantt and Timeline views. Good to know Length of access: lifetime Redemption deadline: redeem your code within 30 days of purchase Access options: desktop or mobile Max number of device(s): unlimited Available to both NEW and Existing users Updates included This Swatle All-in-One AI Assistant (Premium lifetime subscription) normally costs $240, but this deal can be yours for just $59.99, that's a saving of $180. For full terms, specifications, and license info please click the link below. Get this lifetime Swatle Premium deal for just $59.99 (75% off) or learn more Although priced in U.S. dollars, this deal is available for digital purchase worldwide. We post these because we earn commission on each sale so as not to rely solely on advertising, which many of our readers block. It all helps toward paying staff reporters, servers and hosting costs. Other ways to support Neowin Whitelist Neowin by not blocking our ads Create a free member account to see fewer ads Make a donation to support our day to day running costs Subscribe to Neowin - for $14 a year, or $28 a year for an ad-free experience Disclosure: Neowin benefits from revenue of each sale made through our branded deals site powered by StackCommerce.
  • Recent Achievements

    • First Post
      sultangris earned a badge
      First Post
    • Reacting Well
      sultangris earned a badge
      Reacting Well
    • First Post
      ClarkB earned a badge
      First Post
    • Week One Done
      Epaminombas earned a badge
      Week One Done
    • Week One Done
      Prestige Podiatry Care earned a badge
      Week One Done
  • Popular Contributors

    1. 1
      +primortal
      144
    2. 2
      Xenon
      127
    3. 3
      ATLien_0
      124
    4. 4
      +Edouard
      102
    5. 5
      snowy owl
      98
  • Tell a friend

    Love Neowin? Tell a friend!