PureBasic 4.50 Beta 4 released!

Ankündigungen PureBasic oder die Community betreffend.
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8807
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken

Re: PureBasic 4.50 Beta 2 released!

Beitrag von NicTheQuick »

Da es sich nur um Text handelt, hier der Einfachheit halber nochmal bei nopaste.info: Neue Compiler-Funktionen
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.50 Beta 2 released!

Beitrag von ts-soft »

NicTheQuick hat geschrieben:Da es sich nur um Text handelt, hier der Einfachheit halber nochmal bei nopaste.info: Neue Compiler-Funktionen

Code: Alles auswählen

EnableExplicit

Define.s OldCompiler, NewCompiler

OldCompiler = PathRequester("Bitte den Pfad zum PB-Compiler der alten Version wählen!", GetEnvironmentVariable("ProgramFiles"))
If OldCompiler
  OldCompiler + "pbcompiler.exe"
EndIf
If Not OldCompiler Or FileSize(OldCompiler) < 0
  End
EndIf

NewCompiler =  PathRequester("Bitte den Pfad zum PB-Compiler der neuen Version wählen!", GetEnvironmentVariable("ProgramFiles"))
If NewCompiler
  NewCompiler + "pbcompiler.exe"
EndIf
If Not NewCompiler Or FileSize(NewCompiler) < 0
  End
EndIf

Define.i Compiler = RunProgram(OldCompiler, "/STANDBY", "", #PB_Program_Open | #PB_Program_Read | #PB_Program_Write | #PB_Program_Hide)
Define.i i, j

NewList OldFunctions.s()
If Compiler
  If IsProgram(Compiler)
    Repeat
    Until ReadProgramString(compiler) = "READY"
    WriteProgramStringN(Compiler, "FUNCTIONLIST")
    j = Val(ReadProgramString(Compiler))
    For i = 1 To j
      AddElement(OldFunctions())
      OldFunctions() = ReadProgramString(Compiler)
    Next
    WriteProgramStringN(Compiler, "END")
    CloseProgram(Compiler)
  EndIf
EndIf

Compiler = RunProgram(NewCompiler, "/STANDBY", "", #PB_Program_Open | #PB_Program_Read | #PB_Program_Write | #PB_Program_Hide)
NewList NewFunctions.s()
If Compiler
  If IsProgram(Compiler)
    Repeat
    Until ReadProgramString(compiler) = "READY"
    WriteProgramStringN(Compiler, "FUNCTIONLIST")
    j = Val(ReadProgramString(Compiler))
    For i = 1 To j
      AddElement(NewFunctions())
      NewFunctions() = ReadProgramString(Compiler)
    Next
    WriteProgramStringN(Compiler, "END")
    CloseProgram(Compiler)
  EndIf
EndIf

Define.i found

ForEach NewFunctions()
  ForEach OldFunctions()
    If StringField(NewFunctions(), 1, "(") = StringField(OldFunctions(), 1, "(")
      found = #True
      Break
    EndIf
  Next
  If found
    found = #False
  Else
    Debug NewFunctions()
  EndIf
Next

Define.s Savefile = SaveFileRequester("Debug Output speichern unter:", "NewFunctionslist.txt", "*.txt", 0)
If Savefile
  SaveDebugOutput(Savefile)
EndIf


Jetzt mit den neuen Funktionen noch den Compileroutput speichern und gut :wink:

// edit
Code noch ein bissel verfeinert!
Zuletzt geändert von ts-soft am 02.04.2010 23:08, insgesamt 1-mal geändert.
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
7x7
Beiträge: 591
Registriert: 14.08.2007 15:41
Computerausstattung: ganz toll
Wohnort: Lelbach

Re: PureBasic 4.50 Beta 2 released!

Beitrag von 7x7 »

Bild

.b wird unterstützt
.w wird unterstützt
.l wird unterstützt

.q wird nicht unterstützt

ja, das macht Sinn

:freak:
- alles was ich hier im Forum sage/schreibe ist lediglich meine Meinung und keine Tatsachenbehauptung
- unkommentierter Quellcode = unqualifizierter Müll
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.50 Beta 2 released!

Beitrag von ts-soft »

7x7 hat geschrieben:.q wird nicht unterstützt

ja, das macht Sinn

:freak:
Es wird nur Integer unterstützt, alles andere macht normallerweise keinen Sinn.
Nimm die 64-Bit Version wenn Du quad brauchst :twisted:

Unterstützung andere Typen würde die For/Next schleife verlangsamen, so das
dann ein While/Wend mit Zähler sowieso günstiger wäre.
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
7x7
Beiträge: 591
Registriert: 14.08.2007 15:41
Computerausstattung: ganz toll
Wohnort: Lelbach

Re: PureBasic 4.50 Beta 2 released!

Beitrag von 7x7 »

ts-soft hat geschrieben:Es wird nur Integer unterstützt...
seit wann soll .q kein Integer sein ? :roll:
- alles was ich hier im Forum sage/schreibe ist lediglich meine Meinung und keine Tatsachenbehauptung
- unkommentierter Quellcode = unqualifizierter Müll
Little John

Re: PureBasic 4.50 Beta 2 released!

Beitrag von Little John »

7x7 hat geschrieben:
ts-soft hat geschrieben:Es wird nur Integer unterstützt...
seit wann soll .q kein Integer sein ? :roll:
"Kein Integer" ist hier gemeint im Sinne von "Integer" als PureBasic-Variablentyp, nicht im rein mathematischen Sinn von "Integer" mit der Bedeutung "Ganzzahl".

Auf 64-Bit-Systemen sind PureBasics Integer- und Quad-Variablentypen identisch, auf 32-Bit-Systemen sind Integer-Variablen hingegen die selben wie Long-Variablen.

Gruß, Little John
Benutzeravatar
hjbremer
Beiträge: 822
Registriert: 27.02.2006 22:30
Computerausstattung: von gestern
Wohnort: Neumünster

Re: PureBasic 4.50 Beta 2 released!

Beitrag von hjbremer »

Folgendes geht nicht mehr

Code: Alles auswählen

Structure LvEdit_Memory  
 lvnr.i 
 editnr.i                     
EndStructure

With lveditmemory
   
Procedure LvEdit_1()

EndProcedure

Procedure LvEdit_2()

EndProcedure

Procedure LvEdit_3()

EndProcedure
   
EndWith   
Purebasic 5.70 x86 5.72 X 64 - Windows 10

Der Computer hat dem menschlichen Gehirn gegenüber nur einen Vorteil: Er wird benutzt
grüße hjbremer
Benutzeravatar
hjbremer
Beiträge: 822
Registriert: 27.02.2006 22:30
Computerausstattung: von gestern
Wohnort: Neumünster

Re: PureBasic 4.50 Beta 2 released!

Beitrag von hjbremer »

das geht

Code: Alles auswählen

Structure Something
  a.i
  Array MyMap.s(20)
EndStructure

x.Something

   x\MyMap(0) = "xxxxxxxxxx"
   Debug x\MyMap(0)
   
   x\MyMap(20) = "yyyyyyyyyx"
   Debug x\MyMap(20)
   
   ReDim x\MyMap(33)
   
   x\MyMap(33) = "aaaaaaaaaa"
   Debug x\MyMap(33)
   
das geht nicht

Code: Alles auswählen

Structure Something
  a.i
  Array MyMap.s(20)
EndStructure

x.Something

With x
   
   \MyMap(0) = "xxxxxxxxxx"
   Debug \MyMap(0)
   
   \MyMap(20) = "yyyyyyyyyx"
   Debug \MyMap(20)
   
   ReDim \MyMap(33)
   
   \MyMap(33) = "aaaaaaaaaa"
   Debug \MyMap(33)
   
EndWith

Purebasic 5.70 x86 5.72 X 64 - Windows 10

Der Computer hat dem menschlichen Gehirn gegenüber nur einen Vorteil: Er wird benutzt
grüße hjbremer
Benutzeravatar
Pelagio
Beiträge: 424
Registriert: 11.11.2004 17:52
Computerausstattung: AMD Ryzen 5 7600 6-Core Prozessor 3.80 GHz
16,0 GB Arbeitsspeicher
Windows 11 Pro Betriebssystem
Wohnort: Bremen

Re: PureBasic 4.50 Beta 2 released!

Beitrag von Pelagio »

Dies wiederum funktioniert:

Code: Alles auswählen

Structure Something
  a.i
  Array MyMap.s(20)
EndStructure

x.Something

With x
   \MyMap(0) = "xxxxxxxxxx"
   \MyMap(20) = "yyyyyyyyyx"
   
   ReDim x\MyMap(33)

   \MyMap(33) = "aaaaaaaaaa"
EndWith

With x
   Debug \MyMap(0)   
   Debug \MyMap(20)
   Debug \MyMap(33)
EndWith
:?
Kann es sein das es Konflikte mit den Debugger geht?
Und das ReDim scheint nicht mit With zu funktionieren!
Ohne Zeit kein Fleiß
Auf neustem Stand zu sein ist eine Kunst die nicht jeder perfektioniert [Win11Pro; PB6.20 LTS]. :allright:
Andreas21
Beiträge: 390
Registriert: 30.08.2004 09:05
Computerausstattung: Desktop
Windows 10 Pro x64
CPU: AMD Ryzen 5 2600 3.40 GHz
Ram: 16GB RAM
Grafik: NVIDA Geforce 1060
PB: 5.72 X86/X64
Wohnort: Heidelberg

Re: PureBasic 4.50 Beta 2 released!

Beitrag von Andreas21 »

ReDim geht, scheinbar hat nur der Debuger ein Problem.
Den mit MessageRequester gehts ohne Probleme.

Version PB 4.5 Beta 2 (x86)

Code: Alles auswählen

Structure Something
  a.i
  Array MyMap.s(20)
EndStructure

x.Something

With x
   \MyMap(0) = "xxxxxxxxxx"
   \MyMap(20) = "yyyyyyyyyx"
   
   ReDim \MyMap(33)
   \MyMap(33) = "aaaaaaaaaa"

   MessageRequester("",\MyMap(0))   
   MessageRequester("",\MyMap(20))
   MessageRequester("",\MyMap(33))
EndWith
Windows 10 x64 Pro - PB 5.61 X64 / x32 - PB 4.6 x32
Antworten