Post by Raffel » 19 Oct 2017, 04:11
Hallo,
So alles geschafft. Vielen,vielen Dank nochmal.
Wenn ihr mal viel Zeit habt, oder lange Weile würde ich mich über eine Erklärung warum dieser
Code das macht was er soll
Dieses "sol" oder "eol" was hat das zu bedeuten? Wills nur gerne mal verstehen.
If InStr(A_LoopReadLine,"Ventil zu") {
sol := "{"
eol := "}`n"
line .= A_LoopReadLine "`n"
Continue
}
If InStr(A_LoopReadLine,"Ventil auf") {
sol := ""
eol := "`n"
line .= A_LoopReadLine "`n"
Continue
}
Else
line .= sol . A_LoopReadLine . eol
Das Script sieht jetzt so aus. Könnte man bestimmt noch verbessern, aber Hauptsache es geht
Code: Select all
f2=%a_scriptdir%\log-neu.txt
aa1=%a_desktop% ;- search file from here
FileSelectFile, filename,1,%aa1%,Datei auswählen,*.log
if filename =
return
fileread,aa,%filename%
StringReplace, aa, aa, ----------------------------------------------------- ,, All ;löscht unnötige Einträge
StringReplace, aa, aa, Ventil auf, $GPGGA`,000000.000`,5026.5520`,N`,01235.4709`,E`,1`,07`,0.9`,933.3`,M`,46.9`,Ventil auf, All ; setzt Event wenn auf
StringReplace, aa, aa, Ventil zu, $GPGGA`,000001.000`,5026.5520`,N`,01235.4709`,E`,1`,07`,0.9`,933.3`,M`,46.9`,Ventil zu, All ;setzt Event wenn zu
if aa<>
{
ifnotexist,%f2%
fileappend,%aa%,%f2%
aa=
run, "D:\Programme\Gis_GPS\GPS-Konverter\GPS-Format-Konverter\GPSFormatKonverter.exe" "%f2%" ;starte GPS Formatkonverter
Sleep, 200
WinWait, GPS-Format-Konverter V1.24 ALPHA 8,
IfWinNotActive, GPS-Format-Konverter V1.24 ALPHA 8, , WinActivate, GPS-Format-Konverter V1.24 ALPHA 8,
WinWaitActive, GPS-Format-Konverter V1.24 ALPHA 8,
Send, {CTRLDOWN}s{CTRLUP}{CTRLUP}{ENTER} ;Speichert Datei (Garmin)
WinWait, Zieldatei speichern,
IfWinNotActive, Zieldatei speichern, , WinActivate, Zieldatei speichern,
WinWaitActive, Zieldatei speichern,
Sleep, 100
Send, {Enter}
Sleep, 200
MouseClick, left, 27, 35
Sleep, 100
MouseClick, left, 71, 230 ;schliesst Formatconverter
Sleep, 500
FileDelete, C:\Users\User\Desktop\log-neu.txt
fileread, aa, C:\Users\User\Desktop\log-neu.grm
string := "(.*00:00:00.*)"
aa := RegExReplace(aa, string, "Ventil auf") ;ersetzt ganze Zeile (Uhrzeit 0000) mit Ventil auf
Sleep, 200
string := "(.*00:00:01.*)"
aa := RegExReplace(aa, string, "Ventil zu") ;ersetzt ganze Zeile (Uhrzeit(0001) mit Ventil auf
StringReplace, aa, aa, T%A_Space%%A_Space%,, All ;löscht T am Anfang von Zeile
StringReplace, aa, aa, H%A_Space%%A_Space%,, All ;löscht H am Anfang von Zeile
StringReplace, aa, aa, `;track,, All ;löscht track in Zeile
StringReplace, aa, aa, Al, Alt, All ;macht aus Al Alt
Sleep, 200
string := "(.*LATITUDE.*)" ;macht aus Kopfzeile Ventil zu
aa := RegExReplace(aa, string, "Ventil zu")
if aa<>
{
filedelete, C:\Users\User\Desktop\log-neu.grm
fileappend,%aa%, C:\Users\User\Desktop\log-neu.grm
aa=
}
Sleep, 100
RemoveLines(filename, startingLine, numOfLines){ ;löscht die oberen unnötigen Zeilen (13)
Loop, Read, C:\Users\User\Desktop\log-neu.grm
if ( A_Index < StartingLine )
|| ( A_Index >= StartingLine + numOfLines )
ret .= "`r`n" . A_LoopReadLine
FileDelete, % Filename
FileAppend, % SubStr(ret, 3), % Filename
}
SetWorkingDir, % A_ScriptDir
RemoveLines("C:\Users\User\Desktop\log.txt", 1, 13)
Sleep, 200
FileDelete, C:\Users\User\Desktop\log-neu.grm
}
Loop, Read, C:\Users\User\Desktop\log.txt, log1.txt
{
If InStr(A_LoopReadLine,"Ventil zu") { ;setzt Klammern{} in jede Zeile zwischen Ventil zu und auf
sol := "{"
eol := "}`n"
line .= A_LoopReadLine "`n"
Continue
}
If InStr(A_LoopReadLine,"Ventil auf") { ;setzt Klammern () in jede Zeile zwischen Ventil auf und zu
sol := "("
eol := ")`n"
line .= A_LoopReadLine "`n"
Continue
}
Else
line .= sol . A_LoopReadLine . eol
}
;MsgBox % line
{
FileDelete, C:\Users\User\Desktop\log.txt
FileAppend, %line% `n, log1.txt ;speichert den Loop mit Klammern
}
fileread, aa, C:\Users\User\Desktop\log1.txt
StringReplace, aa, aa, `{,, All ;löscht voerderste Klammer {
StringReplace, aa, aa, `}, %A_Space%off, All ;ersetzt hintere Klammer } mit off
Sleep,200
StringReplace, aa, aa, `(,, All ;löscht vorderste Klammer (
StringReplace, aa, aa, `), %A_Space%on, All ;erstzt nintere Klammer ) mit on
string := "(.*Ventil.*)" ;löscht alle Einträge mit Ventil
aa := RegExReplace(aa, string, "")
fileappend,%aa%, C:\Users\User\Desktop\log.txt
FileDelete, C:\Users\User\Desktop\log1.txt
run, "D:\Programme\Office\Textpad\Textpad.exe" "C:\Users\User\Desktop\log.txt", max
WinWait, TextPad - C:\Users\User\Desktop\log.txt,
IfWinNotActive, TextPad - C:\Users\User\Desktop\log.txt, , WinActivate, TextPad - C:\Users\User\Desktop\log.txt,
WinWaitActive, TextPad - C:\Users\User\Desktop\log.txt,
Send, {F12} ;Datei unter neuen Namen,Ordner speichern
Sleep, 200
FileRecycle, C:\Users\User\Desktop\log.txt ;schiebt Datei in Papierkorb
return
Hallo,
So alles geschafft. Vielen,vielen Dank nochmal.
Wenn ihr mal viel Zeit habt, oder lange Weile würde ich mich über eine Erklärung warum dieser
Code das macht was er soll :!: Dieses "sol" oder "eol" was hat das zu bedeuten? Wills nur gerne mal verstehen.
If InStr(A_LoopReadLine,"Ventil zu") {
sol := "{"
eol := "}`n"
line .= A_LoopReadLine "`n"
Continue
}
If InStr(A_LoopReadLine,"Ventil auf") {
sol := ""
eol := "`n"
line .= A_LoopReadLine "`n"
Continue
}
Else
line .= sol . A_LoopReadLine . eol
Das Script sieht jetzt so aus. Könnte man bestimmt noch verbessern, aber Hauptsache es geht
[code=autohotkey file=Untitled.ahk]f2=%a_scriptdir%\log-neu.txt
aa1=%a_desktop% ;- search file from here
FileSelectFile, filename,1,%aa1%,Datei auswählen,*.log
if filename =
return
fileread,aa,%filename%
StringReplace, aa, aa, ----------------------------------------------------- ,, All ;löscht unnötige Einträge
StringReplace, aa, aa, Ventil auf, $GPGGA`,000000.000`,5026.5520`,N`,01235.4709`,E`,1`,07`,0.9`,933.3`,M`,46.9`,Ventil auf, All ; setzt Event wenn auf
StringReplace, aa, aa, Ventil zu, $GPGGA`,000001.000`,5026.5520`,N`,01235.4709`,E`,1`,07`,0.9`,933.3`,M`,46.9`,Ventil zu, All ;setzt Event wenn zu
if aa<>
{
ifnotexist,%f2%
fileappend,%aa%,%f2%
aa=
run, "D:\Programme\Gis_GPS\GPS-Konverter\GPS-Format-Konverter\GPSFormatKonverter.exe" "%f2%" ;starte GPS Formatkonverter
Sleep, 200
WinWait, GPS-Format-Konverter V1.24 ALPHA 8,
IfWinNotActive, GPS-Format-Konverter V1.24 ALPHA 8, , WinActivate, GPS-Format-Konverter V1.24 ALPHA 8,
WinWaitActive, GPS-Format-Konverter V1.24 ALPHA 8,
Send, {CTRLDOWN}s{CTRLUP}{CTRLUP}{ENTER} ;Speichert Datei (Garmin)
WinWait, Zieldatei speichern,
IfWinNotActive, Zieldatei speichern, , WinActivate, Zieldatei speichern,
WinWaitActive, Zieldatei speichern,
Sleep, 100
Send, {Enter}
Sleep, 200
MouseClick, left, 27, 35
Sleep, 100
MouseClick, left, 71, 230 ;schliesst Formatconverter
Sleep, 500
FileDelete, C:\Users\User\Desktop\log-neu.txt
fileread, aa, C:\Users\User\Desktop\log-neu.grm
string := "(.*00:00:00.*)"
aa := RegExReplace(aa, string, "Ventil auf") ;ersetzt ganze Zeile (Uhrzeit 0000) mit Ventil auf
Sleep, 200
string := "(.*00:00:01.*)"
aa := RegExReplace(aa, string, "Ventil zu") ;ersetzt ganze Zeile (Uhrzeit(0001) mit Ventil auf
StringReplace, aa, aa, T%A_Space%%A_Space%,, All ;löscht T am Anfang von Zeile
StringReplace, aa, aa, H%A_Space%%A_Space%,, All ;löscht H am Anfang von Zeile
StringReplace, aa, aa, `;track,, All ;löscht track in Zeile
StringReplace, aa, aa, Al, Alt, All ;macht aus Al Alt
Sleep, 200
string := "(.*LATITUDE.*)" ;macht aus Kopfzeile Ventil zu
aa := RegExReplace(aa, string, "Ventil zu")
if aa<>
{
filedelete, C:\Users\User\Desktop\log-neu.grm
fileappend,%aa%, C:\Users\User\Desktop\log-neu.grm
aa=
}
Sleep, 100
RemoveLines(filename, startingLine, numOfLines){ ;löscht die oberen unnötigen Zeilen (13)
Loop, Read, C:\Users\User\Desktop\log-neu.grm
if ( A_Index < StartingLine )
|| ( A_Index >= StartingLine + numOfLines )
ret .= "`r`n" . A_LoopReadLine
FileDelete, % Filename
FileAppend, % SubStr(ret, 3), % Filename
}
SetWorkingDir, % A_ScriptDir
RemoveLines("C:\Users\User\Desktop\log.txt", 1, 13)
Sleep, 200
FileDelete, C:\Users\User\Desktop\log-neu.grm
}
Loop, Read, C:\Users\User\Desktop\log.txt, log1.txt
{
If InStr(A_LoopReadLine,"Ventil zu") { ;setzt Klammern{} in jede Zeile zwischen Ventil zu und auf
sol := "{"
eol := "}`n"
line .= A_LoopReadLine "`n"
Continue
}
If InStr(A_LoopReadLine,"Ventil auf") { ;setzt Klammern () in jede Zeile zwischen Ventil auf und zu
sol := "("
eol := ")`n"
line .= A_LoopReadLine "`n"
Continue
}
Else
line .= sol . A_LoopReadLine . eol
}
;MsgBox % line
{
FileDelete, C:\Users\User\Desktop\log.txt
FileAppend, %line% `n, log1.txt ;speichert den Loop mit Klammern
}
fileread, aa, C:\Users\User\Desktop\log1.txt
StringReplace, aa, aa, `{,, All ;löscht voerderste Klammer {
StringReplace, aa, aa, `}, %A_Space%off, All ;ersetzt hintere Klammer } mit off
Sleep,200
StringReplace, aa, aa, `(,, All ;löscht vorderste Klammer (
StringReplace, aa, aa, `), %A_Space%on, All ;erstzt nintere Klammer ) mit on
string := "(.*Ventil.*)" ;löscht alle Einträge mit Ventil
aa := RegExReplace(aa, string, "")
fileappend,%aa%, C:\Users\User\Desktop\log.txt
FileDelete, C:\Users\User\Desktop\log1.txt
run, "D:\Programme\Office\Textpad\Textpad.exe" "C:\Users\User\Desktop\log.txt", max
WinWait, TextPad - C:\Users\User\Desktop\log.txt,
IfWinNotActive, TextPad - C:\Users\User\Desktop\log.txt, , WinActivate, TextPad - C:\Users\User\Desktop\log.txt,
WinWaitActive, TextPad - C:\Users\User\Desktop\log.txt,
Send, {F12} ;Datei unter neuen Namen,Ordner speichern
Sleep, 200
FileRecycle, C:\Users\User\Desktop\log.txt ;schiebt Datei in Papierkorb
return[/code]