| Print-Befehl mit Semi-Kolon |
|
|
| Function FindAndReplace(ByVal vsPath As String, ByVal vsFileName As String, _ |
| ByVal vsFind As String, ByVal vsReplace As String) |
|
| Dim strFileName As String 'Dateiname der Original-Datei |
| Dim strTempFile As String 'Dateiname der temporären Datei |
| Dim strLine As String 'Eingelesene Zeile |
| Dim FN1 As Integer 'Datei-Nr. kopierte Datei (temporäre Datei) zum Lesen öffnen |
| Dim FN2 As Integer 'Datei-Nr. Original-Datei zum Schreiben öffnen |
|
| 'Fehlerbehandlung aktivieren |
| On Error GoTo err_Handler |
|
| 'Pfad überprüfen |
| If Right$(vsPath, 1) <> "\" Then vsPath = vsPath & "\" |
| |
| 'Dateiname inkl. Pfad |
| strFileName = vsPath & vsFileName |
| 'Dateiname inkl. Pfad für temporäre Datei festlegen |
| strTempFile = vsPath & "Temp_" & vsFileName |
| |
| 'Original-Datei kopieren |
| FileCopy strFileName, strTempFile |
| |
| 'Die kopierte Datei (temporäre Datei) zum Lesen öffnen |
| FN1 = FreeFile() |
| Open strTempFile For Input As #FN1 |
| 'Die Original-Datei zum Schreiben öffnen (Original wird überschrieben) |
| FN2 = FreeFile() |
| Open strFileName For Output As #FN2 |
| VBA.DoEvents |
| 'Die Datei (temporäre Datei) Zeile für Zeile durchlaufen |
| Do While Not EOF(FN1) |
| 'Zeile einlesen |
| Line Input #FN1, strLine |
| If InStr(1, strLine, vsFind) > 0 Then |
| strLine = VBA.Replace(strLine, vsFind, vsReplace) |
| End If |
|
| strLine = strLine & " " |
| 'Neue Zeile in die Original-Datei zurückschreiben. |
| 'Das abschließende Semi-Kolon löscht alle Zeilenumbrüche. |
| Print #FN2, strLine; ' <--- Semi-Kolon löscht vbCrLf |
| Loop |
| Close #FN2 '(Neue) Original-Datei schließen |
| Close #FN1 'Temporäre Datei schließen |
| Kill strTempFile 'Temporäre Datei löschen |
|
| Exit Function |
|
| err_Handler: |
| 'Meldung bei Fehler anzeigen |
| MsgBox Err.Description, vbCritical, "Fehler" |
| End Function |
|