AW: Eine leere Zeile in eine Textdatei schreiben?
27.06.2006 22:33:42
Erich
Hallo Timo,
versuchs mal mit
' **********************************************************************
' Modul: Modul1 Typ: Allgemeines Modul
Sub WriteToFile()
Dim strFile As String, strTemp As String
Dim str1 As String, str2 As String
Dim intCheck As Integer, lngIn As Long
Dim varIn() As Variant, varOut() As Variant
Dim str3 As String, str4 As String, z As Long, strN As String, lngN As Long
ChDrive ("C:")
ChDir ("C:\Eigene Dateien\Ordner von Timo\exce")
strFile = Application.GetOpenFilename("Heidenhain (*.h),(*.*)")
If strFile = "Falsch" Then Exit Sub
str1 = ThisWorkbook.Sheets("Schnittdatenermittlung").Range("J25").Text
str2 = ThisWorkbook.Sheets("Schnittdatenermittlung").Range("E25").Text
str3 = ThisWorkbook.Sheets("Schnittdatenermittlung").Range("G16").Text
str4 = ThisWorkbook.Sheets("Datenbank").Range("K23").Text
strN = "Text fuer neue Zeile"
Open strFile For Input As #1
'Zeilenzahl feststellen
Do While Not EOF(1)
Line Input #1, strTemp
lngIn = lngIn + 1
Loop
Close #1
ReDim varIn(lngIn - 1)
ReDim varOut(lngIn) ' wenn 1 Zeile eingefügt werden soll
lngIn = 0
Open strFile For Input As #1
'Textdatei in Array einlesen
Do While Not EOF(1)
Line Input #1, strTemp
varIn(lngIn) = strTemp
lngIn = lngIn + 1
Loop
Close #1
'Zeilen suchen und Werte ersetzen
For lngIn = 0 To UBound(varIn)
If Left(varIn(lngIn), 10) = "23 FN0:Q3=" Then
varOut(lngIn + lngN) = Left(varIn(lngIn), 10) & str1 & " ;FRAESVORSCHUB"
intCheck = intCheck + 1
ElseIf Left(varIn(lngIn), 13) = "24 TOOL CALL " Then
varOut(lngIn + lngN) = Left(varIn(lngIn), 13) & str3 & " Z S" & str2
intCheck = intCheck + 1
lngN = lngN + 1
varOut(lngIn + lngN) = strN
ElseIf Left(varIn(lngIn), 10) = "22 FN0:Q2=" Then
varOut(lngIn + lngN) = Left(varIn(lngIn), 10) & str4 & " ;ANFAHRVORSCHUB"
intCheck = intCheck + 1
Else
varOut(lngIn + lngN) = varIn(lngIn) ' unveränderte Übernahme des Satzen
End If
Next
z = MsgBox("Programmnummer " & Mid(varIn(0), 4, 7) & " richtig?", vbYesNo, _
"Programm wirklich überschreiben?")
If z <> vbYes Then
Open strFile For Output As #1
'Array in Datei schreiben
For lngIn = 0 To UBound(varOut)
Print #1, varOut(lngIn)
Next
Close #1
End If
End Sub
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort