Seite 1 von 6
ReplaceString Stoppt das Programm
Verfasst: 24.05.2007 21:58
von String
Das Programm bleibt bei mir einfach stehen. PureBasic v4.02
Code: Alles auswählen
Procedure Test_A(Test.s)
Test_Eins.s = StringField(Test.s, 1, ";")
Debug ReplaceString(Test.s,Test_Eins , "")
EndProcedure
Debug "Start"
Debug ""
Test_A(";ABC;DEF;GHI")
Debug ""
Debug "Ende"
Verfasst: 24.05.2007 22:02
von edel
Du versuchst einen leeren String zu ersetzen. Versuch es mal so :
Code: Alles auswählen
Procedure Test_A(Test.s)
Test_Eins.s = StringField(Test.s, 1, ";")
If Test_Eins
Debug ReplaceString(Test.s,Test_Eins , "")
EndIf
EndProcedure
Verfasst: 24.05.2007 22:10
von String
Ist mir schon klar!
Darum geht es ja gar nicht.
PB dürfte doch überhaupt nicht anhalten
Das ist doch ein Fehler in PB
Verfasst: 24.05.2007 22:22
von Kaeru Gaman
wie man's nimmt...
man könnte natürlich argumentieren, es müsse eine fehlermeldung ausgegeben werden.
allerdings ist die frage, wie sehr das die funktion verlangsamen würde.
so etwas kann man getrost der verantwortung des programmierers überlassen.
zumindest sollte ein hinweis in der help stehen, dass der SuchString$ nicht leer sein darf.
Verfasst: 24.05.2007 22:27
von D@nte
Kaeru Gaman hat geschrieben:zumindest sollte ein hinweis in der help stehen, dass der SuchString$ nicht leer sein darf.
PB Help zu ReplaceString hat geschrieben:Versucht alle Vorkommen des 'SuchString$' im angegebenen 'String$' zu finden
Irgendwie steht das doch in der Help, was nicht da ist (NULL) kann auch nicht gefunden werden oder seh ich da jezz was falsch?!
Verfasst: 24.05.2007 22:29
von Kaeru Gaman
stimmt schon, ich würde auch nicht auf die idee kommen, einen leeren string zu suchen...
evtl. sollte man's doch explizit erwähnen...
Verfasst: 24.05.2007 22:33
von ts-soft
Kaeru Gaman hat geschrieben:
evtl. sollte man's doch explizit erwähnen...
Dann müßte man z.B. auch erwähnen das:
eine Endlosschleife ist.
Die PureBasic Hilfe ist eine Referenz, kein Basic-Lehrbuch!
Verfasst: 24.05.2007 22:38
von Kaeru Gaman
> Dann müßte man z.B. auch erwähnen das: While 1 : Wend eine Endlosschleife ist.
ne, das is ja doch wieder was anderes.
hier gehts um das verhalten einer Funktion, die freezed anstatt ne fehlermeldung auszuspucken.
wenn man den suchstring on-the-fly erzeugt, kann das eben passieren,
und da wäre das schon hilfreich drauf hingewiesen zu werden.
Verfasst: 24.05.2007 22:46
von String
Ach wozu denn!
In PB v3.94 wird ja auch nicht darauf hingewiesen das es geht.
Es ist ein Fehler!
Verfasst: 24.05.2007 22:47
von ts-soft
>> ne, das is ja doch wieder was anderes
Das ist auch nur eine Endlosschleife, was soll da anders sein. Nur weil die
Endlosschleife funktionsintern ist? Man kann soviel in die Hilfe reinschreiben,
aber langsam wird sie unübersichtlich und erfüllt ihren Zweck nicht mehr.
Nur absoluten Anfängern sollte dieser Fehler passieren, aber selbst diesen
sollte klar sein, das nichts zu Replacen sinnlos ist
