Page 1 sur 1

Lire un fichier texte sur le serveur

Publié : mer. 13/sept./2017 8:34
par blendman
Salut

Avec Spiderbasic, j'essaie en vain de lire le contenu de mon fichier texte, mais ça m'affiche juste un contenu vide.

Voici mon code test :

Code : Tout sélectionner


Global info1$ = "truc bidule"
Global truc

Enumeration ; gadget
  #Gad_Msg : #Gad_BtnOk
EndEnumeration

Enumeration ; menu
  #menu_ChangerInfo
  #menu_Info
  #menu_LireInfo
EndEnumeration

;{ procedures
Procedure Message(title$,text$)
  w=480 : h = 320
  OpenWindow(1,0,0,w,h,title$,#PB_Window_SystemMenu|#PB_Window_ScreenCentered)
  EditorGadget(#Gad_Msg,10,30,w-20,h-80,#PB_Editor_ReadOnly|#PB_Editor_WordWrap)
  SetGadgetText(#Gad_msg,text$)
  ButtonGadget(#Gad_BtnOk, w-100,h-40, 80,20,"OK")
EndProcedure


Procedure ReadCallback(Status, Filename$, File, Size)
  
  Select Status
    Case #PB_Status_Loaded
      ; File correctly loaded
      Debug "ok file loaded : " + Filename$ + " (" + FileProgress(0) + "%)"
      Debug "File: " + Filename$ + " - Size read: " + Size + " bytes"
      line$ = "Line : "
      While Eof(0) = 0 And NbLine < 10 
        line$ = line$ + ReadString(0) 
        Debug line$         
        NbLine+1
      Wend
      
      
      
      info1$ = line$
      CloseFile(0)
      message("Information",info1$) 
        
      Case #PB_Status_Progress
        ; File loading in progress, use FileProgress() get the current progress
        Debug "Loading file: " + Filename$ + " (" + FileProgress(0) + "%)"

      Case #PB_Status_Error
        ; File loading has failed
        Debug "Error loading file"
        
    EndSelect
    
EndProcedure
Procedure OpenFileRequesterCallback()
  If NextSelectedFile()
    Filename$ = SelectedFileName()
    ReadFile(0, SelectedFileID(), @ReadCallback(),#PB_LocalFile)
  EndIf
EndProcedure  
Procedure LoadDoc()
  Debug "ok, on lit le fichier"
   file$ = "info.txt"
   If ReadFile(0, file$, @ReadCallback())

   Else
     Debug "unable to read the file "+file$
   EndIf

  ; Filename$= OpenFileRequester("*.txt", @OpenFileRequesterCallback())
EndProcedure

; pour tester
Procedure ChangerInfos()
  
  info1$ = "machin chose"
  
EndProcedure
Procedure OpenInfos()
  
  truc + 1
  Debug info1$ +" : "+ truc
  
EndProcedure

; handle
Procedure Close_Window()
  WindowNumber = EventWindow()
  If WindowNumber > 0
    CloseWindow(WindowNumber)
  EndIf
EndProcedure
Procedure Menu_Handle()
  
  Select EventMenu()
     
    Case #menu_LireInfo
      LoadDoc()
      
    Case #menu_ChangerInfo
      ChangerInfos()
      
    Case #menu_Info
      OpenInfos()
      
  EndSelect
  
EndProcedure
Procedure Gadget_Handle()
  Select EventGadget()
    Case #Gad_BtnOk
      CloseWindow(1)
  EndSelect  
EndProcedure

;}


;{ window
ExamineDesktops()

gw = DesktopWidth(0)-50
gh = DesktopHeight(0)-50

flag = #PB_Window_Background 
info$ = "test de lecture de fichier"
OpenWindow(0, 0, 0, gw, gh, info$, flag)

CreateMenu(0, WindowID(0))
MenuTitle("Fichier")

MenuTitle("Edition")
MenuItem(#menu_ChangerInfo, "Changer infos")
MenuItem(#menu_LireInfo, "Lire infos")

MenuTitle("Affichage")

MenuTitle("Aide")
MenuItem(#menu_Info,"Infos")

OpenInfos()

BindEvent(#PB_Event_CloseWindow, @Close_Window())
BindEvent(#PB_Event_Menu, @Menu_Handle())
BindEvent(#PB_Event_Gadget, @gadget_Handle())

;}

Le contenu du fichier info.txt n'est pas important.
Sur mon "serveur", je le place juste à coté des fichier spiderbasic (spiderbasic.js, le fichier html, etc...)

Lorsque j'ouvre le menu #menu_LireInfo (Lire infos), j'ai -1% avec FileProgress(0)

Ma question :
- comment dois-je m'y prendre pour lire ce fichier texte et afficher son contenu ?

merci :)

Re: [spiderbasic] lire un fichier texte sur le serveur

Publié : mer. 13/sept./2017 13:50
par falsam
blendman a écrit : comment dois-je m'y prendre pour lire ce fichier texte et afficher son contenu ?
Comme tu l'as fait !
Voir la démo http://falsam.com/sbtest/BlendmanTest.html

Re: [spiderbasic] lire un fichier texte sur le serveur

Publié : mer. 13/sept./2017 17:31
par blendman
ok, si ça marche chez toi, c'est donc que la version de démo de spiderbasic est buguée, car c'est celle que j'utilise ;)
Car chez moi, ça ne marche pas.

Ca, c'est pour nous inciter à acheter la version complète lol.

Merci en tout cas.

Re: [spiderbasic] lire un fichier texte sur le serveur

Publié : ven. 15/sept./2017 7:36
par Cool Dji
Hello,

J'ai testé avec Demo SpiderBasic 2.0, ça fonctionne en mode compilation. C'est extra !

A+

Re: [spiderbasic] lire un fichier texte sur le serveur

Publié : sam. 16/sept./2017 10:52
par blendman
moi, ça ne marche pas avec la démo 2.00 de spiderbasic. Mais je ne pense pas que ça vienne de la démo.

le fichier texte j'ai testé l'encodage en utf8 sans bom, en ascii, etc... c'est toujours pareil :(

Vous utilisez le code que j'ai posté et ça marche chez vous sans aucun changement ??

Re: [spiderbasic] lire un fichier texte sur le serveur

Publié : sam. 16/sept./2017 12:10
par falsam
Cool Dji a écrit :Vous utilisez le code que j'ai posté et ça marche chez vous sans aucun changement ??
je n'ai fait aucun changement dans le code Purebasic.

Quand au fichier info.txt il est crée avec l'éditeur de Spiderbasic :wink: (File format : Encoding UTF8, New line CRLF)

Re: [spiderbasic] lire un fichier texte sur le serveur

Publié : sam. 16/sept./2017 22:14
par Guillot
attention les fichiers doivent etre encodées en UTF8
(pour ça j'utilise notepad++)