Seite 1 von 1

Feature-Request: ReadString(0, #PB_Default, 10)

Verfasst: 04.05.2014 11:49
von Sicro
Ich finde, das sollte gehen:

Code: Alles auswählen

ReadString(0, #PB_Default, 10)
Was meint ihr?

Code: Alles auswählen

ReadString(0, #PB_Ignore, 10)
geht auch nicht, aber das obere wäre mir sowieso lieber.

Re: Feature-Request: ReadString(0, #PB_Default, 10)

Verfasst: 04.05.2014 12:01
von STARGÅTE
Meinst du nicht, es wäre sinnbvoll, wenn du angibst in welchem Format er lesen soll.
Bei deinem "Default" würde er ja dann einmal vllt 14 (wegen UTF8) Bytes und dann mal wieder 10 Bytes (Ascii) lesen, jenachdem wie dein Programm Kompiliert wird.

Ein Default macht ja nur dann sinn, wenn es nur ein Standardwert gibt.
Aber in diesem Fall ist der ja entweder #PB_Ascii oder #PB_UTF8

Re: Feature-Request: ReadString(0, #PB_Default, 10)

Verfasst: 04.05.2014 12:44
von Sicro
STARGÅTE hat geschrieben:Bei deinem "Default" würde er ja dann einmal vllt 14 (wegen UTF8) Bytes und dann mal wieder 10 Bytes (Ascii) lesen, jenachdem wie dein Programm Kompiliert wird.
So soll es ja auch sein. Dann müsste man nicht das machen:

Code: Alles auswählen

If CompilerIf #PB_Compiler_Unicode
  text.s = ReadString(0, #PB_UTF8, 10)
CompilerElse
  text.s = ReadString(0, #PB_Ascii, 10)
CompilerEndIf
sondern einfach das:

Code: Alles auswählen

ReadString(0, #PB_Default, 10)
Es fehlt einfach die Möglichkeit den optionalen Parameter zu überspringen und so zu lassen, wie er ist.
STARGÅTE hat geschrieben:14 (wegen UTF8) Bytes und dann mal wieder 10 Bytes (Ascii) lesen
Das dachte ich auch, weil ja in der Hilfe steht, die Angabe gibt die zu lesenden Zeichen an, aber es sind die zu lesenden Bytes. Siehe hier: [entfernt]

Re: Feature-Request: ReadString(0, #PB_Default, 10)

Verfasst: 04.05.2014 13:01
von STARGÅTE
Sicro hat geschrieben:Das dachte ich auch, weil ja in der Hilfe steht, die Angabe gibt die zu lesenden Zeichen an, aber es sind die zu lesenden Bytes.
Ganz sicher nicht! Wenn dann ist das ein Fehler!

In diesem Beispiel lese ich 7 Zeichen als Unicode, und bin dann bei Position 14 in der Datei:

Code: Alles auswählen

CreateFile(1, GetTemporaryDirectory()+"Test.txt")
	WriteString(1, "Ölfähre", #PB_Unicode)
CloseFile(1)

RunProgram(GetTemporaryDirectory()+"Test.txt")

ReadFile(1, GetTemporaryDirectory()+"Test.txt")
	Debug ReadString(1, #PB_Unicode, 7)
	Debug Loc(1)
CloseFile(1)
Warum das bei UTF nicht der Fall ist ...

Edit: habs mal im englischen Forum als Bug gepostet.

Re: Feature-Request: ReadString(0, #PB_Default, 10)

Verfasst: 04.05.2014 13:16
von Sicro
STARGÅTE hat geschrieben:Edit: habs mal im englischen Forum als Bug gepostet.
Danke