hi,
danke erstmal, ich teste jetzt erstmal
Mfg Thomas
hi,
danke erstmal, ich teste jetzt erstmal
Mfg Thomas
hi
Bernd
ich habe es getestet. Er kommt aber bei der Zählung irgendwie durcheinander. Das erste Segment zeigt von 0..103 an(ist ok) dann springt er zurück auf auf Zeile 52 und so weiter.
Habe mal meine out Datei angehängt. Vielleicht hast du ja noch ne Lösung dafür.
#include <date.au3>
#include <misc.au3>
#include <inet.au3>
#include <file.au3>
#include <array.au3>
$szFileName = "R:\" & @YEAR & "\Auslagerung\Log\" & StringFormat("%02d", @MON - 1) &"out.txt"
[/autoit] [autoit][/autoit] [autoit]Dim $aszParam[20]
$cLines = _FileCountLines($szFileName)
If $cLines > 0 Then
$cReadLines = Round($cLines/20)
; erst mal 19 Teile lesen
For $index = 0 To 18
$aszParam[$index] = StringLeft(FileReadLine($szFileName,$index*20+1),10) & ".." & StringLeft(FileReadLine($szFileName,$index*20+$cReadLines),10)
Next
; und jetzt den letzten Teil
$aszParam[19] = StringLeft(FileReadLine($szFileName,19*20+1),10) & ".." & StringLeft(FileReadLine($szFileName,$cLines),10)
$szOutput = ""
For $index = 0 To 19
MsgBox(0, "", $aszParam[$index])
$szOutput &= $index+1 & ". Teil: " & $aszParam[$index] & @CRLF
Next
;~ MsgBox(0, "", $szOutput)
EndIf
mfg Thomas
Hallo,
ich habe eben noch eine Fehlerkorrektur am Script vorgenommen (s.o.), dass sollte das Problem lösen.
Edit:
ich habe mal eine Version geschrieben die etwas flexibler ist, bei $nTeile kannst Du eingeben in wieviele Teile die Datei zerlegt werden soll:
[autoit]#include <File.au3>
[/autoit][autoit][/autoit][autoit]Const $nTeile = 20
[/autoit][autoit][/autoit][autoit]$szFilename = "out.txt"
[/autoit][autoit][/autoit][autoit]Dim $aszParam[$nTeile]
[/autoit][autoit][/autoit][autoit]$cLines = _FileCountLines($szFileName)
[/autoit][autoit][/autoit][autoit]If $cLines > 0 Then
[/autoit][autoit][/autoit][autoit]$cReadLines = Round($cLines/$nTeile)
[/autoit][autoit][/autoit][autoit]; erst mal 19 Teile lesen
For $index = 0 To $nTeile - 2
$aszParam[$index] = FileReadLine($szFileName,$index*$cReadLines+1) & ".." & FileReadLine($szFileName,($index+1)*$cReadLines)
Next
; und jetzt den letzten Teil
$aszParam[$nTeile-1] = FileReadLine($szFileName,($nTeile-1)*$cReadLines+1) & ".." & FileReadLine($szFileName,$cLines)
$szOutput = ""
For $index = 0 To $nTeile-1
$szOutput &= $index+1 & ". Teil: " & $aszParam[$index] & @CRLF
Next
MsgBox(0, "", $szOutput)
EndIf
hi,
danke für die tolle Hilfe das funzt.
mfg Thomas
Mahlzeit,
das ist ja eine super Funktion. Idealerweise wäre es top wenn die Teilung anhand der Zeileanzeil der Datei erfolgen könnte.
1000 Zeilen 10
2000 Zeilen 20
2500 Zeilen 25 usw. Ist das irgendwie möglich?
Taucher
Das könnte man z.B. so machen, mit $nMaxZeilen gibt man an wieviel Zeilen in jedem Teil stehen sollen:
[autoit]#include <File.au3>
[/autoit][autoit][/autoit][autoit]Const $nMaxZeilen = 100 ; Maximale Anzahl Zeilen je Teil
[/autoit][autoit][/autoit][autoit]$szFilename = "out.txt"
[/autoit][autoit][/autoit][autoit]$cLines = _FileCountLines($szFileName)
[/autoit][autoit][/autoit][autoit]If $cLines > 0 Then
$nTeile = Round($cLines / 100) ; Anzahl der Teile berechnen
Dim $aszParam[$nTeile]
; erst mal Anzahl Teile - 1 lesen
For $index = 0 To $nTeile - 2
$aszParam[$index] = FileReadLine($szFileName,$index*$nMaxZeilen+1) & ".." & FileReadLine($szFileName,($index+1)*$nMaxZeilen)
Next
; und jetzt den letzten Teil lesen
$aszParam[$nTeile-1] = FileReadLine($szFileName,($nTeile-1)*$nMaxZeilen+1) & ".." & FileReadLine($szFileName,$cLines)
$szOutput = ""
For $index = 0 To $nTeile-1
$szOutput &= $index+1 & ". Teil: " & $aszParam[$index] & @CRLF
Next
MsgBox(0, "", $szOutput)
EndIf