ReplaceString Stoppt das Programm

Fragen und Bugreports zur PureBasic 4.0-Beta.
Benutzeravatar
String
Beiträge: 69
Registriert: 17.05.2007 16:22

ReplaceString Stoppt das Programm

Beitrag 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"

PB v4.**
Benutzeravatar
edel
Beiträge: 3667
Registriert: 28.07.2005 12:39
Computerausstattung: GameBoy
Kontaktdaten:

Beitrag 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 

Benutzeravatar
String
Beiträge: 69
Registriert: 17.05.2007 16:22

Beitrag 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
PB v4.**
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag 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.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
D@nte
Beiträge: 324
Registriert: 24.04.2007 15:33
Wohnort: Berlin

Beitrag 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?!
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag 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...
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag 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:

Code: Alles auswählen

While 1 : Wend
eine Endlosschleife ist.
Die PureBasic Hilfe ist eine Referenz, kein Basic-Lehrbuch!
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag 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.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
String
Beiträge: 69
Registriert: 17.05.2007 16:22

Beitrag von String »

Ach wozu denn! :wink:
In PB v3.94 wird ja auch nicht darauf hingewiesen das es geht.

Es ist ein Fehler!
Zuletzt geändert von String am 24.05.2007 22:48, insgesamt 1-mal geändert.
PB v4.**
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag 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 :mrgreen:
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Gesperrt