[gelöst] Startverzeichnis von PureBasic ermitteln

Anfängerfragen zum Programmieren mit PureBasic.
derschutzhund
Beiträge: 328
Registriert: 06.06.2013 20:37
Computerausstattung: Satellite A210-19Z, Samsung Netbook N130, VPAD10

[gelöst] Startverzeichnis von PureBasic ermitteln

Beitrag von derschutzhund »

Ist bestimmt eine Standardfunktion aber ich kann dazu nichts finden :oops:

Ich möchte ermitteln in welchem Verzeichnis sich PureBasic befindet bzw. aus welchem es gestartet wurde (also z.B. "D:\Programme\PureBasic\PureBasic.exe")
Zuletzt geändert von derschutzhund am 07.07.2013 00:01, insgesamt 1-mal geändert.
Satellite A210-19Z, Samsung N130, VPAD10, WinXP, Win7, PuppyLinux, PB 5.24, 5.31. 5.70
Elektronik, Mikrocontroller, CNC-Technik, 3D-Druck
bizzl
Beiträge: 82
Registriert: 08.09.2005 18:07
Computerausstattung: AMD Athlon II X4 635
Windows 7 64 Bit
Wohnort: Nordhessen - früher : Südniedersachsen

Re: Startverzeichnis von PureBasic ermitteln

Beitrag von bizzl »

Sieh mal in der Hilfe nach unter "Compiler-Direktiven"

Ziemlich weit unten stehen Compilerkonstanten,unter anderem auch
#PB_Compiler_Home

Ist es das, was du meinst ?
derschutzhund
Beiträge: 328
Registriert: 06.06.2013 20:37
Computerausstattung: Satellite A210-19Z, Samsung Netbook N130, VPAD10

Re: Startverzeichnis von PureBasic ermitteln

Beitrag von derschutzhund »

Joo! Das läuft!

Einen hab ich noch... :cry:
Wie kann ich in eine Textdatei ein " schreiben?
Wenn ich das Anführungszeichen in einen String schreibe, dann ist das ja immer das Ende des Textes!
Ich kenne es von anderen Programmiersprachen so, dass es vor einem " ein Sonderzeichen gibt um dem Compiler zu sagen,
dass es als Zeichen ausgegeben werden soll!
Satellite A210-19Z, Samsung N130, VPAD10, WinXP, Win7, PuppyLinux, PB 5.24, 5.31. 5.70
Elektronik, Mikrocontroller, CNC-Technik, 3D-Druck
Benutzeravatar
RSBasic
Admin
Beiträge: 8047
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: Startverzeichnis von PureBasic ermitteln

Beitrag von RSBasic »

Es gibt mehrere Möglichkeiten, z.B. mit Chr(34).
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
derschutzhund
Beiträge: 328
Registriert: 06.06.2013 20:37
Computerausstattung: Satellite A210-19Z, Samsung Netbook N130, VPAD10

Re: Startverzeichnis von PureBasic ermitteln

Beitrag von derschutzhund »

Ok, das is jetzt auch klar!

Teste gerade mein NDW-Programm (near Delphi work) :D

Die Version 1 ist nun fertig und im Grunde läuft es so wie gedacht.
Also:
1. Oberfläche mit dem Formdesigner erstellen
2. eine Ereignisprozedure in die Eigenschaften rechts eintragen

3. da ich es noch nicht schaffe diesen Procedurenamen zu übergeben wechsle ich mit einer Taste in die Codedarstellung der .pbf und markiere da den Procedurenamen
4. mit Tastenfunktion mein NDW starten wobei dann:
- nach einer *.pb gesucht wird die den gleichen Namen wie die *.pbf hat.
- wird sie nicht gefunden wird sie automatisch neu erzeugt und auch gleich die Procedure eingefügt
- wird sie gefunden dann prüfe ich ob die Procedure schon vorhanden ist:
- wird die Proz. nicht gefunden erzeuge ich sie
- wird sie gefunden dann setze ich einfach die Cursorposition darauf
5. die neue oder geänderte *.pb wird neu geladen wobei der Cursor auf der Position der Procedure steht.

Jetzt ist mir ein merkwürdiger Effekt aufgefallen.
Ist die *.pb nicht geladen wird sie wie gewünscht sofort geladen was ja zeigt, dass mein Programm grundsätzlich erst mal ok ist.

Ist sie aber bereits geladen dann gibt es ein Problem.
Wenn ich bei den Editoreinstellungen "offene Dateien auf Änderungen prüfen" aktiviere dann kommt nach der Änderung eine Info und ich kann wählen das die geänderte Datei neu geladen wird.
Mache ich das nicht, bleibt die alte Version geladen.

Auch wenn ich die Datei extern mit einem Editor ändere und sie dann von Hand lade bleibt die alte Version im Editor.
Das muss irgendwie eine Sache der Einstellungen sein oder ist das ein Bug?

LG

Wolfgang
Satellite A210-19Z, Samsung N130, VPAD10, WinXP, Win7, PuppyLinux, PB 5.24, 5.31. 5.70
Elektronik, Mikrocontroller, CNC-Technik, 3D-Druck
derschutzhund
Beiträge: 328
Registriert: 06.06.2013 20:37
Computerausstattung: Satellite A210-19Z, Samsung Netbook N130, VPAD10

Re: Startverzeichnis von PureBasic ermitteln

Beitrag von derschutzhund »

Habe noch etwas experimentiert.
Wenn ich von Hand Datei - Datei neu laden anklicke dann wird die betreffende *.pb aktualisiert.
Gibt es eine Möglichkeit dies auch zu erzwingen wenn es mit der Funktion:

Code: Alles auswählen

RunProgram(#PB_Compiler_Home + "compilers/purebasic",pb_path$ + pb_name$ + ".pb","")
geladen wird?
Habe dazu keinen Parameter etc. gefunden!
Satellite A210-19Z, Samsung N130, VPAD10, WinXP, Win7, PuppyLinux, PB 5.24, 5.31. 5.70
Elektronik, Mikrocontroller, CNC-Technik, 3D-Druck
derschutzhund
Beiträge: 328
Registriert: 06.06.2013 20:37
Computerausstattung: Satellite A210-19Z, Samsung Netbook N130, VPAD10

Re: Startverzeichnis von PureBasic ermitteln

Beitrag von derschutzhund »

RSBasic hat geschrieben:Es gibt mehrere Möglichkeiten, z.B. mit Chr(34).
perfekt!
Satellite A210-19Z, Samsung N130, VPAD10, WinXP, Win7, PuppyLinux, PB 5.24, 5.31. 5.70
Elektronik, Mikrocontroller, CNC-Technik, 3D-Druck
Benutzeravatar
Bisonte
Beiträge: 2468
Registriert: 01.04.2007 20:18

Re: [gelöst] Startverzeichnis von PureBasic ermitteln

Beitrag von Bisonte »

zu dem #PB_Compiler_Home noch eine Bemerkung (weil ich es auch schonmal vergeigt hatte ;) ) :

Diese Konstante ist eine Konstante !

Also nach dem kompilieren ist der Pfad fest. Und nicht jeder hat genau die gleichen Einstellungen wie Du. Um den Pfad während
der Laufzeit zu ermitteln gibt es andere Wege, wie z.B. wenn es als externes Tool gestartet wird über die ENV Variablen.
PureBasic 6.21 (Windows x86/x64) | Windows11 Pro x64 | AsRock B850 Steel Legend Wifi | R7 9800x3D | 64GB RAM | GeForce RTX 5080 | ThermaltakeView 270 TG ARGB | build by vannicom​​
derschutzhund
Beiträge: 328
Registriert: 06.06.2013 20:37
Computerausstattung: Satellite A210-19Z, Samsung Netbook N130, VPAD10

Re: [gelöst] Startverzeichnis von PureBasic ermitteln

Beitrag von derschutzhund »

Bisonte hat geschrieben:zu dem #PB_Compiler_Home noch eine Bemerkung (weil ich es auch schonmal vergeigt hatte ;) ) :

Diese Konstante ist eine Konstante !

Also nach dem kompilieren ist der Pfad fest. Und nicht jeder hat genau die gleichen Einstellungen wie Du. Um den Pfad während
der Laufzeit zu ermitteln gibt es andere Wege, wie z.B. wenn es als externes Tool gestartet wird über die ENV Variablen.
Das ist wirklich ein guter Tipp!
In NDW verwende ich #PB_Compiler_Home um zu testen in welchem Verzeichnis PB befindet. Mit ENV komme ich nicht zurecht! Die Hilfe bringt mich nicht weiter!

Ich habe übrigens versucht den Procedurenamen mit proz$=GetClipboardText() an Stelle von WORD% aus dem Eigenschaftsfenster rechts in NDW zu lesen. Also erst mit Ctrl + C in das Clipboard kopieren und dann übernehmen. Das geht grundsätzlich. Man muss dann nichtmehr erst in den code von .pbf wechseln. Die Anzahl an Tastenkürzel bleibt allerdings gleich.
Schade, dass es keine Art Macros oder so etwas gibt. Also über ein Tastenkürzel der Reihe nach mehrere Tastenfunktionen ausführen.
Satellite A210-19Z, Samsung N130, VPAD10, WinXP, Win7, PuppyLinux, PB 5.24, 5.31. 5.70
Elektronik, Mikrocontroller, CNC-Technik, 3D-Druck
Benutzeravatar
Bisonte
Beiträge: 2468
Registriert: 01.04.2007 20:18

Re: [gelöst] Startverzeichnis von PureBasic ermitteln

Beitrag von Bisonte »

Beispiel für Kompilerpfad aus ENV Variable :

Code: Alles auswählen

PBCompiler.s = GetEnvironmentVariable("PB_TOOL_Compiler")
Compiler_Home.s = RemoveString(LCase(PBCompiler), "compilers\pbcompiler.exe")
Der komplette Pfad ist in PBCompiler.s (inkl. exe) und Compiler_Home.s ist hier das äquivalent zu #PB_Compiler_Home,
nur halt "während" der Laufzeit.

Aber auch hier gilt : Nur wenn als externes Tool von der IDE aus gestartet wird, sind die Env-Variblen zu haben.
PureBasic 6.21 (Windows x86/x64) | Windows11 Pro x64 | AsRock B850 Steel Legend Wifi | R7 9800x3D | 64GB RAM | GeForce RTX 5080 | ThermaltakeView 270 TG ARGB | build by vannicom​​
Antworten