pbAnalyzer v1.3 [Update+Source]

Anwendungen, Tools, Userlibs und anderes nützliches.
Benutzeravatar
remi_meier
Beiträge: 1078
Registriert: 29.08.2004 20:11
Wohnort: Schweiz

Beitrag von remi_meier »

@Thorium: Nein.
Du darfst dir mal diese Links durchlesen:
http://www.purebasic.fr/english/viewtop ... +functions
http://www.purebasic.fr/english/viewtop ... procedures
http://www.purebasic.fr/english/viewtop ... executable

kurz: Der Compiler arbeitet zu simpel, dafür ist er schnell.
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

Beitrag von ts-soft »

@Dige
Hab Dir mal pseudocode wegen UTF-8 erstellt, der sollte mit der IDE und
jaPBe funktionieren.

Code: Alles auswählen

Global FileMode.l = #PB_UTF8

Procedure Read(File.s)
  Protected FF.l = ReadFile(#PB_Any, File)
  If FF
    If ReadStringFormat(FF) = #PB_Ascii : FileMode = #PB_Ascii : EndIf
    
    While Not Eof(FF)
      Debug ReadString(FF, FileMode)
    Wend
    
    CloseFile(FF)
  EndIf
EndProcedure

Procedure Write(File.s)
  Protected FF.l = CreateFile(#PB_Any, File)
  If FF
    WriteStringFormat(FF, FileMode)
    WriteStringN(FF, "Bla", FileMode)
    ; ...
    CloseFile(FF)
  EndIf
EndProcedure
Sollte man IMHO grundsätzlich so, oder ähnlich machen. Ausserdem
empfielt sich UTF-8 (Unicode in jaPBe) als Standard Speicherformat, da
dieses für Unicode und ASCII executables gleichermassen geeignet ist,
ASCII aber nicht für Unicode unbedingt empfehlenswert.
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
dige
Beiträge: 1239
Registriert: 08.09.2004 08:53

Beitrag von dige »

Hab die FileMode Erkennung mal mit eingebaut.
Danke, TS für das Beispiel ...
"Papa, ich laufe schneller - dann ist es nicht so weit."
Benutzeravatar
neotoma
Beiträge: 202
Registriert: 13.09.2004 16:16
Kontaktdaten:

Beitrag von neotoma »

dige hat geschrieben:Ok, tested mal folgenden Code:

Code: Alles auswählen

Procedure NoUse1()
  txt.s = "Procedure NoUse1()"
  InitEngine3D()
EndProcedure
Procedure NoUse2()
  txt.s = "Procedure NoUse2()"
  NoUse1()
  UseJPEGImageDecoder()
EndProcedure
Procedure NoUse3()
  InitSound()
  a = $11223344
  b = $66778899
  a + b
  txt.s = "Procedure NoUse3()"
  NoUse2()
EndProcedure
Procedure InUse()
  txt.s = "Procedure InUse()"
EndProcedure
InUse()
Compiliert mit PB4.02 : 47.104 Bytes

pbAnalyzer Code:

Code: Alles auswählen

;- Created with pbAnalyzer v1.1 by DiGe
;{ Structures
;}
;{ Declares
Declare InUse (  ) 
;}
;{ Functions
Procedure InUse()
txt.s = "Procedure InUse()"
EndProcedure
InUse()
;}
Compiliert mit PB4.02 : 2.048 Bytes
Könnte es sein, das du diese größe im ersten Beispiel erreichst, indem Du den JPeg-Decoder und 3D-Lib hinzulinken läßt ?
Dann hat dies nichts mit den Prozeduren zu tun, sondern damit, wie PB ermittelt welche Libs er dazu linken muss...... (wäre auf alle fälle ein Todo für Fred !).

Ansonsten kannst Du sowas auch über CompilerIf/CompilerEndif abfangen... (hoffe ich zumindest... :) )

Mike
Alle Rechtschreibfehler unterliegen der GPL und dürfen frei kopiert und modifiziert werden.
mknjc
Beiträge: 217
Registriert: 09.09.2006 12:59

Beitrag von mknjc »

Ja aber der Compiler müsste doch erkennen das er die beiden garnicht hinzulinken muss da die Funktionen nicht aufgerufen werden.

Edit:
Ach und nicht das jemand kommt und das selbe sagt wie gnozal:
Another possibility is to use a user library instead of an include.

Userlib sind nicht so schön wie Includes da man den Programmfluss bei Includes durch Konstanten und CompilerIfs steuern kann.

Mfg mknjc
Ich nutze PureBasic 4.02 unter Linux und Windows.

Momentane Projekte:
Das geheimste aller geheimen Projekte... FPBC
Benutzeravatar
dige
Beiträge: 1239
Registriert: 08.09.2004 08:53

Beitrag von dige »

Da der PB Compiler immer noch nicht alle ungenutzten Prozeduren rausschmeisst, mein Preprozessor aber noch keine Macros unterstützt
und ich keine Lust habe das weiterzuentwickeln ...

.. viel Spaß mit dem Quellcode ( zu finden im ersten Posting ) mit der Bitte
sinnvolle Erweiterungen hier zu posten.
"Papa, ich laufe schneller - dann ist es nicht so weit."
Antworten