Hallo,
ich suche ein Programm, das aus mehreren *.txt Dateien eine Zeile die immer mit dem gleichen Inhalt anfängt
die komplette Zeile in eine externe *.txt kopiert.
Also:
Name : Mustermann (das ist jetzt nur ein Beipiel)
Dann soll die ganze Zeile in ein anderes Dokument gespeichert erden, jedoch kann es sein, das in einer Datei mehrere Dieser Zeilen stehen
Grüße PU
Datei auslesen, wenn String vorhanden ist koplette Zeile in TXT speichern
-
- [ neu ]
-
ProblemUser -
3. November 2010 um 21:20 -
Erledigt
-
-
Also das funktioniert auf jedenfall.
[autoit]
erst musst du die Datei auslesen das funktioniert mitFileRead
[/autoit]
[autoit]
Dann gibt es einige Möglichkeiten.
Einmal mit
[/autoit]
StringRegExp
;oder
StringInStrMfG
Der_Doc -
"ohne GUI"
[autoit]#include <File.au3>
[/autoit] [autoit][/autoit] [autoit]
#include <array.au3>
Global $aLines
Global $aFiles[2] = [@ScriptDir & "\test.txt", @ScriptDir & "\test.ini"]$sSearch = "Hallo"
[/autoit] [autoit][/autoit] [autoit]
$output = @ScriptDir & "\output.txt"For $i = 0 To UBound($aFiles) - 1
[/autoit]
_FileReadToArray($aFiles[$i], $aLines)
_ArrayDisplay($aLines)
If IsArray($aLines) Then
For $j = 1 To $aLines[0] Step 1
If StringLeft($aLines[$j], StringLen($sSearch)) = $sSearch Then
FileWriteLine($output, $aLines[$j])
EndIf
Next
EndIf
Next -
Zu Der_Doc:
Das weiß ich selbst wie es geht, ahb aber aktuell wenig Zeit....
Zum Vorposter, danke das wär schonmal ein Anfang, jedoch sind das rund 100 Dateien mit verchiedenen Namen!
Grüße PU -
Spoiler anzeigen
[autoit]
[/autoit] [autoit][/autoit] [autoit]
#include <File.au3>
#include <array.au3>
Global $aLines$folder = ''
[/autoit]
$sSearch = ''
$output = ''
$aFiles = _FileListToArray($folder, "*", 1)
If $sSearch = '' Then
MsgBox(0, "", "Suchbegriff fehlt!")
Else
If IsArray($aFiles) Then
For $i = 1 To $aFiles[0]
_FileReadToArray($folder & "\" & $aFiles[$i], $aLines)
If IsArray($aLines) Then
For $j = 1 To $aLines[0] Step 1
If StringLeft($aLines[$j], StringLen($sSearch)) = $sSearch Then
FileWriteLine($output, $aLines[$j])
EndIf
Next
EndIf
Next
Else
MsgBox(0, "Abbruch", "Keine Dateien gefunden")
EndIf
EndIf