Hallo,
aktuell habe ich einen Script, der in Schritt A div. Daten auswertet und Zeilenweise in eine .csv speichert, in Schritt B diese .csv ausließt, sortiert, wieder speichert und in Schritt C die Daten Zeilenweise ausließt und auswertet/zusammenfasst.
Gibt es eine schöne Möglichkeit, statt einer externen .csv die daten in einer Internen Variable zu Speichern und diese Zeilenweise abzuarbeiten? Mir würde nur einfallen, Die variable mit StrSplit bei `n zu trennen und dann immer den ersten Wert zu nehmen und den danach zu löschen. Wenn man dann wiever von vorn anfängt sollte ja die Zweite Zeile an erster Stelle stehen. Gibt es eine schönere Möglichkeit um Variablen "Zeilenweise" zu verarbeiten, ähnlich wie "LoopReadLine"?
Vielen dank schonmal!
Variable Zeilenweise auslesen
Moderator: jNizM
Re: Variable Zeilenweise auslesen
Hallo,
ich bin jetzt soweit, dass ich die Variable dann mit Loop, Parse, text , `n, `n in einzelne Zeilen aufwandel, die ich dann in dem Loop verarbeite. Leider funktioniert das mit dem Entfernen vom Zeilenumbruch nicht. Woran liegt es?
Gesamter Codeausschnitt
ich bin jetzt soweit, dass ich die Variable dann mit Loop, Parse, text , `n, `n in einzelne Zeilen aufwandel, die ich dann in dem Loop verarbeite. Leider funktioniert das mit dem Entfernen vom Zeilenumbruch nicht. Woran liegt es?
Gesamter Codeausschnitt
Code: Select all
Loop, Parse, text , `n, `n
{
textzeile := A_LoopField
MsgBox, %textzeile%ok
Re: Variable Zeilenweise auslesen
Zeilenumbrüche können aus `n bestehen.
Manchmal bestehen sie aber auch aus `r`n oder `r.
Manchmal bestehen sie aber auch aus `r`n oder `r.
Code: Select all
Loop, Parse, text , `n, `r
MsgBox, %A_LoopField%ok
Recommends AHK Studio
Re: Variable Zeilenweise auslesen
funktioniert `r immer oder muss ich bei jedem mal durchprobieren?
Was ist der grund für die verschiedenen Zeilenumbrüche?
Was ist der grund für die verschiedenen Zeilenumbrüche?
Re: Variable Zeilenweise auslesen
Moin,
es gibt 3 'Standards' für den Zeilenumbruch:bist Du unter Windows normalerweise auf der sicheren Seite, selbst wenn die Datei nur `n allein für den Zeilenumbruch nutzt.
es gibt 3 'Standards' für den Zeilenumbruch:
- Windows:
`r`n -> CRLF - Mac:
`r -> CR - Unix/Linux:
`n-> LF
Code: Select all
Loop, Parse, VariableMitDateiinhalt, `n, `r
Re: Variable Zeilenweise auslesen
Es gibt übrigens eine weitere Alternative, die Funktion StrSplit(). Damit kannst Du den Dateiinhalt in ein Zeilenarray überführen:
Das Array kannst Du dann in einer For-Schleife abarbeiten:
Alternativ kannst Du über die Zeilennummer auch direkt auf eine bestimmte Zeile zugreifen:
Nachteil: Bei großen Dateien verbraucht das zumindest kurzfristig recht viel zusätzlichen Speicherplatz.
Code: Select all
ZeilenArray := StrSplit(VariableMitDateiinhalt, "`n", "`r")
Code: Select all
For ZeilenNummer, ZeilenInhalt In ZeilenArray {
MsgBox, 0, Zeile %ZeilenNummer%, %ZeilenInhalt%
}
Code: Select all
ZeilenInhalt := ZeilenArray[3] ; stellt den Inhalt der dritten Zeile in die Variable ZeilenInhalt.
Re: Variable Zeilenweise auslesen
Code: Select all
Loop, Parse, text , `r`n
{
; textzeile := A_LoopField ; < die variable textzeile mit A_LoopField ständig überschreiben
textzeile .= A_LoopField ; < an die variable textzeile den content von A_LoopField anhängen
MsgBox, % textzeile
}
Stört sich keiner dran, das er den zeilenumbruch/new line bei seinem Loop, Parse explizit "ommited"?
Re: Variable Zeilenweise auslesen
Nein der Zeilenumbruch geht so oder so flöten wenn du ihn als separator verwendest.
Und wenn du `r`n als Zeilenumbruchszeichen wählst funktioniert der Loop nicht für den in AHK viel häufigeren Fall, dass `n als Zeilenumbruchszeichen verwendet wird.
Und wenn du `r`n als Zeilenumbruchszeichen wählst funktioniert der Loop nicht für den in AHK viel häufigeren Fall, dass `n als Zeilenumbruchszeichen verwendet wird.
Recommends AHK Studio
- divanebaba
- Posts: 804
- Joined: 20 Dec 2016, 03:53
- Location: Diaspora
Re: Variable Zeilenweise auslesen
Folllast wrote:Code: Select all
Loop, Parse, text , `n, `n
Jetzt wo Du es sagst. Ich dachte fälschlicherweise an ein StringReplace, bei dem er einen Zeilenumbruch mit einem Zeilenumbruch austauscht. Schlimmer noch: "omitted"BoBo wrote:... Stört sich keiner dran, das er den zeilenumbruch/new line bei seinem Loop, Parse explizit "ommited"?
Re: Variable Zeilenweise auslesen
divanebaba wrote:Folllast wrote:Code: Select all
Loop, Parse, text , `n, `n
Jetzt wo Du es sagst. Ich dachte fälschlicherweise an ein StringReplace, bei dem er einen Zeilenumbruch mit einem Zeilenumbruch austauscht. Schlimmer noch: "omitted"BoBo wrote:... Stört sich keiner dran, das er den zeilenumbruch/new line bei seinem Loop, Parse explizit "ommited"?
was heisst das für mich? bin ich ein schlechter Mensch? und warum?
Re: Variable Zeilenweise auslesen
Wenn Du den Inhalt einer Variablen per Loop, Parse, StringSplit oder StrSplit in Einzelteile zerlegst, werden die als 'Trennzeichen(folge)" festgelegten Zeichen nicht in die 'Einzelteile' übernommen.
Wenn z.B. das Trennzeichen ein Zeilenumbruch ist, bedeutet das, dass Du den Zeilenumbruch in der Regel wieder anfügen musst, wenn Du das 'Einzelteil' wieder in eine Datei schreiben willst.
Wenn z.B. das Trennzeichen ein Zeilenumbruch ist, bedeutet das, dass Du den Zeilenumbruch in der Regel wieder anfügen musst, wenn Du das 'Einzelteil' wieder in eine Datei schreiben willst.
Who is online
Users browsing this forum: gero and 33 guests