Hallo Community,
ich habe anhängenden einfachen Code und verstehe nicht, warum die Msgbox nicht die Meldung "Ist gleich 99" ausgibt. Die angegebene Datei besteht nur aus einer Zeile und in der steht 99 drin.
Vielen Dank schon mal im Voraus.
FileRead
Moderator: jNizM
-
- Posts: 6
- Joined: 01 May 2014, 11:15
FileRead
- Attachments
-
- temp.jpg (35.87 KiB) Viewed 2159 times
Re: FileRead
... also bei mir funktioniert es, wie es soll (AHK-Version 1.1.28.02), wenn die Text-Datei ANSI-/UTF-8- oder UTF-8-BOM-kodiert ist. Bist du sicher, dass das nur eine Zeile ist? Also kein Return oder LineFeed dahinter? Check mal mit einem HEX-Viewer (0D und/oder 0A dahinter?).
Good Luck
Good Luck
Herzliche Grüße aus dem Rheinland
Lucky Joe
Lucky Joe
-
- Posts: 6
- Joined: 01 May 2014, 11:15
Re: FileRead
Danke für den Hinweis. Gerade mal gecheckt, da ist in der Tat ein 0d und 0a dahinter. Wie kriege ich das weg?
- Attachments
-
- temp.jpg (47.84 KiB) Viewed 1862 times
Re: FileRead
ein Beispiel, Textfile mit mehreren Linien, die erste Linie beinhaltet 99
see auch > Loop,parse,f1,`n,`r
see auch > Loop,parse,f1,`n,`r
Code: Select all
F1=%a_scriptdir%\test.txt
FileReadLine, line,%f1%,1
msgbox,"%line%"
if (line=99)
msgbox,ok
else
msgbox,NOT 99 > %line%
return
Re: FileRead
Nur zur Klarstellung:
Wenn die letzten sichtbaren Zeichen in Deiner Datei Hex 0D0A (CRLF / Zeilenumbruch) sind, enthält Deine Datei zwei Zeilen. Wenn Du den Zeilenumbruch der letzten Zeile(n) ' loswerden' willst, geht das auch so:
Garry's Lösung ist aber auch korrekt, wenn Du nur die erste Zeile einlesen willst.
Wenn die letzten sichtbaren Zeichen in Deiner Datei Hex 0D0A (CRLF / Zeilenumbruch) sind, enthält Deine Datei zwei Zeilen. Wenn Du den Zeilenumbruch der letzten Zeile(n) ' loswerden' willst, geht das auch so:
Code: Select all
FileRead, temp, C:\Users\Christian\OneDrive\Schwab.txt
temp := RTrim(temp, "`r`n")
-
- Posts: 6
- Joined: 01 May 2014, 11:15
Re: FileRead
Vielen Dank! Beide Lösungen funktionieren.
@just me: warum werden bei Deiner Lösung die Buchstaben "r" und "n" entfernt?
Danke,
Christian
@just me: warum werden bei Deiner Lösung die Buchstaben "r" und "n" entfernt?
Danke,
Christian
Re: FileRead
0x0D (CR / Carriage Return) und 0x0A (LF / Line Feed) sind die Windows Codierungen (CRLF) für einen Zeilenumbruch. In AHK werden diese Zeichen als `r (CR) bzw. `n (LF) dargestellt (siehe Escapesequenzen).
Die Funktion RTrim() entfernt die im zweiten Parameter übergebenen Zeichen vom Ende einer Zeichenkette. Sie würde deshalb auch mehrere direkt aufeinanderfolgende Zeilenumbrüche am Ende des eingelesenen Dateiinhalts entfernen.
Die Funktion RTrim() entfernt die im zweiten Parameter übergebenen Zeichen vom Ende einer Zeichenkette. Sie würde deshalb auch mehrere direkt aufeinanderfolgende Zeilenumbrüche am Ende des eingelesenen Dateiinhalts entfernen.
-
- Posts: 6
- Joined: 01 May 2014, 11:15
Re: FileRead
Super. Verstanden. Vielen Dank!
Re: FileRead
@just me , danke auch für Dein Beispiel mit 'Rtrim'
Who is online
Users browsing this forum: No registered users and 64 guests