Bug FreeXML avec gros fichier (28Mo)

Archive.
Avatar de l’utilisateur
Flype
Messages : 2431
Inscription : jeu. 29/janv./2004 0:26
Localisation : Nantes

Message par Flype »

@Thyphoon (et Fred)

J'ai testé le fichier <Mame.xml> de 34 Mo (tout de même) directement avec la lib EXPAT.
Et de cette façon, je ne rencontre pas le problème décrit dans le premier post.

Code : Tout sélectionner

;======================================================================
; 
; Dépendances:
; 
; 1. Mame.xml     [Voir indications de Thyphoon]
; 2. libexpat.lib [http://sourceforge.net/projects/expat/]
; 3. libexpat.dll [http://sourceforge.net/projects/expat/]
; 
;======================================================================

Structure XML_ATTRIBUTES
  StructureUnion
    *addr
    name.STRING
  EndStructureUnion
  value.STRING
EndStructure

ImportC "libexpat.lib"
  XML_ParserCreate(*encoding)
  XML_ParserFree(*parser)
  XML_Parse(*parser, xml.s, length.l, isFinal.l)
  XML_SetStartElementHandler(*parser, *XML_StartElementHandler)
EndImport

;======================================================================

ProcedureC my_StartElementHandler(*userData, elementName.s, *attributes.XML_ATTRIBUTES)
  
  Protected attrName.s, attrValue.s
  Protected name.s, sourceFile.s, isBios.s, runnable.s, cloneOf.s, romOf.s, sampleOf.s
  
  If elementName = "game"
    
    While *attributes\addr
      
      attrName  = *attributes\name\s
      attrValue = *attributes\value\s
      
      Select attrName
        Case "name":        name       = attrValue
        Case "sourcefile":  sourceFile = attrValue
        Case "isbios":      isBios     = attrValue
        Case "runnable":    runnable   = attrValue
        Case "cloneof":     cloneOf    = attrValue
        Case "romof":       romOf      = attrValue
        Case "sampleof":    sampleOf   = attrValue
      EndSelect
      
      *attributes + 8
      
    Wend
    
    If runnable = "yes" And cloneOf = "" And (isBios = "no" Or isBios = "")
      Debug name 
    EndIf
    
  EndIf
  
EndProcedure

If OpenFile(0, "Mame.xml")
  
  *parser = XML_ParserCreate(0)
  
  If *parser
    
    XML_SetStartElementHandler(*parser, @my_StartElementHandler())
    
    While Not Eof(0)
      
      lineStr.s = ReadString(0)
      lineLen.l = Len(lineStr)
      
      XML_Parse(*parser, lineStr, lineLen, #False)
      
    Wend
    
    XML_ParserFree(*parser)
    
  EndIf
  
  CloseFile(0)
  
EndIf
Image
Avatar de l’utilisateur
Thyphoon
Messages : 2697
Inscription : mer. 25/août/2004 6:31
Localisation : Eragny
Contact :

Re: Bug FreeXML avec gros fichier (28Mo)

Message par Thyphoon »

Merci Flype ! :D

Désolé j'avais pas vu ta réponse..j'ai pas eu de notification, et je viens tout juste de le découvrir ! :oops:
Fred
Site Admin
Messages : 2648
Inscription : mer. 21/janv./2004 11:03

Re: Bug FreeXML avec gros fichier (28Mo)

Message par Fred »

C'est sur la todo-list de fr34k. En basse priorité parce que ca ne plante pas, mais il devrait apporter une solution pour la 4.41 ou la 4.50.
Avatar de l’utilisateur
Thyphoon
Messages : 2697
Inscription : mer. 25/août/2004 6:31
Localisation : Eragny
Contact :

Re: Bug FreeXML avec gros fichier (28Mo)

Message par Thyphoon »

Fred a écrit :C'est sur la todo-list de fr34k. En basse priorité parce que ca ne plante pas, mais il devrait apporter une solution pour la 4.41 ou la 4.50.
Merci pour l'info Fred ! Je savais que le bug n'était pas tombé dans l'oubli ! :mrgreen:
Anonyme2
Messages : 3518
Inscription : jeu. 22/janv./2004 14:31
Localisation : Sourans

Re: Bug FreeXML avec gros fichier (28Mo)

Message par Anonyme2 »

Fred a écrit :C'est sur la todo-list de fr34k. En basse priorité parce que ca ne plante pas, mais il devrait apporter une solution pour la 4.41 ou la 4.50.
Hooooooooooooouuuuuuuu

4.41 beta, 2, 3, 4, 5, beta n :D
4.42 beta, 2, 3, 4, 5, beta n :D :D
4.43 beta, 2, 3, 4, 5, beta n :D :D :D
4.44 beta, 2, 3, 4, 5, beta n :D :D :D :D
4.45 beta, 2, 3, 4, 5, beta n :D :D :D :D :D
4.46 beta, 2, 3, 4, 5, beta n :D :D :D :D :D :D
4.47 beta, 2, 3, 4, 5, beta n :D :D :D :D :D :D :D
4.48 beta, 2, 3, 4, 5, beta n :D :D :D :D :D :D :D :D
4.49 beta, 2, 3, 4, 5, beta n :D :D :D :D :D :D :D :D :D
4.50 beta, 2, 3, 4, 5, beta n :D :D :D :D :D :D :D :D :D :D
Répondre