PureBasic 4.40 beta6

Ankündigungen PureBasic oder die Community betreffend.
Benutzeravatar
Pelagio
Beiträge: 424
Registriert: 11.11.2004 17:52
Computerausstattung: Intel Core i3-4170 CPU 3,70 GHz
8,00 GB Arbeitsspeicher
WIN 10 Pro 64 Bit Betriebssystem
Wohnort: Bremen

Re: PureBasic 4.40 beta6

Beitrag von Pelagio »

Auch mein Dank gebührt dem Team,

allerdings ist mir, da ich mich jetzt erst der Projektmöglichkeit des Programms vertraut mache, etwas aufgefallen.
Wenn ich ein Projekt öffne und Bspw. eine Datei aus einem untergeordneten Verzeichnis laden will ist dies nicht möglich, die Datei wird nicht gefunden obwohl in den Compileroptionen unter 'Kompilieren/Starten - Executable starten mit - Aktuelles Verzeichnis:' das Verzeichnis angebunden ist (Bsp.: Data\).
Allerdings: Wenn ich den Source nicht mit dem Projekt starte, wird die Datei geladen und im Debugger angezeigt.
  • E:\
    Test.pbp
    Test.pb
    ........Data\
    Test.txt

Code: Alles auswählen

If ReadFile(0, "Test.txt") 
    While Eof(0) = 0       
      Debug ReadString(0)  
    Wend
    CloseFile(0)     
  Else
    MessageRequester("Information","Konnte Datei nicht öffnen!")
EndIf
Ohne Zeit kein Fleiß
Auf neustem Stand zu sein ist eine Kunst die nicht jeder perfektioniert [Win10Pro(64); PB6.10 LTS]. :allright:
Benutzeravatar
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.11b1
HP255G8 Notebook @AMD Ryzen 5 5500U with Radeon Graphics 2.10 GHz 3.4GHz, 32GB_RAM, 3TB_SSD (Win11 Pro 64-Bit)
Kontaktdaten:

Re: PureBasic 4.40 beta6

Beitrag von Falko »

Pelagio hat geschrieben:Auch mein Dank gebührt dem Team,

allerdings ist mir, da ich mich jetzt erst der Projektmöglichkeit des Programms vertraut mache, etwas aufgefallen.
Wenn ich ein Projekt öffne und Bspw. eine Datei aus einem untergeordneten Verzeichnis laden will ist dies nicht möglich, die Datei wird nicht gefunden obwohl in den Compileroptionen unter 'Kompilieren/Starten - Executable starten mit - Aktuelles Verzeichnis:' das Verzeichnis angebunden ist (Bsp.: Data\).
Allerdings: Wenn ich den Source nicht mit dem Projekt starte, wird die Datei geladen und im Debugger angezeigt.
  • E:\
    Test.pbp
    Test.pb
    ........Data\
    Test.txt

Code: Alles auswählen

If ReadFile(0, "Test.txt") 
    While Eof(0) = 0       
      Debug ReadString(0)  
    Wend
    CloseFile(0)     
  Else
    MessageRequester("Information","Konnte Datei nicht öffnen!")
EndIf
Wie meinst du das mit dem Data? Schreibst du es \Data\Test.txt oder Data\Test.txt?
Ich hab's jetzt nicht getestet. Die Arbeit ruft mal wieder.

Gruß Falko
Bild
Win11 Pro 64-Bit, PB_6.11b1
Benutzeravatar
Pelagio
Beiträge: 424
Registriert: 11.11.2004 17:52
Computerausstattung: Intel Core i3-4170 CPU 3,70 GHz
8,00 GB Arbeitsspeicher
WIN 10 Pro 64 Bit Betriebssystem
Wohnort: Bremen

Re: PureBasic 4.40 beta6

Beitrag von Pelagio »

Hallo Falko,

Ich habe es folgendermaßen gemeint:
In einem Verzeichnis habe ich zwei Dateien, Test.pbp und Test.pb. In diesem Verzeichnis liegt auch noch ein Unterverzeichnis, Data genannt (kann auch jeden anderen Namen haben) in dem eine Textdatei (Beispiel: Test.txt) liegt die ich auslesen möchte. Das Verzeichnis habe ich mit der IDE als Aktuelles Verzeichnis gekennzeichnet so das automatisch 'Data\' eingetragen wurde. In diesem Fall würde die Textdatei nicht gelesen werden.
Würde ich jetzt per Hand 'E:\Data\' eintragen so würde die Textdatei gelesen, allerdings würde beim Neustart des Projektes wieder 'Data\' im Aktuellen Verzeichnis stehen und ich könnte die Textdatei wiederum nicht auslesen.
Dies Problem liegt aber nur vor wenn ich das Projekt, in dem die Datei 'Test.pb' eingebunden ist, lade.
Würde ich die Datei 'Test.pb' als reine PB Datei laden so würde das Problem nicht auftreten.
Ohne Zeit kein Fleiß
Auf neustem Stand zu sein ist eine Kunst die nicht jeder perfektioniert [Win10Pro(64); PB6.10 LTS]. :allright:
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

Re: PureBasic 4.40 beta6

Beitrag von ts-soft »

@Pelagio
Einfach mal das aktuelle Verzeichnis auf den richtigen Pfad setzen. Merkwürdigerweise denkt jeder,
das der Programpfad und das aktuelle Verzeichnis automatisch übereinstimmen. Dies ist nicht immer
der Fall. Relative Pfade kann man erst nutzen, nachdem man den Pfad mit
Setcurrentdirectory korrekt selber gesetzt hat. Alles andere ist ein Glücksspiel mit 99% erfolgschance,
wobei das eine Prozent trotzdem beachtet werden sollte. Ausserdem sollte man evtl. beachten, das
die Exe im Tempordner erstellt wird.

Gruß
Thomas
Benutzeravatar
Pelagio
Beiträge: 424
Registriert: 11.11.2004 17:52
Computerausstattung: Intel Core i3-4170 CPU 3,70 GHz
8,00 GB Arbeitsspeicher
WIN 10 Pro 64 Bit Betriebssystem
Wohnort: Bremen

Re: PureBasic 4.40 beta6

Beitrag von Pelagio »

@ts-soft,

das ist mir soweit bekannt allerdings wird das aktuelle Verzeichnis über das Projekt nicht vollständig gespeichert, jedenfalls nicht wenn es sich um ein Unterordner handelt und zweitens funktioniert es wenn man nicht im Projekt arbeitet. Und wie gesagt der relative Pfad wird von PBP erzeugt und wenn ich auch den vollständigen Pfad manuell eingebe, speichert PBP nur den relativen Pfad. Um nochmal klar zu stellen, wenn man kein Projekt benutzt funktioniert es, immer.
Im Augenblick ist es also so, wenn ich ein Projekt lade, gehe ich in den Optionen auf das aktuelle Verzeichnis und gebe manuell den Vollständigen Pfad ein: Danach kann ich ganz normal das Programm ausprobieren. Beim nächsten Laden ist es wieder das gleiche Spiel.
Ohne Zeit kein Fleiß
Auf neustem Stand zu sein ist eine Kunst die nicht jeder perfektioniert [Win10Pro(64); PB6.10 LTS]. :allright:
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

Re: PureBasic 4.40 beta6

Beitrag von ts-soft »

Es ist doch egal, ob es als source geht und als projekt nicht, setze im programm den pfad selber und es wird
immer gehen, später auch beim user, wenn der es zum beispiel in einer console startet ohne den pfad vorher zu wechseln.
Es ist ausserdem vollkommen korrekt, das im projektverzeichnis alles relativ gespeichert ist, ansonsten wäre eine weitergabe / ein verschieben ja nicht möglich.

Immer wieder dasselbe Thema, weil jeder erwartet das CurrentDirectory von irgendwem gesetzt sein muß :mrgreen:
Der Explorer setzt es bei Doppelklick, beim Doppelklick auf Source wirds auch gesetzt, bzw. evtl. von der IDE gesetzt aber darauf sollte man sich niemals verlassen. Mach es richtig und diese Problem wird nie wieder eins sein, egal ob oder wie der Source, das Projekt oder die Exe gestartet wird.
Der Fehler tritt übrigens meist erst beim Anwender auf, der den Fehler aber seltenst genau beschreiben kann.

Aber ich hab langsam keine lust mehr das ganze zu erklären :wink:

Gruß
Thomas
Benutzeravatar
Pelagio
Beiträge: 424
Registriert: 11.11.2004 17:52
Computerausstattung: Intel Core i3-4170 CPU 3,70 GHz
8,00 GB Arbeitsspeicher
WIN 10 Pro 64 Bit Betriebssystem
Wohnort: Bremen

Re: PureBasic 4.40 beta6

Beitrag von Pelagio »

@ts-soft,

ich verstehe schon das es Dich nervt, allerdings habe ich auch das Gefühl das Du das Problem nicht richtig verstanden hast. Es ist ja auch kein wirkliches Problem, höchstens unlogisch in der IDE Philosophie.
Da ich das Problem kenne und damit leben kann werde ich hiermit meine Frage diesbezüglich nicht weiter relativieren um Dich nicht um deinen Schlaf zu bringen, obwohl ich glaube das, wenn mehrere mit dem Projekt arbeiten, die Frage sicherlich wieder auftauchen wird. Ich hoffe nur besser formuliert als ich es konnte.
:praise:
Ohne Zeit kein Fleiß
Auf neustem Stand zu sein ist eine Kunst die nicht jeder perfektioniert [Win10Pro(64); PB6.10 LTS]. :allright:
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

Re: PureBasic 4.40 beta6

Beitrag von ts-soft »

Ist nicht unlogisch in der IDE, das Problem exisitiert generell taucht aber nur in ca. 1% aller Fälle auf und sollte deshalb grundsätzlich selber gehändelt werde.
In den Compileroptionen am besten "Temporäres Executable im Quellcode-Verzeichnis erstellen" anhaken und
im Source ziemlich am anfang folgende Zeile:

Code: Alles auswählen

SetCurrentDirectory(GetPathPart(ProgramFilename()))
Und schon wird alles unter allen Umständen (ausser bei Fehlern im Source :mrgreen: ) funktionieren, auch beim Nachbarn!

Man sollte niemals erwarten, daß das aktuelle Verzeichnis und das Verzeichnis des Programmes übereinstimmen und deshalb vor Nutzung von relativen Pfaden immer Sicherstellen, das dies übereinstimmt.

Das Problem ist, das diese beiden Verzeichnisse meist automatisch übereinstimmen, so das jeder denkt es wäre ein Fehler wenn dem nicht so ist. Es ist kein Fehler wenn dem nicht so ist, weils in der Praxis auch nicht immer so ist!

Ich hoffe jetzt hast Du es jetzt verstanden :wink:

Gruß
Thomas

// edit:
selbst wenn Freak da noch was ändern sollte ist mein obiges beschiebenes Vorgehn erforderlich, weils einfach immer erforderlich ist wenn man oder das projekt oder egal was einen relativen pfad nutzt.
Benutzeravatar
Kiffi
Beiträge: 10621
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: PureBasic 4.40 beta6

Beitrag von Kiffi »

@freak: Es wäre schön, wenn Du uns von offizieller Seite bestätigen
würdest, ob es sich bei der von Kai und mir gemeldeten Antivirus-
Meldung um einen Fehlalarm handelt. Vorher kann und will ich die Beta 6
nicht installieren und testen.

Grüße ... Kiffi
Hygge
c4s
Beiträge: 1235
Registriert: 19.09.2007 22:18

Re: PureBasic 4.40 beta6

Beitrag von c4s »

Kiffi hat geschrieben:@freak: Es wäre schön, wenn Du uns von offizieller Seite bestätigen
würdest, ob es sich bei der von Kai und mir gemeldeten Antivirus-
Meldung um einen Fehlalarm handelt. Vorher kann und will ich die Beta 6
nicht installieren und testen.
:shock:
Was soll es denn sonst sein außer ein Fehlalarm. Ich denke Freak, Fred und Co. sind vertrauenswürdig genug, dass man es auch ohne "offizielle Bestätigung" installieren und testen kann...
"Menschenskinder, das Niveau dieses Forums singt schon wieder!" — GronkhLP ||| "ich hogffe ihr könnt den fehle endecken" — Marvin133 ||| "Ideoten gibts ..." — computerfreak ||| "Jup, danke. Gruss" — funkheld
Antworten