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

Für allgemeine Fragen zur Programmierung mit PureBasic.
Benutzeravatar
Sicro
Beiträge: 969
Registriert: 11.08.2005 19:08
Kontaktdaten:

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

Beitrag 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.
Bild
Warum OpenSource eine Lizenz haben sollte :: PB-CodeArchiv-Rebirth :: Pleasant-Dark (Syntax-Farbschema) :: RegEx-Engine (kompiliert RegExes zu NFA/DFA)
Manjaro Xfce x64 (Hauptsystem) :: Windows 10 Home (VirtualBox) :: Neueste PureBasic-Version
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7039
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

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

Beitrag 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
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Benutzeravatar
Sicro
Beiträge: 969
Registriert: 11.08.2005 19:08
Kontaktdaten:

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

Beitrag 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]
Zuletzt geändert von Sicro am 04.05.2014 13:19, insgesamt 1-mal geändert.
Bild
Warum OpenSource eine Lizenz haben sollte :: PB-CodeArchiv-Rebirth :: Pleasant-Dark (Syntax-Farbschema) :: RegEx-Engine (kompiliert RegExes zu NFA/DFA)
Manjaro Xfce x64 (Hauptsystem) :: Windows 10 Home (VirtualBox) :: Neueste PureBasic-Version
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7039
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

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

Beitrag 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.
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Benutzeravatar
Sicro
Beiträge: 969
Registriert: 11.08.2005 19:08
Kontaktdaten:

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

Beitrag von Sicro »

STARGÅTE hat geschrieben:Edit: habs mal im englischen Forum als Bug gepostet.
Danke
Bild
Warum OpenSource eine Lizenz haben sollte :: PB-CodeArchiv-Rebirth :: Pleasant-Dark (Syntax-Farbschema) :: RegEx-Engine (kompiliert RegExes zu NFA/DFA)
Manjaro Xfce x64 (Hauptsystem) :: Windows 10 Home (VirtualBox) :: Neueste PureBasic-Version
Antworten