Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
948to952
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
948to952
948to952
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

textzeilen in txt datei ergänzen

textzeilen in txt datei ergänzen
12.02.2008 14:48:00
christian
hallo,
ich habe folgendes problem:
ich habe txt dateien die vor dem import in excel noch modifiziert werden müssen. in "" gekennzeichnete positionen müssen ergänzt werden. Im untenstehenden makro habe ich mal begonnen und es nicht geschafft.
Datei mit den gwünschen positionen:
https://www.herber.de/bbs/user/49845.txt
txt-Datei unbearbeitet:
https://www.herber.de/bbs/user/49844.txt
für eure hilfe bin ich sehr dankbar.
gruss christian
Mein makro:

Sub MergeFiles(SourceFolder As String, OutputFile As String)
'Zusammenfügen nummerierter .txt Dateien in aufsteigender Richtung
Dim i As Integer
Dim Textzeile As String
Dim Dateiname As String
Dim numOut As Integer
Dim numIN As Integer
Dim strNum As String, n As Integer
numOut = FreeFile
Open SourceFolder & OutputFile For Output As #numOut
Dateiname = Dir(SourceFolder & "*.txt")
Do While Not Dateiname = ""
If Dateiname  OutputFile Then
n = 0
numIN = FreeFile
strNum = InputBox("Aktuelle Datei: " & Dateiname & Chr(13) & Chr(10) & "Bitte Anzahl  _
Sporen oder DNA-Konzentration erfassen:", "Zusatz", "")
Open SourceFolder & Dateiname For Input As #numIN 'Öffne gefundene Datei
Do While Not EOF(numIN) 'Schleife bis Dateiende.
Line Input #numIN, Textzeile 'Zeile in Variable einlesen.
n = n + 1
If InStr(1, Textzeile, "#") > 0 Then      'Textzeile "Sonde" einfügen
Textzeile = "Sonde" & Textzeile
Else
Textzeile = "    " & Textzeile
End If
If InStr(1, Textzeile, "Back") > 0 Then      'Textzeile "Konzentration" einfügen
Textzeile = "Konzentration" & Textzeile
Else
Textzeile = "    " & Textzeile
End If
If n = 2 Then  'einfügen in Zeile 2         ' Box erfassen
Textzeile = Textzeile & Chr(32) & strNum
End If
Print #numOut, Textzeile 'Ausgabe in Datei.
Loop
Close #numIN
End If
Dateiname = Dir
Loop
Close #numOut
End Sub


7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: textzeilen in txt datei ergänzen
12.02.2008 16:06:00
Tino
Hallo,
vielleicht reicht es mit dieser Ergänzung

If InStr(1, Textzeile, "#") > 0 Then      'Textzeile "Sonde" einfügen
Textzeile = "Sonde" & Textzeile
Textzeile = Konzentration & vbCrLf & Textzeile


Gruß
Tino

AW: textzeilen in txt datei ergänzen
12.02.2008 16:25:32
Erich
Hallo Christian,
das Textfile, das du hier als 46845.txt hochgeladen hast, entspricht sicher nicht dem gewünschten Ergebnis.
Wie hast du das erstellt?
Das File ist kein "einfaches" Textfile, sondern Unicode-(UTF-)codiert.
Es enthält viele Tabulatorzeichen (chr(9)).
Eingefügte Texte stehen in Gänsefüßchen.
Das Ergebnis strNum aus der InputBox fehlt. Wo soll es stehen?
Das alles soll sicher nicht so sein.
Eine Frage:
Im Code suchst du nach "#" und nach "Back". Im Beipiel stehen die in der selben Zeile.
Ist das immer so? Dann würde sich die getrennte Abfrage wohl erübrigen.
Wenn du mit InStr(1, Textzeile, "Back") suchst, wird "BACK" nicht gefunden.
Da müsste
InStr(1, Textzeile, "BACK")
oder
InStr(1, Textzeile, "Back", 1)
oder
InStr(1, Textzeile, "Back", vbTextCompare)
stehen. (Schau mal in die VBA-Hilfe zu InStr.)
Lädst du bitte dein (wirklich) gewünschtes Ergebnis hoch?
(Am besten bearbeitest du dafür die Quelldatei mit dem Texteditor.)
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort

Anzeige
AW: textzeilen in txt datei ergänzen
12.02.2008 16:40:00
christian
Hallo Erich
Sorry, hier die richtige Datei:
https://www.herber.de/bbs/user/49850.txt
Die gewünschten Positionen sind in "" markiert.
Die eingefügte inputbox bezieht sich auf "Konzentrationswert"
gruss christian

AW: Zeilen in Textdatei ergänzen
12.02.2008 17:24:38
Erich
Hi Christian,
probier mal

Sub MergeFiles(SourceFolder As String, OutputFile As String)
'Zusammenfügen nummerierter .txt Dateien in aufsteigender Richtung
Dim i As Integer
Dim Textzeile As String
Dim Dateiname As String
Dim numOut As Long
Dim numIN As Long
Dim strNum As String, n As Long
numOut = FreeFile
Open SourceFolder & OutputFile For Output As #numOut
Dateiname = Dir(SourceFolder & "4*.txt")
Do While Not Dateiname = ""
If Dateiname  OutputFile Then
n = 0
numIN = FreeFile
strNum = InputBox("Aktuelle Datei: " & Dateiname & Chr(13) & Chr(10) _
& "Bitte Anzahl Sporen oder DNA-Konzentration erfassen:", "Zusatz", "")
Open SourceFolder & Dateiname For Input As #numIN 'Öffne gefundene Datei
Do While Not EOF(numIN) 'Schleife bis Dateiende.
Line Input #numIN, Textzeile 'Zeile in Variable einlesen.
n = n + 1
If n = 2 Then  'einfügen in Zeile 2         ' Box erfassen
Textzeile = "Konzentration " & strNum
ElseIf InStr(1, Textzeile, "#") > 0 Then      'Textzeile "Sonde" einfügen
Textzeile = "Name  " & Textzeile
Else
Textzeile = "      " & Textzeile
End If
Print #numOut, Textzeile 'Ausgabe in Datei.
Loop
Close #numIN
End If
Dateiname = Dir
Loop
Close #numOut
End Sub

Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort

Anzeige
AW: textzeilen in txt datei ergänzen
12.02.2008 17:32:40
Erich
Hallo Christian,
in der Zeile
Dateiname = Dir(SourceFolder & "4*.txt")
hatte ich zum Testen eine 4 ergänzt.
Die musst du noch löschen, also
Dateiname = Dir(SourceFolder & "*.txt")
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort

AW: textzeilen in txt datei ergänzen
12.02.2008 20:03:21
christian
Hallo Erich,
im Prinzip funktionierts sehr gut. letztes problem ist: der eintrag "konzentration" wird beim import in excel auf zwei spalten bzw zeilen (bei mir a2:b2) aufgeteilt und der mit der box erfasste wert steht auch in b2.
sonst perfekt! vielen dank
gruss christian

AW: textzeilen in txt datei ergänzen
12.02.2008 21:06:00
Erich
Hallo Christian,
sollte ich wissen, wie du das Textfile mit Excel öffnest?
Vermutlich setzt du dabei feste Spaltenbreiten voraus.
Hast du das Öffnen mal mit Trennzeichen " " (Leerzeichen) versucht?
Wenn es bei festen Spaltenbreiten bleiben soll - ist das etwas besser?

Sub MergeFiles(SourceFolder As String, OutputFile As String)
'Zusammenfügen nummerierter .txt Dateien in aufsteigender Richtung
Dim i As Integer
Dim Textzeile As String
Dim Dateiname As String
Dim numOut As Long
Dim numIN As Long
Dim strNum As String, n As Long
numOut = FreeFile
Open SourceFolder & OutputFile For Output As #numOut
Dateiname = Dir(SourceFolder & "*.txt")
Do While Not Dateiname = ""
If Dateiname  OutputFile Then
n = 0
numIN = FreeFile
strNum = InputBox("Aktuelle Datei: " & Dateiname & Chr(13) & Chr(10) _
& "Bitte Anzahl Sporen oder DNA-Konzentration erfassen:", "Zusatz", "")
Open SourceFolder & Dateiname For Input As #numIN 'Öffne gefundene Datei
Do While Not EOF(numIN) 'Schleife bis Dateiende.
Line Input #numIN, Textzeile 'Zeile in Variable einlesen.
n = n + 1
If n = 1 Then                             ' in Zeile 1 nichts ändern
ElseIf n = 2 Then
Textzeile = "Konzentration " & strNum ' in Zeile 2 Boxwert einfügen
ElseIf InStr(1, Textzeile, "#") > 0 Then
Textzeile = "Name   " & Textzeile      ' "Name" einfügen
Else
Textzeile = "       " & Textzeile      ' Leerzeichen einfügen
End If
Print #numOut, Textzeile 'Ausgabe in Datei.
Loop
Close #numIN
End If
Dateiname = Dir
Loop
Close #numOut
End Sub

Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort

Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige