ReplaceString Stoppt das Programm

Fragen und Bugreports zur PureBasic 4.0-Beta.
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Beitrag von Kiffi »

Falko hat geschrieben:Ein Leerstring sieht aber in Wirklichkeit so aus :lol:
hey Falko, Du verwechselst Leerstring mit Leerzeichen ;-)

Grüße ... Kiffi
a²+b²=mc²
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 »

Kann man als Bug sehen, aber um diesen Bug zu bemerken bedarf es einen
Code, der auch einen Bug enthält, nämlich einen Leersting wo dieser nicht
erlaubt sein kann, weils keinen Sinn ergibt :lol:
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
Falko
Admin
Beiträge: 3535
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.11b1
HP255G8 Notebook @AMD Ryzen 5 5500U with Radeon Graphics 2.10 GHz 3.4GHz, 32GB_RAM, 3TB_SSD (Win11 Pro 64-Bit)
Kontaktdaten:

Beitrag von Falko »

Oh man, richtig. Leerstring, da ist nix und Leerzeichen, da ist doch was,
also auch nix :mrgreen: .
Nee, ganz im Ernst, du hast schon Recht Kiffi :allright: .

Aber trotzdem sollte der Debugger was ausspucken.
Aber das ist dann so, wie ts-soft schon sagt, eine Endlosschleife, die
nie beendet wird.

Wir kennen ja noch das Beispiel mit For Next und Bytes über 127

Code: Alles auswählen

For i.b= 0 To 127
 Debug i
Next i
Das wäre genauso.

Gruß Falko
Bild
Win11 Pro 64-Bit, PB_6.11b1
Benutzeravatar
AND51
Beiträge: 5220
Registriert: 01.10.2005 13:15

Beitrag von AND51 »

Falko hat geschrieben:Aber trotzdem sollte der Debugger was ausspucken.
Nein eben nicht, oder gibst du deine PRogramme nur mit integriertem Debugger weiter?

Ich finde schon dass es auf jeden Fall auch ohne Debugger gehen muss!
PB 4.30

Code: Alles auswählen

Macro Happy
 ;-)
EndMacro

Happy End
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 »

>> Ich finde schon dass es auf jeden Fall auch ohne Debugger gehen muss!
Das macht es ja im Moment, ergebnis ist eine Endlosschleife. Oder meinste
der Fehler soll ignoriert werden, Programm läuft weiter mit fehlerhaften
Daten und Nutzer merkt es hoffentlich nicht :lol:

Selbstverständlich sind solche Fehler zu beseitigen, Deine Aussage macht
nun gar keinen Sinn.
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 »

Hallo ts-soft ich habe bei dir den Eindruck, du beschuldigst mich ein absoluter
Programmier Schlumpf zu sein.
Zitat: um diesen Bug zu bemerken bedarf es einen
Code, der auch einen Bug enthält
Zitat Ende
Warum kannst Du dir nicht vorstellen, dass man ein Programm entwickeln kann
In dem der Benutzer enorm viele Einstellungen vornehmen kann.
Die ein solches Problem verursachen können.
Wenn du ein Spitzen Programmierer bist (gehe ich mal von aus)
Solltest du das durchaus einsehen.
PB v4.**
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

das mag ja alles sein.
und es mag ja auch sein, dass es unschön/unpraktisch/fehlerhaft ist, wenn der befehl freezed.

aber:
wenn ich eine eingabe machen kann, dass versucht wird,
einen leerstring als suchstring zu benutzen,
dann müßte ich doch sowieso die rückgabe überprüfen,
ob eine veränderung stattgefunden hat.

stellt euch vor, ihr habt eine UNDO-funktion dabei,
soll die überschrieben werden, wenn keinerlei veränderung stattgefunden hat?
wieso sollte überhaupt eine Replace durchgeführt werden, wenn der suchstring leer ist?

also müßte ich das doch so oder so prüfen, damit das programm richtig funktoniert.
es dürfte so oder so der versuch, einen leeren suchstring zu benutzen,
nicht als durchgeführte operation angesehen werden.

wo sollte also der unterschied sein, ob ich es vorher prüfe, und dann das Replace garnicht erst aufrufe?

klar, dass der Befehl freezed mag ein fehler sein,
aber dass er überhaupt in die situation kommt, freezen zu können,
ist ein fehler des programmierers.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
Falko
Admin
Beiträge: 3535
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.11b1
HP255G8 Notebook @AMD Ryzen 5 5500U with Radeon Graphics 2.10 GHz 3.4GHz, 32GB_RAM, 3TB_SSD (Win11 Pro 64-Bit)
Kontaktdaten:

Beitrag von Falko »

Dann vergleicht doch das mal mit FindString. Dort wird kein Leerstring gefunden und das Programm wird auch korrekt beendet, was eben
beim Replacestring nicht passiert.
Der Gedanke hierzu ist, wenn ein Beispielstring z.B. Acht Buchstaben hat, sollten auch nur 8 Buchstaben verglichen werden. Dann muss auch Ende
sein. FindString ist quasi nicht viel anders oder was meint ihr dazu?

Code: Alles auswählen

;Suche hier nach Leerzeichen
Debug FindString("Purebasic 4.10", " ", 0)
;Und jetzt suche mal Leestrings
Debug FindString("Purebasic 4.10", "", 0)
;hier müssten dann Leerzeichen sein?
Debug FindString("        ", "", 0)
; und dies vielleicht ein Leestring?
Debug FindString("", "", 0)
Gruß Falko
Zuletzt geändert von Falko am 26.05.2007 23:00, insgesamt 1-mal geändert.
Bild
Win11 Pro 64-Bit, PB_6.11b1
Benutzeravatar
String
Beiträge: 69
Registriert: 17.05.2007 16:22

Beitrag von String »

@Kaeru Gaman
OK Ich bin ein Schlumpf
Aber ich hab jetzt wenigstens meine ruhe. cu
Zuletzt geändert von String am 26.05.2007 22:54, 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 »

String hat geschrieben:Warum kannst Du dir nicht vorstellen, dass man ein Programm entwickeln kann In dem der Benutzer enorm viele Einstellungen vornehmen kann. Die ein solches Problem verursachen können.
Wie bereits mehrmals gesagt, ca 2 Drittel der Zeit der Programmentwicklung
steckt man durchschnittlich in die Fehlerbehandlung. Dazu gehört es auch,
nicht mögliche Eingaben des Benutzers zu behandeln. Bei falschem Code
hilft der Debugger, bei falschen Benutzereingaben ist es Deine Aufgabe.

Benutzereingaben sind grundsätzlich zu prüfen, bevor man sie
weiterverarbeitet. Entweder man verhindert Falscheingaben oder man prüft
sie.
Wenn Du jetzt der Meinung bist ein Schlumpf zu sein, kann ich es nicht ver-
hindern, ich habe damit aber nichts zu tun :lol:
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