Aktuelle Zeit: 22.10.2019 13:53

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]


Forumsregeln


Die Forumsregeln lesen



Ein neues Thema erstellen Auf das Thema antworten  [ 5 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Ersetzen mit ’Nur ganze Wörter’ funktioniert nicht richtig
BeitragVerfasst: 21.08.2019 03:37 
Offline

Registriert: 13.05.2017 01:44
Hallo,

ich wollte mal fragen, ob folgender Fehler auch bei Euch auftritt und ich ihn ggf. im englischen Forum posten soll.

Angenommen, ich will einen Variablennamen im gesamten Quellkode ändern. Ich habe das immer so gemacht, daß ich die entsprechenden Eingaben in den Feldern ’Suchen nach:’ und ’Ersetzen mit’ gemacht und den Haken bei ’Nur ganze Wörter’ gesetzt habe. Geht nicht (mehr), weil PureBasic nicht alles findet.

Wenn ich z.B. alle Variablen mit dem Namen Spa durch AdSp ersetzen will, so wird Spa in folgender Zeile nicht gefunden:
Code:
For S=2 To Spa*6-2 Step 2

Dasselbe mit Sp in
Code:
CopyImage(0, Sp*4)

Da der Fehler nur auftritt, wenn dem Variablennamen ein * (Multiplikationsoperator) folgt, bei ’Spa/4’ (Division) aber alles glatt läuft, liegt die Vermutung nahe, daß das irgendetwas mit der Funktion von * als Zeigerkennzeichner zu tun hat und es deshalb als zum Namen gehörig betrachtet wird. Leider eben auch in den Fällen, wenn es sich gar nicht um einen Zeiger handelt, sondern das * einfach nur Operator ist. Man wundert sich dann, warum nach dem Ersetzen plötzlich nichts mehr funktioniert, obwohl man doch am eigentlichen Kode gar nichts verändert hat.

Der beschriebene Fehler trat in der Version 5.62 auf und so auch in der neuen 5.71. Nach Möglichkeit keine Ratschläge wie: 'Wieso setźt Du keine Leerzeichen zwischen Faktoren?', denn jeder Programmierer hat seine bei eingewurzelten Gewohnheiten.

_________________
Windows 7 x64; geposteter Kode bezieht sich (sofern nicht anders angegeben) immer auf das aktuellste PureBasic 64-Bit

Erst wenn man es seiner Schwiegermutter erklären kann, hat man es verstanden.
As gsündeste is oiwei guad essn und dringa und ned grang wern.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Ersetzen mit ’Nur ganze Wörter’ funktioniert nicht richt
BeitragVerfasst: 21.08.2019 06:30 
Offline

Registriert: 13.05.2010 09:26
Wohnort: Berlin
Tanaghra hat geschrieben:
ich wollte mal fragen, ob folgender Fehler auch bei Euch auftritt und ich ihn ggf. im englischen Forum posten soll.

Das Problem ist seit langem bekannt, und im engl. Forum schon öfter diskutiert worden.

Tanaghra hat geschrieben:
liegt die Vermutung nahe, daß das irgendetwas mit der Funktion von * als Zeigerkennzeichner zu tun hat und es deshalb als zum Namen gehörig betrachtet wird.

Ja, das ist der Grund. Denn manchmal gehört ein * tatsächlich zum darauf folgenden Variablennamen. Der Editor kann leider nicht unterscheiden, ob ein * der Beginn einer Zeigervariablen oder der Multiplikationsoperator ist.

Tanaghra hat geschrieben:
Nach Möglichkeit keine Ratschläge wie: 'Wieso setźt Du keine Leerzeichen zwischen Faktoren?'
Einen anderen Rat wird man dir leider kaum geben können.

_________________
Dieser Satz ist falsch.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Ersetzen mit ’Nur ganze Wörter’ funktioniert nicht richt
BeitragVerfasst: 21.08.2019 07:12 
Offline

Registriert: 15.10.2004 17:42
Ich habe mir schon seit Ewigkeiten angewöhnt, Variablen, Operatoren usw.
mit einem Blank zu trennen.
Code:
For S = 2 To Spa * (6 - 2) Step 2


Dient auch zur besseren Lesbarkeit. Man sieht dann
auf den ersten Blick, ob es ein Zeiger oder Operator ist :
Code:
*var vs. * var

_________________
PB 5.60


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Ersetzen mit ’Nur ganze Wörter’ funktioniert nicht richt
BeitragVerfasst: 22.08.2019 19:26 
Offline

Registriert: 13.05.2017 01:44
@ Nino: Du schreibst:
Zitat:
Das Problem ist seit langem bekannt, und im engl. Forum schon öfter diskutiert worden.

Ich habe im englischen Forum in der 'Search query' im Feld 'Search for keywords' sowohl 'Find Replace *' als auch 'Find Replace multiplication' eingegeben. Es wurden aber keine Ergebnisse angezeigt, die mein Problem besprechen.

Könntest Du mir einen Link schicken zu einem entsprechenden Thread?

_________________
Windows 7 x64; geposteter Kode bezieht sich (sofern nicht anders angegeben) immer auf das aktuellste PureBasic 64-Bit

Erst wenn man es seiner Schwiegermutter erklären kann, hat man es verstanden.
As gsündeste is oiwei guad essn und dringa und ned grang wern.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Ersetzen mit ’Nur ganze Wörter’ funktioniert nicht richt
BeitragVerfasst: 22.08.2019 19:46 
Offline

Registriert: 13.05.2010 09:26
Wohnort: Berlin
Tanaghra hat geschrieben:
Könntest Du mir einen Link schicken zu einem entsprechenden Thread?

Z.B. dieser Thread:
https://www.purebasic.fr/english/viewto ... =4&t=43010

Habe jetzt ehrlich gesagt keine Lust, nach den anderen Threads zu suchen, in denen dieses Problem diskutiert wurde. :-)

_________________
Dieser Satz ist falsch.


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 5 Beiträge ] 

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 0 Gäste


Sie dürfen keine neuen Themen in diesem Forum erstellen.
Sie dürfen keine Antworten zu Themen in diesem Forum erstellen.
Sie dürfen Ihre Beiträge in diesem Forum nicht ändern.
Sie dürfen Ihre Beiträge in diesem Forum nicht löschen.

Suche nach:
Gehe zu:  

 


Powered by phpBB © 2008 phpBB Group | Deutsche Übersetzung durch phpBB.de
subSilver+ theme by Canver Software, sponsor Sanal Modifiye