Hallo möchte Daten aus einer Textdatei lesen diese enthält Zeilenumbrüche wie entferne ich diese am einfachsten?
+Beispiels Inhalt
Gewünschtes ergebnis
Hallo möchte Daten aus einer Textdatei lesen diese enthält Zeilenumbrüche wie entferne ich diese am einfachsten?
+Beispiels Inhalt
Gewünschtes ergebnis
Du möchtest das @CRLF bzw. @LF am Ende jeder Zeile entfernen. Dazu kannst du StringReplace verwenden.
oder StringStripWS
oder StringStripWS
Da hab ich auch schon dran gedacht, aber es gibt glaube ich keinen Modus um nur Zeilenumbrüche zu löschen.
Versuche es mal damit :
$sStr = "Zeile 1 beliebiger Text" & @CRLF & "Zeile 2 öäüÄÖÜ" & @LF & "Zeile 3" & @CR & "Zeile 4"
ConsoleWrite("> Vorher : " & @CRLF & $sStr & @CRLF)
$sNewStr = StringRegExpReplace($sStr, "\r\n|\r|\n", " ")
ConsoleWrite("> Nachher : " & @CRLF & $sNewStr & @CRLF)
Gruß Musashi
$sNewStr = StringRegExpReplace($sStr, "\r\n|\r|\n", " ")
Besser so:
$sNewStr = StringRegExpReplace($sStr, "\R", " ") ; Zeilenumbrüche durch Leerzeichen ersetzen
Weder noch...6, setzen!
Guckt eigentlich jemand mal im 1. Post das Beispiel und das gewünschte Ergebnis an? Und lässt anhand dessen seinen Code durchlaufen? Da sind definitiv LEERE ZEILEN drin, also mehrfach auftretende CRLF...
Und die sollen mit EINEM (!) Leerzeichen ersetzt werden. Und das mit dem amp...."übersehen"? Alle?
Ich hab für das neue Jahr an meine Mitarbeite die Direktive rausgegeben "Wir müssen besser werden, und NICHT schneller!"
Ich hoffe, dass sich das einige zu Herzen nehmen, ein falsches Ergebnis bleibt falsch, egal in welchem kurzen Zeitraum es ermittelt wurde, und nicht selbst geprüfte falsche Ergebnisse sind doppelt ärgerlich, da damit wieder andere gezwungen sind, sich mit dem Thema zu beschäftigen.
yoschga, das sollte funktionieren,
$sSource = "??The One and Only??" & @CRLF & @CRLF & "FREICLUBEMPFEHLUNG 2013 & 2014" & @CRLF & @CRLF & "Mein Motto"
ConsoleWrite("> Vorher : " & @CRLF & $sSource & @CRLF)
$sNewStr = StringRegExpReplace($sSource, "\R+", " ")
$sNewStr = StringReplace($sNewStr, "&", "@@@WCF_LITERAL_AMP@@@") ;wenn du lieber das &-Zeichen haben möchtest, hier ist der Platz dafür
ConsoleWrite("> Nachher : " & @CRLF & $sNewStr & @CRLF)
wenn du weitere HTML-Tags bzw. Sonderzeichen wie das "&" in & ersetzen willst/musst, geht das über eine Funktion so
Global $oMyError = ObjEvent("AutoIt.Error", "COMError")
;InetGet("http://blablub.com/?s=", @ScriptDir & "\html.html") ;hier ggf deine Website eintragen
;$sSource = FileRead(@ScriptDir & "\html.html")
$sSource = "??The One and Only??" & @CRLF & @CRLF & "FREICLUBEMPFEHLUNG 2013 & 2014" & @CRLF & @CRLF & "Mein Motto"
$sPlainText = _HTML_StripTags($sSource)
ConsoleWrite($sPlainText & @CRLF)
Func _HTML_StripTags($sHTML)
If Not StringStripWS($sHTML, 8) Then Return SetError(1, 0, "")
Local $oHTML = ObjCreate("HTMLFILE")
If @error Then Return SetError(2, 0, "")
$oHTML.Open()
$oHTML.Write($sHTML)
If Not $oHTML.Body.InnerText Then Return SetError(3, 0, "")
Return SetError(0, 0, $oHTML.Body.InnerText)
EndFunc ;==>_HTML_StripTags
Func COMError()
MsgBox(16, "AutoItCOM Test", "We intercepted a COM Error !" & @CRLF & @CRLF & _
"err.description is: " & @TAB & $oMyError.description & @CRLF & _
"err.windescription:" & @TAB & $oMyError.windescription & @CRLF & _
"err.number is: " & @TAB & Hex($oMyError.number, 8) & @CRLF & _
"err.lastdllerror is: " & @TAB & $oMyError.lastdllerror & @CRLF & _
"err.scriptline is: " & @TAB & $oMyError.scriptline & @CRLF & _
"err.source is: " & @TAB & $oMyError.source & @CRLF & _
"err.helpfile is: " & @TAB & $oMyError.helpfile & @CRLF & _
"err.helpcontext is: " & @TAB & $oMyError.helpcontext _
)
SetError(1)
EndFunc ;==>COMError
Alles anzeigen
Danke für die ausführliche Antwort und auch danke an die anderen für ihre mühen kann geschlossen werden.