Module für PureBasic 5.2x LTS

Hier könnt Ihr gute, von Euch geschriebene Codes posten. Sie müssen auf jeden Fall funktionieren und sollten möglichst effizient, elegant und beispielhaft oder einfach nur cool sein.
Benutzeravatar
Thorsten1867
Beiträge: 1359
Registriert: 04.02.2005 15:40
Computerausstattung: [Windows 10 x64] [PB V5.7x]
Wohnort: Kaufbeuren
Kontaktdaten:

Re: Module für PureBasic 5.2x LTS

Beitrag von Thorsten1867 »

JSON.pbi (kenmo)

Ein Modul um JSON-Dateien zu erzeugen, ändern, speichern und laden.

Code: Alles auswählen

; JSON management
Declare.i CreateJSON(MainNodeType = #JSON_Object)
Declare.i CatchJSON(*Address, Length)
Declare.i LoadJSON(File.s)
Declare.i SaveJSON(*JSON, File.s, Format = #JSON_Default, IndentSize = 4)
Declare.i FreeJSON(*JSON)
        
; JSON node management
Declare.i CreateJSONNode(*Parent, Type = #JSON_Object, Key.s = "", *Previous = #JSON_Last)
Declare.i DeleteJSONNode(*Node)
Declare.i AddJSONString(*Parent, Text.s, Key.s = "", *Previous = #JSON_Last)
Declare.i AddJSONNumber(*Parent, Value.f, Key.s = "", *Previous = #JSON_Last)
Declare.i AddJSONBoolean(*Parent, Value, Key.s = "", *Previous = #JSON_Last)
Declare.i AddJSONNull(*Parent, Key.s = "", *Previous = #JSON_Last)
Declare.i AddJSONArray(*Parent, Key.s = "", *Previous = #JSON_Last)
Declare.i AddJSONObject(*Parent, Key.s = "", *Previous = #JSON_Last)
        
; JSON node iteration
Declare.i MainJSONNode(*JSON)
Declare.i ChildJSONNode(*Node, Index = #JSON_First)
Declare.i ParentJSONNode(*Node)
Declare.i NextJSONNode(*Node)
Declare.i PreviousJSONNode(*Node)
Declare.i NamedJSONNode(*Node, Path.s)
Declare.i FindJSONNodeByID(*Node, Text.s, Key.s = "id")
        
; JSON node access
Declare.s GetJSONNodeText(*Node)
Declare.f GetJSONNodeValue(*Node)
Declare.i GetJSONNodeInteger(*Node)
Declare.s GetJSONNodeKey(*Node)
Declare.i GetJSONChildCount(*Node)
Declare.i GetJSONNodeType(*Node)
Declare.s GetJSONTypeName(Type)
        
; JSON node modification
Declare.i SetJSONNodeText(*Node, Text.s)
Declare.i SetJSONNodeValue(*Node, Value.f)
Declare.i SetJSONNodeKey(*Node, Key.s)
Download of PureBasic - Module
Download of PureBasic - Programmes

[Windows 11 x64] [PB V6]

Bild
Benutzeravatar
RSBasic
Admin
Beiträge: 8022
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: Module für PureBasic 5.2x LTS

Beitrag von RSBasic »

PBM.pbi (Bisonte)

Selbstgebautes LZMA PackModul

Code: Alles auswählen

DeclareModule PBM
 
  ;:--------------------------------------------------------------------------
  ;:- Modul   : PB PackMemory (PBM)
  ;:- Author  : George Bisonte
  ;:- Date    : 18. June 2014
  ;:- PB      : 5.22 LTS
  ;:- OS      : Windows/Linux/MacOS
  ;:-           Use it at your own risk
  ;:-------------------------------------------------------------------------- 
 
  Declare   InitPBM()
  Declare   PackMemory(*Memory)
  Declare   UnPackMemory(*Memory)
  Declare.s GetLastErrorMSG()
 
EndDeclareModule
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Benutzeravatar
Bisonte
Beiträge: 2427
Registriert: 01.04.2007 20:18

Re: Module für PureBasic 5.2x LTS

Beitrag von Bisonte »

OWM.pbi (Bisonte) [ALL OS]

Holt und extrahiert Wetterdaten von OpenWeatherMap.org
(inkl. Beispiel)

Code: Alles auswählen

DeclareModule OWM 

  ;:--------------------------------------------------------------------------
  ;:- 
  ;:- Modul   : OpenWeatherMap (OWM)
  ;:- Author  : George Bisonte
  ;:- Date    : 18. June 2014
  ;:- PB      : 5.22 LTS
  ;:- OS      : Windows/Linux/MacOS
  ;:-           For License and more infos go to 
  ;:-           http://www.openweathermap.org/API 
  ;:- Credits : thx to ts-soft for ReceiveHTTPMemory()
  ;:--------------------------------------------------------------------------
  
  Structure WEATHERDATA
    
    dwSize.l
    
    City.s
    
    Temp.i
    minTemp.i
    maxTemp.i
    unitTemp.s
    
    Humidity.i
    unitHumidity.s
    
    Pressure.i
    unitPressure.s
    
    IconUrl.s
    Icon.i
    Code.i
    
    Text.s
    
    LastUpdate.l
    
  EndStructure
  
  Declare GetWeatherData(City.s, *Weather.WEATHERDATA)
  
EndDeclareModule
NACHTRAG : Leider hat OpenWeatherMap seine Lizenzbedingungen geändert. Somit funktioniert dieser Code nicht mehr.
Zuletzt geändert von Bisonte am 09.11.2015 01:54, insgesamt 1-mal geändert.
PureBasic 6.04 LTS (Windows x86/x64) | Windows10 Pro x64 | Asus TUF X570 Gaming Plus | R9 5900X | 64GB RAM | GeForce RTX 3080 TI iChill X4 | HAF XF Evo | build by vannicom​​
Benutzeravatar
Thorsten1867
Beiträge: 1359
Registriert: 04.02.2005 15:40
Computerausstattung: [Windows 10 x64] [PB V5.7x]
Wohnort: Kaufbeuren
Kontaktdaten:

Re: Module für PureBasic 5.2x LTS

Beitrag von Thorsten1867 »

GetHTTPFile.pbi
PB V5.3x
Windows only

Mit diesem Modul kann man:
  • Dateien auf die Festplatte herunterladen
  • Dateien direkt in den Speicher herunterladen
  • Dateien im Hintergrund herunterladen (Hauptfenster bekommt dann eine Message)
  • Redirects benutzen
  • Proxys benutzen (wenn der IE für Internet richtig konfiguriert ist)
Download of PureBasic - Module
Download of PureBasic - Programmes

[Windows 11 x64] [PB V6]

Bild
Benutzeravatar
Sicro
Beiträge: 955
Registriert: 11.08.2005 19:08
Kontaktdaten:

Re: Module für PureBasic 5.2x LTS

Beitrag von Sicro »

NetworkManager.pbi
Windows, Linux, Mac

Vereinfacht das Senden und Empfangen von Strings, Binärdaten und Dateien.

Code: Alles auswählen

DeclareModule NetworkManager
  
  Enumeration DataType
    #DataType_DataHeader
    #DataType_String
    #DataType_Binary
    #DataType_File
  EndEnumeration
 
  Enumeration EventType
    #Event_DataHeaderReceived           
    #Event_DataHeaderReceivingInProgress
    #Event_DataHeaderReceivingTimeOut
    #Event_BinaryDataReceived
    #Event_BinaryDataReceivingInProgress
    #Event_BinaryDataReceivingTimeOut
    #Event_StringReceived
    #Event_StringReceivingInProgress
    #Event_StringReceivingTimeOut
    #Event_StringReceivingError
    #Event_ClientConnected
    #Event_ClientDisconnected
  EndEnumeration
 
  Declare.s GetDataTypeAsString(DataType.i)
  Declare.i CreateServer(Port.i, IPv6.i=#False, BindedIP.s="")
  Declare   CloseServer(Server.i)
  Declare.i OpenClient(ServerAdress.s, Port.i, IPv6.i=#False, TimeOut.i=60000, LocalIP.s="", LocalPort=0)
  Declare   CloseClient(Client.i)
  Declare.i ServerSendString(Server.i, Client.i, String.s)
  Declare.i ServerSendBinaryData(Server.i, Client.i, *Memory, MemorySize.i)
  Declare.i ServerSendFile(Server.i, Client.i, FilePath.s, FileName.s = "")
  Declare.i ClientSendString(Client.i, String.s)
  Declare.i ClientSendBinaryData(Client.i, *Memory, MemorySize.i)
  Declare.i ClientSendFile(Client.i, FilePath.s, FileName.s = "")
  Declare   ServerReceiveDataHandler(AddresseOfProcedure.i)
  Declare   ClientReceiveDataHandler(AddresseOfProcedure.i)
  Declare   FreeServerClientStringBuffer(Server.i, Client.i)
  Declare   FreeClientStringBuffer(Client.i)
 
EndDeclareModule

Procedure ServerCallback(EventServer.i, EventClient.i, Event.i, Param1.i, Param2.i, Param3.q, Param4.q, Param5.q)
  ;                                                                         Param1 (Integer)           Param2 (Integer)          Param3 (Quad)            Param4 (Quad)            Param5 (Quad)
  ; #Event_DataHeaderReceived            : EventServer, EventClient, Event, DataType,                  AddresseOfFileNameString, DataSize,                0,                       0
  ; #Event_DataHeaderReceivingInProgress : EventServer, EventClient, Event, 0,                         0,                        CountOfAllReceivedBytes, HeaderSize,              0
  ; #Event_BinaryDataReceived            : EventServer, EventClient, Event, DataType,                  BufferStartAddresse,      BufferDataLength,        DataSize,                0
  ; #Event_BinaryDataReceivingInProgress : EventServer, EventClient, Event, DataType,                  BufferStartAddresse,      BufferDataLength,        CountOfAllReceivedBytes, DataSize
  ; #Event_StringReceived                : EventServer, EventClient, Event, StringBufferStartAddresse, 0,                        DataSize,                0,                       0
  ; #Event_StringReceivingInProgress     : EventServer, EventClient, Event, 0,                         0,                        CountOfAllReceivedBytes, DataSize,                0
  ; #Event_StringReceivingError          : EventServer, EventClient, Event, 0,                         0,                        0,                       0,                       0
  ; #Event_ClientConnected               : EventServer, EventClient, Event, 0,                         0,                        0,                       0,                       0
  ; #Event_ClientDisconnected            : EventServer, EventClient, Event, 0,                         0,                        0,                       0,                       0
EndProcedure

Procedure ClientCallback(EventClient.i, Event.i, Param1.i, Param2.i, Param3.q, Param4.q, Param5.q)
  ;                                                            Param1 (Integer)           Param2 (Integer)          Param3 (Quad)            Param4 (Quad)            Param5 (Quad)
  ; #Event_DataHeaderReceived            : EventClient, Event, DataType,                  AddresseOfFileNameString, DataSize,                0,                       0
  ; #Event_DataHeaderReceivingInProgress : EventClient, Event, 0,                         0,                        CountOfAllReceivedBytes, HeaderSize,              0
  ; #Event_BinaryDataReceived            : EventClient, Event, DataType,                  BufferStartAddresse,      BufferDataLength,        DataSize,                0
  ; #Event_BinaryDataReceivingInProgress : EventClient, Event, DataType,                  BufferStartAddresse,      BufferDataLength,        CountOfAllReceivedBytes, DataSize
  ; #Event_StringReceived                : EventClient, Event, StringBufferStartAddresse, 0,                        DataSize,                0,                       0
  ; #Event_StringReceivingInProgress     : EventClient, Event, 0,                         0,                        CountOfAllReceivedBytes, DataSize,                0
  ; #Event_StringReceivingError          : EventClient, Event, 0,                         0,                        0,                       0,                       0
EndProcedure
Bild
Warum OpenSource eine Lizenz haben sollte :: PB-CodeArchiv-Rebirth :: Pleasant-Dark (Syntax-Farbschema) :: RegEx-Engine (kompiliert RegExes zu NFA/DFA)
Manjaro Xfce x64 (Hauptsystem) :: Windows 10 Home (VirtualBox) :: Neueste PureBasic-Version
Benutzeravatar
RSBasic
Admin
Beiträge: 8022
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: Module für PureBasic 5.2x LTS

Beitrag von RSBasic »

Modul für libTIFF (lesen / schreiben) (Sicro)

Code: Alles auswählen

DeclareModule TIFF
  EnableExplicit
 
  Declare.i Init(LibraryPath$)
  Declare.s GetLIBVersion()
  Declare.i ReadImage(ImagePath$)
  Declare.i WriteImage(Image.i, ImagePath$, UseAlpha.i=#True, UseDeflateCompression.i=#True)
  Declare   Free()
EndDeclareModule
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Benutzeravatar
Sicro
Beiträge: 955
Registriert: 11.08.2005 19:08
Kontaktdaten:

Re: Module für PureBasic 5.2x LTS

Beitrag von Sicro »

ProgramParameterParser.pbi
Windows, Linux, Mac

Vereinfacht die Verarbeitung der Parameter des Programms.

Code: Alles auswählen

DeclareModule ProgramParameterParser
  Declare.i IsSet(LongName$, ShortName$="")
  Declare.s GetValue(LongName$, ShortName$="", DefaultValue$="", AllowMultiSetValue=#False)
EndDeclareModule
Bild
Warum OpenSource eine Lizenz haben sollte :: PB-CodeArchiv-Rebirth :: Pleasant-Dark (Syntax-Farbschema) :: RegEx-Engine (kompiliert RegExes zu NFA/DFA)
Manjaro Xfce x64 (Hauptsystem) :: Windows 10 Home (VirtualBox) :: Neueste PureBasic-Version
Benutzeravatar
Bisonte
Beiträge: 2427
Registriert: 01.04.2007 20:18

Re: Module für PureBasic 5.2x LTS

Beitrag von Bisonte »

cwmove.pbi (Bisonte) [ALL OS]

Rahmenloses Fenster per Canvas und Maus bewegen (API Ersatz von Windows für alle OS)
(inkl. Beispiel)

Code: Alles auswählen

DeclareModule CWMove
  Declare.i RegisterWMove(Gadget) ; Registriert ein Canvas zur Mausbewegung
  Declare.i FreeWMove(Gadget)      ; Das Canvas wird nicht mehr zur Fensterbewegung eingesetzt. (UnbindGadgetEvent)
EndDeclareModule
PureBasic 6.04 LTS (Windows x86/x64) | Windows10 Pro x64 | Asus TUF X570 Gaming Plus | R9 5900X | 64GB RAM | GeForce RTX 3080 TI iChill X4 | HAF XF Evo | build by vannicom​​
Antworten