Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1560to1564
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Textdatei öffnen bearbeiten und schließen

Textdatei öffnen bearbeiten und schließen
31.05.2017 06:00:59
Furkan
Hallo zusammen, ich hab eine frage
ich möchte in einer vorhandenen textdatei ein bestimmtes zeichen in dem fall "." in einer zeile zählen danach je nach anzahl der zeichen meinen string in die selbe oder in die nächste zeile hinzufügen und die datei schließen. ich habe vb 2010 express
irgendwie funktioniert es nicht. ich habe nicht einmal die datei öffnen oder bearbeiten können. besten dank im vorraus
Private Sub Adden()
Dim zeile As String
FileOpen(1, "C:\Users\Furkan\Desktop\data.txt", OpenMode.Input)
FileOpen(2, "‪C:\Users\Furkan\Desktop\data.txt", OpenMode.Output)
Do While Not EOF(1)
zeile = LineInput(1)
Dim pos As Integer = InStr(1, zeile, ".")
If pos = 3 Then
zeile = Replace(zeile, Chr(10), vbCrLf)
PrintLine(2, zeile & teil(0))
Else
PrintLine(2, zeile & " " & teil(0))
End If
Loop
FileClose(1)
FileClose(2)
End Sub

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Textdatei öffnen bearbeiten und schließen
31.05.2017 22:11:06
Pit
Hi Furkan, einfacher Ansatz:
Sub Adden()
Dim  FName, FName_1 As String, i As Integer
Dim Satz(1000) As String ' ungefähre länge der Textdatei wenn gewollt mit redim..
FName = "c:\textdatei.txt"
FName_1 = "c:\textdatei_1.txt"
Open FName For Input As #1
Open FName_1 For Output As #2  ' neuer Dateiname!!
i = 1
Do While Not EOF(1)
Input #1, Satz(i)
Debug.Print Satz(i)
' Hier die veränderung vornehmen und dann in neue Datei schreiben
' If Satz(i) then ................
Print #2, Satz(i)
i = i + 1
Loop
Close #1
Close #2
End Sub

AW: Textdatei öffnen bearbeiten und schließen
01.06.2017 05:02:30
fcs
Hallo Furkan,
ich hab hier jetzt keine VB-Version.
Unter VBA für Excel muss das Makro wie folgt aussehen.
In deinem Makro ist ein grundsätzliche Problem:
Du kannst nicht die gleiche Datei für Input und Output öffnen.
Weiter ist die Frage: Was ist teil(0)?
Wird diese Variable in einem anderen Makro gefüllt und ist im Modul als Private oder Public deklariert?
Die Anzahl der Zeichn in einem Text musst du auch anders ermitteln.
Die Funktion InStr ermittelt die Position eines Textes in einem anderen Text.
Evtl. findest du ja die passenden Anweisungen, um das Makro von VBA auf VB umzuschreiben.
Gruß
Franz
'VBA-Code erstellt unter Excel 2010
Option Explicit
Public teil(0 To 3) As String
'Private Sub Adden()
Sub Adden()
Dim zeile As String
Dim FF1 As Integer, FF2 As Integer
Dim pos As Integer, AnzPunkte As Integer
Dim strFind As String, strReplace As String
Dim strFile1 As String, strFile2 As String
On Error GoTo Fehler
teil(0) = "##Einfüge-Text##" 'Testzeile
strFile1 = "C:\Users\Furkan\Desktop\data.txt" 'Name Original-Textdatei
strFile2 = "C:\Users\Furkan\Desktop\tempdatatemp.txt" 'Name temporäre Textdatei
strFile1 = "C:\Users\Admin\Desktop\data.txt" 'Name Original-Textdatei
strFile2 = "C:\Users\Admin\Desktop\tempdatatemp.txt" 'Name temporäre Textdatei
FF1 = FreeFile()
Open strFile1 For Input As #FF1
FF2 = FreeFile()
Open strFile2 For Output As #FF2
strFind = Chr(10)
strReplace = vbCrLf
Do While Not EOF(FF1)
'Zeile einlesen
Line Input #FF1, zeile
'Position von "." suchen
pos = InStr(1, zeile, ".")
AnzPunkte = 0
If pos > 0 Then
'Anzahl Punkte in Zeilen-Text berechnen
AnzPunkte = Len(zeile) - Len(Replace(zeile, ".", ""))
End If
If Len(zeile) > 0 Then
'Anzahl Punkte prüfen und ggf.  Text modifizierten
Select Case AnzPunkte
Case 0
'Text nicht modifizieren
Case 3
zeile = VBA.Replace(zeile, strFind, strReplace, compare:=vbBinaryCompare)
zeile = zeile & teil(0) ' was ist teil(0)
Case Else
zeile = zeile & " " & teil(0)
End Select
End If
Print #FF2, zeile
Loop
Close FF1
Close FF2
'Original-Datei löschen
VBA.Kill strFile1
'temporäre Datei umbenennen in Name der Originaldatei
Name strFile2 As strFile1
'ggf. temporäre Datei wieder löschen
If Dir(strFile2)  "" Then VBA.Kill strFile2
Fehler:
With Err
Select Case .Number
Case 0
Case Else
MsgBox "Fehler-nr.: " & .Number & vbLf & .Description
Close
End Select
End With
End Sub

Anzeige

30 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige