LocalForage : Création d'un fichier
Publié : mar. 20/mars/2018 20:00
SpiderBasic utilise la technologie localForage (Fondation Mozilla) pour accéder simplement à du stockage hors ligne.
https://github.com/localForage/localForage
L'objectif de ce code est de :
Au lancement il n'y aura pas de fichier présent. Cliquez sur les boutons ... :
Chaque processus de création ou lecture d'un fichier fait appel à un callback afin de connaitre le status du processus en cours.
Si vous ouvrez la console de votre navigateur (F12 pour Chrome) cliquez sur le lien Application puis sur le lien localForage
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.
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.
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.
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 : Tout sélectionner
;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
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.