Zur Info:
Wir haben gerade ein Problem mit
Line Input #fileHandle, target
unter 9.0.1 FP4 festgestellt, wenn die Datei UTF8 codiert ist und einzulesende Zeile einen Umlaut (Multibyte char) enthält.
In diesem Fall wird scheinbar die Länge von "Target" falsch berechnet und es hängt am Ende irgendein Datenmüll.
PMR wird erstellt, Test mit FP5 erfolgt, sobald verfügbar
(Möglicherweise ist der Fehler verwandt mit diesem hier: http://www-10.lotus.com/ldd/fixlist.nsf/8ed1b46cfdba8957852570c90054623b/bdc478802039621385257ecf006efefa?OpenDocument)
Gruß
Roland
@Andrew, das FP5 war am Freitag verfügbar. Der Installer wurde wieder zurück gezogen (jedenfalls haben wir den Download im Passport nicht gefunden)
@Tode
Hier der Testcode
Sub Initialize
On Error GoTo handle
Dim Session As New NotesSession
Dim fileHandle As Integer
Dim s As String
Dim fileName As String
fileName = Session.Getenvironmentstring("Directory", true)+"\testUTF8Bug.txt"
fileHandle = FreeFile
' prepare test file
Const LINE1 = "This is Line one, it contains longer text"
Const LINE2 = "Some UTF-8 chars: äöü€"
Open fileName For Output Access Write As fileHandle Charset="UTF-8"
Print #fileHandle, LINE1
Print #fileHandle, LINE2
Close #fileHandle
'now read testfile again
Open fileName For Input Access Read As fileHandle Charset="UTF-8"
' assert #1
Line Input #fileHandle, s
If s <> LINE1 Then Error 1000, "Assertion failed. Expected: '" & LINE1 & "', Actual: '" & s & "'"
' assert #2
Line Input #fileHandle, s
If s <> LINE2 Then Error 1000, "Assertion failed. Expected: '" & LINE2 & "', Actual: '" & s & "'"
Close #fileHandle
MsgBox "Test Success"
Exit Sub
handle:
MsgBox Error & " in line " & Erl
Exit Sub
End Sub
Unter 9.0.1 FP4 bekomme ich
Assertion failed. Expected: 'Some UTF-8 chars: äöü€', Actual: 'Some UTF-8 chars: äöü€
Man beachte dass hier der String "abgeschnitten" ist, da er mit einem Null-Character endet. (und hinter dem Null Character folgen noch Zeichen aus LINE1)
Gruß
Roland