Seite 4 von 4

Re: Module für PureBasic 5.2x LTS

Verfasst: 22.05.2014 19:17
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)

Re: Module für PureBasic 5.2x LTS

Verfasst: 19.06.2014 11:53
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

Re: Module für PureBasic 5.2x LTS

Verfasst: 25.07.2014 11:20
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.

Re: Module für PureBasic 5.2x LTS

Verfasst: 04.03.2015 18:17
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)

Re: Module für PureBasic 5.2x LTS

Verfasst: 28.06.2015 16:36
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

Re: Module für PureBasic 5.2x LTS

Verfasst: 22.03.2016 12:51
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

Re: Module für PureBasic 5.2x LTS

Verfasst: 22.05.2016 14:42
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

Re: Module für PureBasic 5.2x LTS

Verfasst: 14.05.2017 13:39
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