Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  VBasic / vb.net / vbs / wsh
  Textdatei Zeilen löschen

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
Autor Thema:  Textdatei Zeilen löschen (2864 mal gelesen)
Beemer328
Mitglied
Konstrukteurin Dipl.Ing.(FH)


Sehen Sie sich das Profil von Beemer328 an!   Senden Sie eine Private Message an Beemer328  Schreiben Sie einen Gästebucheintrag für Beemer328

Beiträge: 104
Registriert: 22.10.2008

erstellt am: 26. Mrz. 2015 14:54    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo,

ich  möchte in einer Textdatei Zeilen mit bestimmtem Inhalt löschen und einzelne Einträge ersetzen. Das Ersetzen habe ich schon.
Nun soll z.B. eine Zeile, die mit xyz beginnt, gelöscht werden. Kann jemand meinen Code ergänzen? Ich kenne mich leider gar nicht aus.
Das habe ich bisher im Internet gefunden und für meine Zwecke umgebastelt:


Set objFSO = CreateObject("Scripting.FileSystemObject")
Const ForReading = 1
Const ForWriting = 2

' Datei öffnen und Text einlesen und schließen
Set objFile = objFSO.OpenTextFile("prog_1", ForReading)
strText = objFile.ReadAll
objFile.Close

' Änderungen am Inhalt
strNewText = Replace(strText, "A", "M10 o6.1")
strNewText = Replace(strNewText, "S70", "")
strNewText = Replace(strNewText, "M6", "")
strNewText = Replace(strNewText, "M3", "")
strNewText = Replace(strNewText, "M8", "")


' Neue Datei erstellen mit neuen Inhalten füllen
set resultFile = objFSO.CreateTextFile("Name.knc", true)
resultFile.WriteLine strNewText
resultFile.Close

Vielen Dank im Voraus.

------------------
Grüße
Julia

[Diese Nachricht wurde von Beemer328 am 26. Mrz. 2015 editiert.]

[Diese Nachricht wurde von Beemer328 am 26. Mrz. 2015 editiert.]

[Diese Nachricht wurde von Beemer328 am 26. Mrz. 2015 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

KMassler
Ehrenmitglied V.I.P. h.c.
CAD Admin + Mädchen für Alles...



Sehen Sie sich das Profil von KMassler an!   Senden Sie eine Private Message an KMassler  Schreiben Sie einen Gästebucheintrag für KMassler

Beiträge: 2657
Registriert: 06.11.2000

SolidWorks Start 1999
** CSWP 01/2008 **
Dell Precision 7540 mobile Workstation,
64GB, Quadro RTX 3000;
SWX2020 SP5;
SAP/PLM+ECTR;
DriveWorks Pro;
Programmierung: VBA, aktuell Visual Studio 2017/VB.Net

erstellt am: 26. Mrz. 2015 16:44    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Beemer328 10 Unities + Antwort hilfreich

Hall Julia,

Quick'n'Dirty und sicher verbesserungswürdig:

Bei Zugriff auf Dateinamen solltest du dir angewöhnen, immer den kompletten Pfad einzubauen.
Wenn du alles in einem Verzeichnis machst,  kannst du dafür eine Konstante definieren.
Dann ist das auch einfach zu pflegen, falls sich der Verzeichnisname mal ändert.

Code:
Option Explicit

Dim objFSO, objFile, resultfile
Dim strText As String
Dim strNewText As String
Const ForReading = 1
Const ForWriting = 2
Dim Zeilen As Variant
Dim Zeile As String
Dim n As Integer

Const WorkDir = "c:\temp\"

Sub main()

Set objFSO = CreateObject("Scripting.FileSystemObject")

' Datei öffnen und Text einlesen und schließen
Set objFile = objFSO.OpenTextFile(WorkDir & "test.txt", ForReading)
strText = objFile.ReadAll
objFile.Close

' Änderungen am Inhalt
strNewText = Replace(strText, "A", "M10 o6.1")
strNewText = Replace(strNewText, "S70", "")
strNewText = Replace(strNewText, "M6", "")
strNewText = Replace(strNewText, "M3", "")
strNewText = Replace(strNewText, "M8", "")

'Kompletten String in einzel-Strings umwandeln.
'Jeder Teil-String entspricht einer Zeile
Zeilen = Split(strNewText, vbNewLine)
strNewText = "" 'leer machen, wird neu befüllt
'Jede Zeile prüfen, ob sie den "bösen" Teilstring enthält:

For n = 0 To UBound(Zeilen)
    If InStr(Zeilen(n), "xyz") <> 1 Then 'wenn "xyz" an erste Stelle steht, ist das Suchergebnis = 1
        'nichts gefunden, also zum Gesamtstring hinzufügen und Zeilenschaltung anhängen
        strNewText = strNewText & Zeilen(n) & vbNewLine
    End If
Next


' Neue Datei erstellen mit neuen Inhalten füllen
Set resultfile = objFSO.CreateTextFile(WorkDir & "test_result.txt", True)
resultfile.write strNewText
resultfile.Close

End Sub


------------------
Klaus

www.al-ko.com | mein Gästebuch

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Beemer328
Mitglied
Konstrukteurin Dipl.Ing.(FH)


Sehen Sie sich das Profil von Beemer328 an!   Senden Sie eine Private Message an Beemer328  Schreiben Sie einen Gästebucheintrag für Beemer328

Beiträge: 104
Registriert: 22.10.2008

erstellt am: 27. Mrz. 2015 10:17    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities


prog_1.txt

 
Vielen Dank erstmal.
Funktioniert!    Wie kann ich das für mehrere Werte/Zeilen erweitern?
Es müssen immer die Zeilen mit den Anfängen G99, G90 und G17 weg.


------------------
Grüße
Julia

[Diese Nachricht wurde von Beemer328 am 27. Mrz. 2015 editiert.]

[Diese Nachricht wurde von Beemer328 am 27. Mrz. 2015 editiert.]

[Diese Nachricht wurde von Beemer328 am 27. Mrz. 2015 editiert.]

[Diese Nachricht wurde von Beemer328 am 27. Mrz. 2015 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Beemer328
Mitglied
Konstrukteurin Dipl.Ing.(FH)


Sehen Sie sich das Profil von Beemer328 an!   Senden Sie eine Private Message an Beemer328  Schreiben Sie einen Gästebucheintrag für Beemer328

Beiträge: 104
Registriert: 22.10.2008

Intel XEON E3-1280
32GB Ram, Quadro P4000
Win 10 64bit
Catia V5R24
Solidworks 2018

erstellt am: 27. Mrz. 2015 11:40    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Habs hingekriegt! Hab einfach den unteren Teil ein paar Mal kopiert und andere Werte eingesetzt. Ist bestimmt furchtbar "dirty", aber es geht.

Dankeschön!!

------------------
Grüße
Julia

[Diese Nachricht wurde von Beemer328 am 27. Mrz. 2015 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP



CNC-Fräser / Zerspanungsmechaniker (m/w/d)

Die invenio-Gruppe ist mit 525 Mitarbeiterinnen und Mitarbeitern an elf Standorten in Deutschland ein Entwicklungsspezialist für die Bauteil- und Systementwicklung ? vom Konzept bis zur Umsetzung in Prototypen und Kleinserien.

Bei invenio wird Fertigung großgeschrieben! Unser expandierender Fertigungsbereich zeichnet sich insbesondere durch seine Vielseitigkeit aus. Wir entwickeln und fertigen ...

Anzeige ansehenProjektmanagement
KMassler
Ehrenmitglied V.I.P. h.c.
CAD Admin + Mädchen für Alles...



Sehen Sie sich das Profil von KMassler an!   Senden Sie eine Private Message an KMassler  Schreiben Sie einen Gästebucheintrag für KMassler

Beiträge: 2657
Registriert: 06.11.2000

erstellt am: 30. Mrz. 2015 08:14    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Beemer328 10 Unities + Antwort hilfreich

Kann ich mir jetzt nicht so ganz vorstellen, aber wenn's funktioniert 

------------------
Klaus

www.al-ko.com | mein Gästebuch

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz