Hi Leute
Wie kann man mehrere Txt. Datei öffnen
Immer die Ersten und Letzten 10 Zeilen löschen.
Speichern
Nächste Txt. Datei öffnen
alles wiederholen usw
Es sind ca 10 txt. Dateien
lg
Vitaq
Hi Leute
Wie kann man mehrere Txt. Datei öffnen
Immer die Ersten und Letzten 10 Zeilen löschen.
Speichern
Nächste Txt. Datei öffnen
alles wiederholen usw
Es sind ca 10 txt. Dateien
lg
Vitaq
Mit ner Schleife würde ich sagen?
irgendwelche Ansätze schon vorhanden?
Hi
habe mir folgendes Überlegt
_FileReadToArray
_ArrayDelete
_FileWriteFromArray
Aber wie bekomme ich die letzten Zeilen gelöscht und dann noch die Schleife für Wiederholen?
Es ist ziemlich unsinnig den String aus deinem GUI nur auf die Platte zu schreiben um ihn gleich wieder auszulesen.
Mit Hilfe der Funktion StringSplit() kannst du den String direkt in ein Array verwandeln. Außerdem solltest du dir die Parameter von _ArrayDelete() nochmal genauer ansehen.
#include <Array.au3>
; Erstelle zu testzwecken eine 10-zeilige Eingabe
Local $sTest = "1te Zeile lalala"
For $i = 2 To 9
$sTest &= @CRLF & $i & "te Zeile lalala"
Next
; Beispiel:
Local $aZeilen = StringSplit($sTest, @LF, 2) ; String in Zeilen aufteilen
_ArrayDisplay($aZeilen)
; lösche die ersten und die letzten 3 zeilen
_ArrayDelete($aZeilen, "0-2;" & UBound($aZeilen) - 3 & "-" & UBound($aZeilen) - 1)
_ArrayDisplay($aZeilen)
Alles anzeigen
Hallo @Christoph54
Das mit der For-Schleife hast du ja schön gelöst, da man sich so ein Trimmen erspart. Das StringSplit mit dem @LF ist weniger fein, denn wer will schon ein verwaistes @CR haben?
Hm, "1 + 2 To 9 = 10" ?
So hätte ich es gemacht... da du dir so 2x UBound() ersparst.
#include <Array.au3>
; Erstelle zu testzwecken eine 10-zeilige Eingabe
Local $sTest = "1te Zeile lalala"
For $i = 2 To 10
$sTest &= @CRLF & $i & "te Zeile lalala"
Next
; Beispiel:
Local $aZeilen = StringSplit($sTest, @CRLF, 1) ; String in Zeilen aufteilen
_ArrayDisplay($aZeilen)
; lösche die ersten und die letzten 3 zeilen
_ArrayDelete($aZeilen, "0-3;" & $aZeilen[0] - 2 & "-" & $aZeilen[0])
_ArrayDisplay($aZeilen)
Alles anzeigen
Hi Leute ich hab das jetzt so gelöst würde das für 10 Txt Dateien auch 10mal so reinschreiben vielleicht kann man das aber auch "einfacher" Lösen?
Vielleicht hat ja jemand eine Idee
Global $array
_FileReadToArray("C:\Users\Silvi\Desktop\A\test.txt", $array)
Global $array2
_FileReadToArray("C:\Users\Silvi\Desktop\A\zwei.txt", $array2)
; lösche die ersten und die letzten 3 zeilen
_ArrayDelete($array, "0-9;" & $array[0] - 9 & "-" & $array[0])
; lösche die ersten und die letzten 3 zeilen
_ArrayDelete($array2, "0-9;" & $array2[0] - 9 & "-" & $array2[0])
Local $sFile = @ScriptDir & "\Test1.txt"
Local $sTest123 = @ScriptDir & "\zwei2.txt"
_FileWriteFromArray($sFile, $array,1 )
_FileWriteFromArray($sTest123, $array2,1 )
Arrays hast Du doch schon verstanden!
Wenn Du jetzt noch ein Array für die Dateien einsetzt und das Ganze in einer For-Schleife abarbeitest, dann brauchst Du das nicht 10mal zu schreiben.
Eine For-Schleife bearbeitet dann alle Dateien. Dann kannst Du auch 1000 oder 10000 Dateien damit bearbeiten.
Versuch' Dich mal daran. Das ist ein gutes Anfänger-Projekt.
Hi Oscar
wie Meinst du das
Wenn Du jetzt noch ein Array für die Dateien einsetzt .....
ich mach doch schon _FileWriteFromArray zum Abschluss
Kannst du mir das vielleicht bitte erklären
Hier mal ein Anfang als Script:
Global $aSourceFiles[2] = ["C:\Users\Silvi\Desktop\A\test.txt", "C:\Users\Silvi\Desktop\A\zwei.txt"]
Global $aTargetFiles[2] = ["C:\Users\Silvi\Desktop\A\test2.txt", "C:\Users\Silvi\Desktop\A\zwei2.txt"]
For $i = 0 To UBound($aSourceFiles) - 1
; ... Bearbeitung
_FileWriteFromArray($aTargetFiles[$i], $array, 1)
Next
Hier mal ein Anfang als Script:
Genau so sollte das ein Anfänger machen...
Dieser Anfänger muss allerdings für jede Änderung an den "TargetFiles" den Quellcode ändern. Weniger schön...
Wesentlich besser und komfortabler zu bearbeiten wird das Programm, wenn die "TargetFiles" untereinander in einer von jedem User und auch mit jedem beliebigen Editor bearbeitbaren Textdatei stehen. Diese einfach per (Anfänger nehmen dafür) FileReadToArray() einlesen.
Dieser Anfänger muss allerdings für jede Änderung an den "TargetFiles" den Quellcode ändern. Weniger schön...
Das stimmt zwar, aber ich denke, um erstmal zu verstehen, wie man das Ganze per Array und For-Schleife bearbeiten kann, ist das direkt im Quelltext leichter ersichtlich.
Wenn man das einmal verstanden hat, kann man dazu übergehen, das Ganze leichter konfigurierbar zu machen (sprich: Auslagerung in eine Ini-/Textdatei).