Developpez.com - Rubrique PureBasic

Le Club des Développeurs et IT Pro

SpiderBasic 2.20 beta est disponible sur votre compte

Le 2017-10-11 19:00:01, par comtois, Responsable Purebasic
Hi folks,

The new version of SpiderBasic is available on your online account and brings some nice new features, and many bug fixes !

- Database library, based on sqlite (client side)
- Added #PB_LocalStorage support for CreateFile(), OpenFile() and ReadFile() to easily create persistent files
- Added #PB_HTTP_Put, #PB_HTTP_Patch, #PB_HTTP_Delete support for HttpRequest()
- Added ExportFileMemory() to return the full file content as a memory buffer
- Added 'End' keyword support to quit an application

Have fun and don't hesitate to report anything wrong so we can have a great release !
La version 2.20 beta 1 est disponible sur votre compte.

Source de l'information
  Discussion forum
1 commentaire
  • comtois
    Responsable Purebasic
    La beta 2 est disponible sur votre compte.

    Saviez-vous que le TextGadget() permet d'afficher n'importe quel contenu html ? Belle découverte d'un utilisateur ! (source de l'information)

    Vous pouvez tester ce code

    Code :
    1
    2
    OpenWindow(0, 0, 0, 800, 450, "Méli Mélo - Bzz !", #PB_Window_ScreenCentered)
    TextGadget(1,0,0,800,450,"<iframe width='800' height='450' src='https://www.youtube.com/embed/zaIwKNyzxgY' frameborder='0' allowfullscreen></iframe>")
    ou celui ci

    Code :
    1
    2
    3
    OpenWindow(0, 0, 0, 800, 450, "Méli Mélo - Bzz !", #PB_Window_ScreenCentered)
    img.s=Chr(34)+"https://cdn.pixabay.com/photo/2017/10/12/21/22/pattern-2846017__340.jpg')"+Chr(34)
    TextGadget(1,0,0,800,450,"<iframe width='800' height='450' style='background-image:url("+img+"></iframe>")
    C'est bon à savoir !

    Autre info intéressante, pour conserver une base de données vous pouvez utiliser les nouvelles fonctions dédiées aux fichiers

    exemple de Fred (6ème messages de cette discussion)

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    Procedure CreateFileCallback(Status, Filename$, File, SizeRead)
      Select Status
        Case #PB_Status_Saved
          Debug "File saved: " + Filename$ + "(" + SizeRead + " bytes)"
         
        Case #PB_Status_Error
          Debug "Can't save the file: " + Filename$
      EndSelect
    EndProcedure
    
    
    Procedure PerformQuery(DB)
      If DatabaseQuery(DB, "Select * From SuperHeroes Where Prename = 'Peter'")
        While NextDatabaseRow(DB)
          Debug GetDatabaseString(DB, 1) + "," + GetDatabaseString(DB, 0)
        Wend
       
        FinishDatabaseQuery(DB)
      Else
        Debug "DatabaseQuery() failed: " + DatabaseError()
      EndIf 
    EndProcedure
    
    
    Procedure ReadFileCallback(Status, Filename$, File, SizeRead)
      Select Status
        Case #PB_Status_Loaded
          Debug "File loaded: " + Filename$
         
          ; Get all the file as a new buffer
          *Buffer = ExportFileMemory(File)
          Debug MemorySize(*Buffer)
         
          DB = OpenDatabase(#PB_Any, *Buffer)
          If DB
            Debug "OpenDatabase() read from file: OK"
            PerformQuery(DB)
          EndIf
         
        Case #PB_Status_Error
          Debug "Can't read the file: " + Filename$
          Debug "Creating a new database"
         
          DB = OpenDatabase(#PB_Any)
          If DB
            Debug "OpenDatabase(): OK"
           
            DatabaseUpdate(DB, "Create Table SuperHeroes (Prename TEXT, Surname TEXT)")
           
            DatabaseUpdate(DB, "Insert Into SuperHeroes (Prename, Surname) Values ('Peter', 'Parker')")
            DatabaseUpdate(DB, "Insert Into SuperHeroes (Prename, Surname) Values ('Peter', 'Jackson')")
            DatabaseUpdate(DB, "Insert Into SuperHeroes (Prename, Surname) Values ('Bruce', 'Wayne')")
            DatabaseUpdate(DB, "Insert Into SuperHeroes (Prename, Surname) Values ('Clark', 'Kent')")
           
            PerformQuery(DB)
           
            ; Now save the database to a persistent file
            ;
            *Buffer = ExportDatabaseMemory(DB)
            If CreateFile(0, "mydb.sqlite", @CreateFileCallback(), #PB_LocalStorage)
              WriteData(0, *Buffer, 0, MemorySize(*Buffer))
              CloseFile(0)
            EndIf
           
            CloseDatabase(DB)
          Else
            Debug "OpenDatabase() failed"
          EndIf
      EndSelect
    EndProcedure
    
    ; Try to read the database if already present, or it will create a new one
    ;
    ReadFile(0, "mydb.sqlite", @ReadFileCallback(), #PB_LocalStorage)
    Et Fred (l'auteur de PureBasic et SpiderBasic) complète l'information
    To understand how the database works: it's always created in memory and stay in memory. You have to use the regular file functions to persist it. You can persist any files now, not just database.
    Pour comprendre comment les bases de données fonctionnent, il faut savoir qu'elles sont toujours créées en mémoire et restent en mémoire. Il faut utiliser les fonctions dédiées aux fichiers pour rendre les bases de données persistantes.
    vous pouvez rendre persistant n'importe quel fichier, pas uniquement les bases de données.