ReplaceString Stoppt das Programm

Fragen und Bugreports zur PureBasic 4.0-Beta.
Benutzeravatar
AND51
Beiträge: 5220
Registriert: 01.10.2005 13:15

Beitrag von AND51 »

Das mit der Meldung im Debugger ist ja eine gute Idee, aber stell dir doch mal eine Situation vor, in der man vielleicht nicht selbst bestimmen kann, was ReplaceString$ und SearchString$ sein sollen.

Im Endeffekt könnte dein Programm in eine solche Situation geraten:

Code: Alles auswählen

replace.s=InputRequester("", "", "")
search.s=InputRequester("", "", "")

result.s=ReplaceString(Data$, search, replace)
Was nützt dir da ein Debugger-Check, wenn du dein Programm mit diesem Code aber fertig-kompilierst und weitergeben musst? Und ich persönlich habe keine Lust alles und jeden vorher mit If zu prüfen. Ich meine: Ich prüfe schon wichtige Dinge, wie Dateien oder Load*(), aber nicht solche Sachen wie OpenWindow. Und replaceString ist ja noch unwichtiger als OpenWindow...
PB 4.30

Code: Alles auswählen

Macro Happy
 ;-)
EndMacro

Happy End
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

> Und ich persönlich habe keine Lust alles und jeden vorher mit If zu prüfen.

dann solltest du nicht für andere menschen programmieren.

> Im Endeffekt könnte dein Programm in eine solche Situation geraten:

dann ist es schlecht programmiert!

wie ich bereits weiter oben schrieb:
> auch hier würde ich vorher testen, ob der suchstring leer ist, um den benutzer darauf hinzuweisen.

> aber egal in welcher programmiersprache solltest du deinem benutzer eine
> meldung geben "der Suchstring sollte nicht leer sein", wenn er es versucht.

ts-soft hat es so gesagt:
> Benutzereingaben sind grundsätzlich zu prüfen, bevor man sie weiterverarbeitet.
> Entweder man verhindert Falscheingaben oder man prüft sie.


wo bleiben denn da noch fragen offen oder wo gibt es was um den pudding zu diskutieren?

1. JA, es ist ein Bug, der befehl darf nicht freezen.

2. wenn du eine Benutzereingabe ungeprüft verarbeitest, dann ist da auch ein BUG vor der Tastatur.
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 »

Zitat
Benutzereingaben sind grundsätzlich zu prüfen
Zitat Ende
Das ist 100% richtig

Aber!
Wieso sollte man auf die Idee kommen, eine Variable zu Prüfen.
Die in einem Befehl ausgeführt werden soll, von dem man ausgehen kann
das er bei einer null Eingabe auch null zurück liefert
sofern der Befehl keinen Bug enthält.
Das ist doch totaler Quatsch.
Mann kann es mit dem Prüfen auch übertreiben.
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 »

>> das er bei einer null Eingabe auch null zurück liefert
Das wäre evtl. sinnvoll, ist aber kein Bug, da der Compiler exact das ausführt
was im Code steht. Das dies unendlich dauert ist ja ein ganz anderer Schuh.
Mir ist ein Compiler, der das ausführt was ich im sage lieber, als einer der
mir fälschlicher Weise 0 zurückgibt. Weil das ist auch falsch.
Compilerwarnung wäre in jedemfall angebracht. Ansonsten liegt es eben in
der Verantwortung des Programmierers. Ist ja eine Compilersprache und
kein Basic-Scripting for Kids. Prüfen kann man nicht übertreiben, das ist
das wichtigste beim programmieren überhaupt, wer dazu zu faul ist, sollte
sich lieber ein anderes Hobby suchen, weil programmieren kann man mit so
einer Einstellung nicht lernen.
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
Benutzeravatar
String
Beiträge: 69
Registriert: 17.05.2007 16:22

Beitrag von String »

ts-soft hat geschrieben:(Zitat) >> das er bei einer null Eingabe auch null zurück liefert (Zitat Ende).
Das wäre evtl. sinnvoll, ist aber kein Bug,
Das ist ja auch kein Bug.
Sondern das sich der Compiler aufhängt ist ein Bug.
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 »

>> Sondern das sich der Compiler aufhängt ist ein Bug
Suche nach nix dauert unendlich. Physikalisch und logisch korrektes Verhalten :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
Benutzeravatar
String
Beiträge: 69
Registriert: 17.05.2007 16:22

Beitrag von String »

Wenn ich nach nichts suche,
dann benötige ich erstens dafür keine Zeit und kann mich auch nicht verlaufen. :D
PB v4.**
Benutzeravatar
Kiffi
Beiträge: 10621
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Beitrag von Kiffi »

ts-soft hat geschrieben:>> Sondern das sich der Compiler aufhängt ist ein Bug
Suche nach nix dauert unendlich. Physikalisch und logisch korrektes Verhalten :mrgreen:
OK, dann drehen wir es halt um. Ich bin dafür, dass der Compiler sich bei
folgendem Befehl auch aufhängt.

Code: Alles auswählen

Debug FindString("lala", "", 1)
Grüße ... Kiffi
Hygge
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 »

Kiffi hat geschrieben:
ts-soft hat geschrieben:>> Sondern das sich der Compiler aufhängt ist ein Bug
Suche nach nix dauert unendlich. Physikalisch und logisch korrektes Verhalten :mrgreen:
OK, dann drehen wir es halt um. Ich bin dafür, dass der Compiler sich bei
folgendem Befehl auch aufhängt.

Code: Alles auswählen

Debug FindString("lala", "", 1)
Grüße ... Kiffi
Ich auch!
Folgefehler suchen ist nämlich schwieriger als Fehler zu suchen :mrgreen:
Wenn der Debugger das meldet und der Code sich dort aufhängt, brauche ich
nämlich nicht mehr suchen. Erspart viel Arbeit :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
Benutzeravatar
String
Beiträge: 69
Registriert: 17.05.2007 16:22

("MU")

Beitrag von String »

Egal wie und ob das Problem behandelt werden sollte.
Muss man da jetzt einen bugreport im internationalen Forum melden.
Oder haben das die richtigen Leute schon mitbekommen?
PB v4.**
Gesperrt