Anzeige
Archiv - Navigation
708to712
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
708to712
708to712
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

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

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

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige