ReplaceString Stoppt das Programm
@ TS-Soft:
Ich meinte:
"Dann sollte es wenigstens ohne Debugger fehlerfrei laufen"
Ich meinte:
"Dann sollte es wenigstens ohne Debugger fehlerfrei laufen"
PB 4.30
Code: Alles auswählen
Macro Happy
;-)
EndMacro
Happy End
- 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
Mit einem Fehler kann es nicht fehlerfrei laufenAND51 hat geschrieben:@ TS-Soft:
Ich meinte:
"Dann sollte es wenigstens ohne Debugger fehlerfrei laufen"
VB-Progger nutzen ja gerne OnErrorNext, sowas in der Art stellst Du Dir
ja vor, sowas ist gefährlich und man sollte besser darauf verzichten!
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.
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
-
- Beiträge: 17389
- Registriert: 10.11.2004 03:22
@Falko
aber irgendein string kann ja auch nicht vorhanden sein,
also FindString kann ja völlig berechtigt 0 zurückliefern,
wenn man z.b. nach "ö" sucht.
auch hier würde ich vorher testen, ob der suchstring leer ist,
um den benutzer darauf hinzuweisen.
aber natürlich hast du in einem punkt recht:
FindString funktioniert insofern fehlerfrei,
dass bei einem leerstring der string garnicht erst durchsucht wird.
habs eben getestet... die laufzeit ist null.
(im gegensatz zu einem nicht-leeren suchstring)
aber irgendein string kann ja auch nicht vorhanden sein,
also FindString kann ja völlig berechtigt 0 zurückliefern,
wenn man z.b. nach "ö" sucht.
auch hier würde ich vorher testen, ob der suchstring leer ist,
um den benutzer darauf hinzuweisen.
aber natürlich hast du in einem punkt recht:
FindString funktioniert insofern fehlerfrei,
dass bei einem leerstring der string garnicht erst durchsucht wird.
habs eben getestet... die laufzeit ist null.
(im gegensatz zu einem nicht-leeren suchstring)
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Der Weise weiß, dass er ein Narr ist.
- Falko
- Admin
- Beiträge: 3531
- Registriert: 29.08.2004 11:27
- Computerausstattung: PC: MSI-Z590-GC; 32GB-DDR4, ICore9; 2TB M2 + 2x3TB-SATA2 HDD; Intel ICore9 @ 3600MHZ (Win11 Pro. 64-Bit),
Acer Aspire E15 (Win11 Home X64). Purebasic LTS 6.0 - Kontaktdaten:
Naja, dann mach mal bitte den Debugger aus und teste:AND51 hat geschrieben:@ TS-Soft:
Ich meinte:
"Dann sollte es wenigstens ohne Debugger fehlerfrei laufen"
WAS PASSIERT BEI DIR?
Code: Alles auswählen
OpenConsole()
Procedure Test_A(Test.s)
Test_Eins.s = StringField(Test.s, 1, ";")
Print(ReplaceString(Test.s,Test_Eins , ""))
EndProcedure
Print("Start")
Print("")
Print(Str(Test_A(";ABC;DEF;GHI")))
Print( "")
Print( "Ende")
Input(); Warte auf mich, ich fertig bin
CloseConsole()
> Mit einem Fehler kann es nicht fehlerfrei laufen
Und deshalb sollte man ihn korrigieren, das ist es doch, worum ich, STring und Falko die ganze Zeit reden. Das müsstest du doch jetzt langsam verstehen!
> VB-Progger nutzen ja gerne OnErrorNext, sowas in der Art stellst Du Dir ja vor, sowas ist gefährlich und man sollte besser darauf verzichten
Habe ich gesagt, dass ich das benutze? Und ja, ich finde auch, dass es was besseres als onErrorNext.
WIe jemand hier schon gesagt hatte, sollte der Befehl mit Leerstrings einfach zurückkehren, ohne etwas zu unternehmen. Man braucht intern ja auch nur 2 Zeilen zu adden, das dürfte ja wohl nicht so schwer sein.
Aber das kann man sich ja schon denken.
Und deshalb sollte man ihn korrigieren, das ist es doch, worum ich, STring und Falko die ganze Zeit reden. Das müsstest du doch jetzt langsam verstehen!
> VB-Progger nutzen ja gerne OnErrorNext, sowas in der Art stellst Du Dir ja vor, sowas ist gefährlich und man sollte besser darauf verzichten
Habe ich gesagt, dass ich das benutze? Und ja, ich finde auch, dass es was besseres als onErrorNext.
WIe jemand hier schon gesagt hatte, sollte der Befehl mit Leerstrings einfach zurückkehren, ohne etwas zu unternehmen. Man braucht intern ja auch nur 2 Zeilen zu adden, das dürfte ja wohl nicht so schwer sein.
Code: Alles auswählen
Procedure ReplaceString()
If StringToFind$ And StrngToReplace$
; eigentlicher Code
EndIf
ProcedureReturn Result$
EndProcedure
PB 4.30
Code: Alles auswählen
Macro Happy
;-)
EndMacro
Happy End
- 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
@AND51
Du möchtest das PB den Programmierfehler abfängt und dann nichts macht.
Da kann man geteilter Meinung sein, ich möchte eine Meldung im Debugger
aber ansonsten soll mein Code bitteschön so ausgeführt werden, wie ich es
gecodet habe! In diesem Fall vielleicht nicht wichtig, da Endlosshleifen krieg
ich auch anders hin , aber prinzipiell ist es besser der Compiler
übersetzt meinen Code, ich hab ja die Möglichkeit es mit dem Debugger zu
testen.
Du möchtest das PB den Programmierfehler abfängt und dann nichts macht.
Da kann man geteilter Meinung sein, ich möchte eine Meldung im Debugger
aber ansonsten soll mein Code bitteschön so ausgeführt werden, wie ich es
gecodet habe! In diesem Fall vielleicht nicht wichtig, da Endlosshleifen krieg
ich auch anders hin , aber prinzipiell ist es besser der Compiler
übersetzt meinen Code, ich hab ja die Möglichkeit es mit dem Debugger zu
testen.
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.
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
-
- Beiträge: 17389
- Registriert: 10.11.2004 03:22
@String
ne, das hast du falsch verstanden.
is ja ok, dass der befehl nich freezen sollte.
aber egal in welcher programmiersprache solltest du deinem benutzer eine
meldung geben "der Suchstring sollte nicht leer sein", wenn er es versucht.
ne, das hast du falsch verstanden.
is ja ok, dass der befehl nich freezen sollte.
aber egal in welcher programmiersprache solltest du deinem benutzer eine
meldung geben "der Suchstring sollte nicht leer sein", wenn er es versucht.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Der Weise weiß, dass er ein Narr ist.