Seite 4 von 6
Verfasst: 26.05.2007 23:06
von AND51
@ TS-Soft:
Ich meinte:
"Dann sollte es wenigstens ohne Debugger fehlerfrei laufen"
Verfasst: 26.05.2007 23:14
von ts-soft
AND51 hat geschrieben:@ TS-Soft:
Ich meinte:
"Dann sollte es wenigstens ohne Debugger fehlerfrei laufen"
Mit einem Fehler kann es nicht 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!
Verfasst: 26.05.2007 23:15
von Kaeru Gaman
@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)
Verfasst: 26.05.2007 23:18
von Falko
AND51 hat geschrieben:@ TS-Soft:
Ich meinte:
"Dann sollte es wenigstens ohne Debugger fehlerfrei laufen"
Naja, dann mach mal bitte den Debugger aus und teste:
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()
Gruß Falko
Verfasst: 26.05.2007 23:33
von AND51
> 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.
Code: Alles auswählen
Procedure ReplaceString()
If StringToFind$ And StrngToReplace$
; eigentlicher Code
EndIf
ProcedureReturn Result$
EndProcedure
Aber das kann man sich ja schon denken.
Verfasst: 26.05.2007 23:40
von Falko
@Kaeru Gaman
Kleiner Denkfehler von mir. Es wird die Anzahl der Zeichen ausgegeben, wo dieses gesuchte Zeichen gefunden wurde, oder auch nicht.
Gruß Falko
Verfasst: 26.05.2007 23:40
von ts-soft
@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.
Verfasst: 26.05.2007 23:45
von String
Wie dem auch sei!
Ich hab mal wider was gelernt.
Demnach müsst ich vor jedem PB befehl Prüfen,
ob Strings Leer sind bevor ich sie verarbeiten lasse.
Echt super Programmiersprache.
Verfasst: 26.05.2007 23:47
von Kaeru Gaman
@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.
Verfasst: 26.05.2007 23:51
von String
Ich werde es in Zukunft beachten. Danke.
