PB Compilerversion ermitteln in Unicode Exe

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Bisonte
Beiträge: 2468
Registriert: 01.04.2007 20:18

PB Compilerversion ermitteln in Unicode Exe

Beitrag von Bisonte »

Hallo.

Ich hab da mal wieder ein Problem ...

Ich habe folgenden Code um den Versionsstring der "pbcompiler.exe" (hier jetzt unter Windows) auszulesen.

Code: Alles auswählen

EnableExplicit

Procedure.s GetCompilerVersion(File.s = "")
  Protected Compiler, result.s
  If File <> ""
    CompilerSelect #PB_Compiler_OS
      CompilerCase #PB_OS_Windows
        Compiler = RunProgram(File, "/VERSION", "", #PB_Program_Open | #PB_Program_Read | #PB_Program_Write | #PB_Program_Hide)
      CompilerDefault
        Compiler = RunProgram(File, "--version", "", #PB_Program_Open | #PB_Program_Read | #PB_Program_Write | #PB_Program_Hide)
    CompilerEndSelect
    If Compiler
      result = StringField(ReadProgramString(Compiler), 1, #TAB$)
      WriteProgramStringN(Compiler, "END")
      CloseProgram(Compiler)
    EndIf
  EndIf
  ProcedureReturn result
EndProcedure

Debug GetCompilerVersion("D:\PureBasic\x64\Compilers\pbcompiler.exe")
Als ASCII Kompilat treten hier keine Probleme auf.
Wenn ich nun aber ein Unicode Kompilat erstelle, kommt nur noch Müll...

Wie bekomme ich in einem Unicode Kompilat nun einen vernünftigen Versionsstring ?
Anscheinend ist die Ausgabe des Compilers nur in ASCII (wegen der Console ?) verfügbar...
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​​
Benutzeravatar
Shardik
Beiträge: 746
Registriert: 25.01.2005 12:19

Re: PB Compilerversion ermitteln in Unicode Exe

Beitrag von Shardik »

Bisonte hat geschrieben:Wie bekomme ich in einem Unicode Kompilat nun einen vernünftigen Versionsstring ?
Einfach

Code: Alles auswählen

  If #PB_Unicode
    result = PeekS(@result, -1, #PB_UTF8)
  EndIf
vor ProcedureReturn result einfügen.

Warum verwendest Du nicht gleich

Code: Alles auswählen

Debug #PB_Compiler_Version
Dann ist eine Unicode-Umwandlung nicht nötig.
Benutzeravatar
Bisonte
Beiträge: 2468
Registriert: 01.04.2007 20:18

Re: PB Compilerversion ermitteln in Unicode Exe

Beitrag von Bisonte »

Stimmt ... das war einfach (klatschanstirn) :oops: danke.

Die Konstante fällt aus, da ich den kompletten String brauche ...
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