Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Read_Extern_File_and_Replace_Signs

Forumthread: Read_Extern_File_and_Replace_Signs

Read_Extern_File_and_Replace_Signs
20.12.2005 07:15:03
Gregor
Hallo Zusammen
Das untenstehende Makro funktioniert so weit so gut. Wunschlos glückglich bin ich allerdings erst, wenn es mir gelingen würde, die letzten zwei Absatzzeichen in der Datei "c:\s.csv" zu löschen (dort sind Zeilen mit Text enthalten und am Schluss 3 Absatzzeichen ohne Text, wovon ich 2 jeweils manuell löschen muss. Schön wäre es, wenn das programmierbar wäre).
Ich stelle mir das so vor, dass nach Ausführen des untenstehenden Codes an's Ende des Dokuments gefahren wird, 2 x nach links und 2-mal Delete.
Kennt jemand die Lösung?
Merci jetzt schon für deinen Imput!

Sub Read_Extern_File_and_Replace_Signs()
Dim Inhalt As String
Dim Zeilen() As String
Dim ReadFile As String
Dim i As Integer
Dim d As Integer
ReadFile = "c:\s.csv" 'anpassen
d = FreeFile
Open ReadFile For Binary As #d
Inhalt = Space(LOF(1))
Get #d, , Inhalt
Close #d
Zeilen = Split(Inhalt, vbCrLf)
For i = LBound(Zeilen) To UBound(Zeilen)
' Semikola durch Komma ersetzen
Zeilen(i) = Application.WorksheetFunction.Substitute(Zeilen(i), ";", ",")
Next i
Open ReadFile For Output As #d
Print #d, Join(Zeilen, vbCrLf)
Close #d
End Sub

Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Read_Extern_File_and_Replace_Signs
20.12.2005 13:26:56
Heiko
Hallo Gregor,
teste es mal so, Hinweis siehe Code:

Sub Read_Extern_File_and_Replace_Signs()
Dim Inhalt As String
Dim ReadFile As String
Dim d As Integer
ReadFile = "c:\s.csv" 'anpassen
d = FreeFile
Open ReadFile For Binary As #d
Inhalt = Space(LOF(d))
Get #d, , Inhalt
Close #d
' Die -5 am Ende gibt an wieviele Zeichen hinten abgeschnitten werden sollen.
' -5 passt genau für 3 "leere" Zeilen am Ende, es bleibt dann nur noch eine über.
' Teste mal mit deinen csv Dateien, auch mal mit -3, -4 oder -6
' Wenn das nicht sicher läuft, also auch mal Text abgeschnitten wird, müßte man, so wie du,
' das ganze zeilenweise verarbeiten und die letzten beiden abscheiden. Das dauert dann
' aber erheblich länger.
Inhalt = Left(Replace(Inhalt, ";", ","), Len(Inhalt) - 5)
Open ReadFile For Output As #d
Print #d, Inhalt
Close #d
End Sub

Gruß Heiko
PS: Rückmeldung wäre nett !
Anzeige
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige