PureBasic

Forums PureBasic
Nous sommes le Dim 16/Juin/2019 0:34

Heures au format UTC + 1 heure




Poster un nouveau sujet Répondre au sujet  [ 1 message ] 
Auteur Message
 Sujet du message: LocalForage : Création d'un fichier
MessagePosté: Mar 20/Mar/2018 20:00 
En ligne
Avatar de l’utilisateur

Inscription: Dim 22/Aoû/2010 15:24
Messages: 6853
Localisation: IDF (Yvelines)
SpiderBasic utilise la technologie localForage (Fondation Mozilla) pour accéder simplement à du stockage hors ligne.

:arrow: https://github.com/localForage/localForage

L'objectif de ce code est de :
    - Créer un fichier contenant x lignes,
    - Voir le contenu du fichier,
    - Exporter le fichier.

:idea: Démonstration http://falsam.com/sbtest/localforage.html

Au lancement il n'y aura pas de fichier présent. Cliquez sur les boutons ... :
    -Add new line Ajouter une ligne.
    -Read content Lister le contenu du fichier dans la fenêtre de débogage.
    -Export Data Exporter les données dans un fichier.

:!: Nous allons utiliser les fonctions CreateFile(), ReadFile(), CloseFile(), etc .... MAIS attention, le fichier ne sera jamais crée sur le support physique de votre ordinateur ou terminal Android.

Chaque processus de création ou lecture d'un fichier fait appel à un callback afin de connaitre le status du processus en cours.
    - #PB_Status_Loaded
    - #PB_Status_Progress
    - #PB_Status_Saved
    - #PB_Status_Error

■ Code
Code:
;Local Forage
;
;SpiderBasic 2.20

EnableExplicit

Enumeration
  #File
  #FileExport
 
  #mf
  #mfReadContent
  #mfNewLine
  #mfExport
EndEnumeration

Global Buffer.s, CountLine

;Sommaire / Summay
Declare Start()

Declare DataRead()    ;Lecture contenu du fichier / Reading file content
Declare DataSave()    ;Ajouter une ligne / Add a line
Declare DataExport()  ;Exportation des données / Exporting data

Declare OnDataProcess(Status, Filename$, File, SizeRead)
Declare onDataError(FileName.s)

Start()

Procedure Start()
  OpenWindow(#mf, 0, 0, 0, 0, "Local Forage", #PB_Window_Background)
  ButtonGadget(#mfNewLine, 20, 20, 80, 24, "Add new line")
  ButtonGadget(#mfReadContent, 110, 20, 80, 24, "Read content")
  ButtonGadget(#mfExport, 200, 20, 80, 24, "Export Data")
 
  ;Lecture contenu du fichier / Reading file content
  DataRead()
 
  ;Déclencheurs
  BindGadgetEvent(#mfNewLine, @DataSave())
  BindGadgetEvent(#mfReadContent, @DataRead())
  BindGadgetEvent(#mfExport, @DataExport())
EndProcedure

Procedure DataRead()
  If ReadFile(#File, "MyFile.txt", @OnDataProcess(), #PB_LocalStorage)
  EndIf
EndProcedure

Procedure DataSave()
  CountLine + 1
  Buffer + "Line " + Str(CountLine) + #CRLF$ 
 
  If CreateFile(#File, "MyFile.txt", @OnDataProcess(), #PB_LocalStorage)
    WriteString(#File, Buffer)
    CloseFile(#File)
  EndIf
EndProcedure

Procedure DataExport()
  If CreateFile(#FileExport, "result.txt", @OnDataProcess(), #PB_LocalStorage)
    WriteString(#FileExport, Buffer) 
    ExportFile(#FileExport, "text/plain", #PB_LocalFile)
    CloseFile(#FileExport)
  EndIf
EndProcedure

Procedure OnDataProcess(Status, Filename$, File, SizeRead)
  Select Status
    Case #PB_Status_Loaded
      Buffer = ReadString(File, #PB_File_IgnoreEOL)
      CloseFile(File)
     
      Debug "Contenu actuel du fichier " + Filename$
      Debug Buffer
     
      CountLine = CountString(Buffer, #CRLF$)
     
    Case #PB_Status_Progress 
     
    Case #PB_Status_Saved
      Select File
        Case #File
          Debug "Ajout de la " + CountLine + " eme ligne effectuée"
         
        Case #FileExport
          Debug "Exportation terminée : " + CountLine + " lignes exportées"
      EndSelect
     
    Case #PB_Status_Error
      onDataError(Filename$)
     
  EndSelect
EndProcedure

Procedure OnDataError(FileName.s)
  Debug "Le fichier " + Filename + " n'est pas présent dans le local storage."
EndProcedure


Si vous ouvrez la console de votre navigateur (F12 pour Chrome) cliquez sur le lien Application puis sur le lien localForage

Image

Cliquez ensuite sur le lien keyvaluepairs pour voir le nom de votre fichier précédé de sbfs_
Exemple : sbfs_MyFile.txt

Fermez votre navigateur (ou l'onglet contenant l'application) et relancer votre application.

:!: Attention : Si vous effacez l'historique de votre navigateur, vous perdrez vos fichiers.

_________________

➽ Config PureBasic : i3, RAM 4Go, NVidia (1024 Mo), Windows 10 - PB 5.70 LTS
➽ Je papote aussi sur http://purebasic.chat & http://purebasic.chat/forum

➽ Sites personnels http://falsam.com & EasySprite.js

➽ Je ne réponds pas aux MP techniques


Haut
 Profil  
Répondre en citant le message  
Afficher les messages postés depuis:  Trier par  
Poster un nouveau sujet Répondre au sujet  [ 1 message ] 

Heures au format UTC + 1 heure


Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité


Vous ne pouvez pas poster de nouveaux sujets
Vous ne pouvez pas répondre aux sujets
Vous ne pouvez pas éditer vos messages
Vous ne pouvez pas supprimer vos messages

Rechercher:
Aller à:  
cron

 


Powered by phpBB © 2008 phpBB Group | Traduction par: phpBB-fr.com
subSilver+ theme by Canver Software, sponsor Sanal Modifiye