Calificación:
  • 5 voto(s) - 4.2 Media
  • 1
  • 2
  • 3
  • 4
  • 5

[Ayuda] Conversor de formato PC Fútbol a entendible y de formato entendible a PC Fútbol
#1

Hola a todos.

Estoy intentando hacer una aplicación que pueda hacer un dump de los jugadores que aparecen en el archivo dbdat/EQ022022.PKF.

He visto que la mayoría usa el archivo PCF.map (hay enlaces al archivo en este foro).

Como no tengo acceso a Windows (uso Linux + Wine para jugar al PCF6) y por lo tanto, al editor que usáis, pues he tenido que hacer un script:

No puedes ver enlaces como invitado. Regístrate o conectate para verlo.

que es capaz de traducir el fichero binario (entero) a formato entendible de esta forma:

Código:
cat ../dbdat/EQ022022.PKF | ./Translate.hs

(el código va más rápido si es compilado)

Una cosa que se ve a primera vista, es que el archivo PCF.map no es completo, y por lo que solo se pueden divisar, los textos son correctos menos las tildes (a partir de 0xC0, 192 decimal, no hay ningun byte asignado).

Me pregunto si hay alguien que tenga esta información?

Por cierto, también he notado "mucho secretismo" con el código y las herramientas. Yo como fiel defensor del código abierto y siendo mienbro de la FSF, todo lo que haga, se hará público y para el disfrute de toda la comunidad !!! :)
Responder
#2

No hay ningún secretismo, todo lo que sabemos está en tutoriales e incluso el código fuente de mi editor estuvo muchísimo tiempo disponible para descargar directamente desde el foro. Ahora no está pero a todo el que lo solicita se lo envío avisando primero que es una mierda de código y necesita rehacerse desde cero xD.

El map que dices es heredado de la época de PCFSite. Si quieres puedo pasarte el método que uso en el editor para hacer la transformación que creo recordar que llega hasta el 255 (lo digo de memoria)


Enviado desde mi iPhone utilizando Tapatalk
Responder
#3

(16-08-2018, 18:49)Pablinho escribió: No puedes ver enlaces como invitado. Regístrate o conectate para verlo.No hay ningún secretismo, todo lo que sabemos está  en tutoriales e incluso el código fuente de mi editor estuvo muchísimo tiempo disponible para descargar directamente desde el foro. Ahora no está pero a todo el que lo solicita se lo envío avisando primero que es una mierda de código y necesita rehacerse desde cero xD.

Todo código después de un periodo de 6 meses tiende a ser una mierda xD (es una Ley Universal)

(16-08-2018, 18:49)Pablinho escribió: No puedes ver enlaces como invitado. Regístrate o conectate para verlo.El map que dices es heredado de la época de PCFSite. Si quieres puedo pasarte el método que uso en el editor para hacer la transformación que creo recordar que llega hasta el 255 (lo digo de memoria)

De acuerdo :)

Como hace años que no uso foros, me puedes mandar el pedazo de código como privado no? Si no, por privado ya te doy mi correo electrónico.
Responder
#4

(16-08-2018, 18:49)Pablinho escribió: No puedes ver enlaces como invitado. Regístrate o conectate para verlo.Si quieres puedo pasarte el método que uso en el editor para hacer la transformación que creo recordar que llega hasta el 255 (lo digo de memoria)

He mirado un poco por el foro y he dado con Editor_PCF2001.rar:

No puedes ver enlaces como invitado. Regístrate o conectate para verlo.

que es una aplicación Java almacenada en un archivo JAR. He conseguido extraer el código del susodicho archivo y que tiene las dos siguientes funciones:

Código:
public String convCadenaAsciiPCF(int[] cadena)
public int[] convCadenaPCFAscii(String cadena)

He implementado el algoritmo solo usando bytes, y me dado cuenta de que la dos funciones son bijectivas, y por lo tanto equivalentes. La función sería la siguiente:

Código:
module Data.PCFutbol.Byte.Rotate
 ( bijective
 ) where

--------------------------------------------------------------------------------

import           Data.Bits
   ( (.&.)
   )
import           Data.Word
   ( Word8
   )

--------------------------------------------------------------------------------

bijective :: Word8 -> Word8

--------------------------------------------------------------------------------

bijective b
 | 032  >  b = if b .&. 01 == 0 then b + 97 else b + 95
 | 064  >  b = if b .&. 01 == 0 then b + 33 else b + 31
 | 096  >  b = if b .&. 01 == 0 then b - 31 else b - 33
 | 128  >  b = if b .&. 01 == 0 then b - 95 else b - 97
 | 160  >  b = if b .&. 01 == 0 then b + 97 else b + 95
 | 192  >  b = if b .&. 01 == 0 then b + 33 else b + 31
 | 224  >  b = if b .&. 01 == 0 then b - 31 else b - 33
 | otherwise = if b .&. 01 == 0 then b - 95 else b - 97

que cumple con la propiedad:

Código:
#!/usr/bin/env stack
{- stack
  --resolver lts-12.0
  --install-ghc
  script
  --package bytestring
  --package hspec
  --package QuickCheck
  --ghc-options -threaded
  --ghc-options -Werror
  --ghc-options -Wall
  --
-}

--------------------------------------------------------------------------------

module Spec (main) where

--------------------------------------------------------------------------------

import           Data.Word
   ( Word8
   )
import           Test.Hspec
   ( describe
   , hspec
   , it
   )
import           Test.QuickCheck
   ( property
   )

import           Data.PCFutbol.Byte.Rotate
   ( bijective
   )

--------------------------------------------------------------------------------

main
 :: IO ()

--------------------------------------------------------------------------------

main = hspec $
 do
   describe ("PC Fútbol Byte Rotate") $
     do
       it ("(bijective . bijective) byte == byte") $
         property bijection
   where
     bijection :: Word8 -> Bool
     bijection =
       \ b -> (bijective . bijective) b == b

Output de ejecutar el test de propiedad:
Código:
PC Fútbol Byte Rotate
 (bijective . bijective) byte == byte
   +++ OK, passed 100 tests.

Finished in 0.0026 seconds
1 example, 0 failures

Sobre lo de las tildes, me he dado cuenta de que al ser una lista de bytes, pues el texto es almacenado como single byte y no multiple byte (UTF-8).

Ahora supongo que ya podré sacar datos (miraré un poco más en el código de tu proyecto (Editor_PCF2001) a ver como extraes cosas, y en un futuro, posiblemente también mirare lo de actualizar.

Gracias por tu respuesta, sin la cual aún estaría dando tumbos good.gif
Responder
#5

Por fin he tenido un poco de tiempo para mirar lo de conseguir los datos más actuales de los jugadores del FUT de FIFA (EA Sports). El código es el siguente:

Código:
#!/usr/bin/env stack
{- stack
  --resolver lts-12.0
  --install-ghc
  script
  --ghc-options -Werror
  --ghc-options -Wall
  --package aeson
  --package bytestring
  --package http-client
  --package http-client-tls
  --package http-types
  --package split
  --package text
  --
-}

--------------------------------------------------------------------------------

{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards   #-}

--------------------------------------------------------------------------------

module Main (main) where

--------------------------------------------------------------------------------

import           Control.Monad
   ( mzero
   )
import           Data.Aeson
   ( FromJSON
   , Value (Object, String)
   , decode
   , parseJSON
   , (.:)
   )
import qualified Data.ByteString.Lazy.Char8 as L8
import qualified Data.List.Split            as Split
import           Data.Maybe
   ( catMaybes
   )
import           Data.Text
   ( unpack
   )
import           Data.Word
   ( Word16
   , Word8
   )
import           Network.HTTP.Client
   ( Manager
   , httpLbs
   , newManager
   , parseRequest
   , responseBody
   )
import           Network.HTTP.Client.TLS
   ( tlsManagerSettings
   )

--------------------------------------------------------------------------------

-- JSON to DSL

data Irrelevant = Irrelevant deriving Show

data JSON
 = JSON
 { page         :: Word16
 , totalPages   :: Word16
 , totalResults :: Word16
 , type'        :: Irrelevant
 , count        :: Word8
 , items        :: [ Item ]
 }
 deriving Show

data Item
 = Item
 { commonName                 :: String
 , firstName                  :: String
 , lastName                   :: String
 , name                       :: String
 , height                     :: Word8
 , weight                     :: Word8
 , age                        :: Word8
 , birthdate                  :: Birthdate
 , foot                       :: Foot
 , position                   :: Position
 , nation                     :: Nation
 , club                       :: Club
 , headshot                   :: Headshot
 , league                     :: Irrelevant
 , isGK                       :: Irrelevant
 , playStyle                  :: Irrelevant
 , playStyleId                :: Irrelevant
 , skillMoves                 :: Irrelevant
 , potential                  :: Irrelevant
 , weakFoot                   :: Irrelevant
 , traits                     :: Irrelevant
 , specialities               :: Irrelevant
 , atkWorkRate                :: Irrelevant
 , defWorkRate                :: Irrelevant
 , playerType                 :: Irrelevant
 , rarityId                   :: Irrelevant
 , isIcon                     :: Irrelevant
 , quality                    :: Irrelevant
 , positionFull               :: Irrelevant
 , isSpecialType              :: Irrelevant
 , contracts                  :: Irrelevant
 , fitness                    :: Irrelevant
 , rawAttributeChemistryBonus :: Irrelevant
 , isLoan                     :: Irrelevant
 , squadPosition              :: Irrelevant
 , iconAttributes             :: Irrelevant
 , itemType                   :: Irrelevant
 , discardValue               :: Irrelevant
 , id'                        :: Irrelevant
 , modelName                  :: Irrelevant
 , baseId                     :: Irrelevant
 , attributes                 :: Irrelevant
 {-
   Calculate these values based on the average from below:
   [ {"name":"fut.attribute.PAC","value":88,"chemistryBonus":[0]}
   , {"name":"fut.attribute.SHO","value":91,"chemistryBonus":[0]}
   , {"name":"fut.attribute.PAS","value":88,"chemistryBonus":[0]}
   , {"name":"fut.attribute.DRI","value":96,"chemistryBonus":[0]}
   , {"name":"fut.attribute.DEF","value":32,"chemistryBonus":[0]}
   , {"name":"fut.attribute.PHY","value":61,"chemistryBonus":[0]}
   ]
 -}
 , rating                     :: Word8
 -- PACE
 , acceleration               :: Word8
 , sprintspeed                :: Word8
 -- DRIBBLING
 , agility                    :: Word8
 , balance                    :: Word8
 , reactions                  :: Word8
 , ballcontrol                :: Word8
 , dribbling                  :: Word8
 , composure                  :: Word8
 -- SHOOTING
 , positioning                :: Word8
 , finishing                  :: Word8
 , shotpower                  :: Word8
 , longshots                  :: Word8
 , volleys                    :: Word8
 , penalties                  :: Word8
 -- DEFENDING
 , interceptions              :: Word8
 , headingaccuracy            :: Word8
 , marking                    :: Word8
 , standingtackle             :: Word8
 , slidingtackle              :: Word8
 -- PASSING
 , vision                     :: Word8
 , crossing                   :: Word8
 , freekickaccuracy           :: Word8
 , shortpassing               :: Word8
 , longpassing                :: Word8
 , curve                      :: Word8
 -- PHYSICALITY
 , jumping                    :: Word8
 , stamina                    :: Word8
 , strength                   :: Word8
 , aggression                 :: Word8
 -- GOALKEEPING
 , gkdiving                   :: Word8
 , gkhandling                 :: Word8
 , gkkicking                  :: Word8
 , gkpositioning              :: Word8
 , gkreflexes                 :: Word8
 }
 deriving Show

type Year  = Word16
type Month = Word8
type Day   = Word8
data Birthdate = Birthdate Year Month Day
 deriving Show

data Foot
 = Left
 | Right
 deriving Show

data Position
 = GK -- Goalkeeper
 | DF Defender
 | MF Midfielder
 | FW Forward
 deriving Show

data Defender
 = LWB -- Left Wing Back
 | LB  -- Left Back
 | CB  -- Centre Back
 | RB  -- Right Back
 | RWB -- Right Wing Back
 deriving Show

data Midfielder
 = LW  -- Left Wing
 | LM  -- Left Midfielder
 | CAM -- Centre Attacking Midfielder
 | CDM -- Centre Defensive Midfielder
 | CM  -- Centre Midfielder
 | RM  -- Right Midfielder
 | RW  -- Right Wing
 deriving Show

data Forward
 = LF -- Left Forward
 | CF -- Centre Forward
 | RF -- Right Forward
 | ST -- Striker
 deriving Show

data Nation = Nation String
 deriving Show

data Club = Club String
 deriving Show

data Headshot = Headshot String
 deriving Show

--------------------------------------------------------------------------------

instance FromJSON Irrelevant where
 parseJSON =
   aux pure
   where
     aux f _ = f Irrelevant

instance FromJSON JSON where
 parseJSON (Object x) =
   do
     page         <- x .: "page"
     totalPages   <- x .: "totalPages"
     totalResults <- x .: "totalResults"
     type'        <- x .: "type"
     count        <- x .: "count"
     items        <- x .: "items"
     pure JSON {..}
 parseJSON _ = mzero

instance FromJSON Item where
 parseJSON (Object x) =
   do
     commonName <- x .: "commonName"
     firstName  <- x .: "firstName"
     lastName   <- x .: "lastName"
     name       <- x .: "name"
     height     <- x .: "height"
     weight     <- x .: "weight"
     age        <- x .: "age"
     birthdate  <- x .: "birthdate"
     foot       <- x .: "foot"
     position   <- x .: "position"
     nation     <- x .: "nation"
     club       <- x .: "club"
     headshot   <- x .: "headshot"
     -- IRRELEVANT
     league                     <- x .: "league"
     isGK                       <- x .: "isGK"
     playStyle                  <- x .: "playStyle"
     playStyleId                <- x .: "playStyleId"
     skillMoves                 <- x .: "skillMoves"
     potential                  <- x .: "potential"
     weakFoot                   <- x .: "weakFoot"
     traits                     <- x .: "traits"
     specialities               <- x .: "specialities"
     atkWorkRate                <- x .: "atkWorkRate"
     defWorkRate                <- x .: "defWorkRate"
     playerType                 <- x .: "playerType"
     rarityId                   <- x .: "rarityId"
     isIcon                     <- x .: "isIcon"
     quality                    <- x .: "quality"
     positionFull               <- x .: "positionFull"
     isSpecialType              <- x .: "isSpecialType"
     contracts                  <- x .: "contracts"
     fitness                    <- x .: "fitness"
     rawAttributeChemistryBonus <- x .: "rawAttributeChemistryBonus"
     isLoan                     <- x .: "isLoan"
     squadPosition              <- x .: "squadPosition"
     iconAttributes             <- x .: "iconAttributes"
     itemType                   <- x .: "itemType"
     discardValue               <- x .: "discardValue"
     id'                        <- x .: "id"
     modelName                  <- x .: "modelName"
     baseId                     <- x .: "baseId"
     attributes                 <- x .: "attributes"
     -- STATS
     rating           <- x .: "rating"
     acceleration     <- x .: "acceleration"
     sprintspeed      <- x .: "sprintspeed"
     agility          <- x .: "agility"
     balance          <- x .: "balance"
     reactions        <- x .: "reactions"
     ballcontrol      <- x .: "ballcontrol"
     dribbling        <- x .: "dribbling"
     composure        <- x .: "composure"
     positioning      <- x .: "positioning"
     finishing        <- x .: "finishing"
     shotpower        <- x .: "shotpower"
     longshots        <- x .: "longshots"
     volleys          <- x .: "volleys"
     penalties        <- x .: "penalties"
     interceptions    <- x .: "interceptions"
     headingaccuracy  <- x .: "headingaccuracy"
     marking          <- x .: "marking"
     standingtackle   <- x .: "standingtackle"
     slidingtackle    <- x .: "slidingtackle"
     vision           <- x .: "vision"
     crossing         <- x .: "crossing"
     freekickaccuracy <- x .: "freekickaccuracy"
     shortpassing     <- x .: "shortpassing"
     longpassing      <- x .: "longpassing"
     curve            <- x .: "curve"
     jumping          <- x .: "jumping"
     stamina          <- x .: "stamina"
     strength         <- x .: "strength"
     aggression       <- x .: "aggression"
     gkdiving         <- x .: "gkdiving"
     gkhandling       <- x .: "gkhandling"
     gkkicking        <- x .: "gkkicking"
     gkpositioning    <- x .: "gkpositioning"
     gkreflexes       <- x .: "gkreflexes"
     pure Item {..}
 parseJSON _ = mzero

instance FromJSON Birthdate where
 parseJSON =
   aux pure
   where
     aux f (String x) = f $ Birthdate y m d
       where
         i = Split.splitOn "/" $ unpack x
         y = read $ i !! 2
         m = read $ i !! 0
         d = read $ i !! 1
     aux _ __________ = mzero

instance FromJSON Foot where
 parseJSON =
   aux pure
   where
     aux f (String "Left")  = f Main.Left
     aux f (String "Right") = f Main.Right
     aux _ ________________ = mzero

instance FromJSON Position where
 parseJSON =
   aux pure
   where
     aux f (String "GK")  = f $ GK
     aux f (String "LWB") = f $ DF $ LWB
     aux f (String "LB")  = f $ DF $ LB
     aux f (String "CB")  = f $ DF $ CB
     aux f (String "RB")  = f $ DF $ RB
     aux f (String "RWB") = f $ DF $ RWB
     aux f (String "LW")  = f $ MF $ LW
     aux f (String "LM")  = f $ MF $ LM
     aux f (String "CAM") = f $ MF $ CAM
     aux f (String "CDM") = f $ MF $ CDM
     aux f (String "CM")  = f $ MF $ CM
     aux f (String "RM")  = f $ MF $ RM
     aux f (String "RW")  = f $ MF $ RW
     aux f (String "LF")  = f $ FW $ LF
     aux f (String "CF")  = f $ FW $ CF
     aux f (String "RF")  = f $ FW $ RF
     aux f (String "ST")  = f $ FW $ ST
     aux _ ______________ = mzero

instance FromJSON Nation where
 parseJSON (Object x) =
   Nation <$> x .: "name"
 parseJSON _ = mzero

instance FromJSON Club where
 parseJSON (Object x) =
   Club <$> x .: "name"
 parseJSON _ = mzero

instance FromJSON Headshot where
 parseJSON (Object x) =
   Headshot <$> x .: "imgUrl"
 parseJSON _ = mzero

--------------------------------------------------------------------------------

stats :: [ Item -> Word8 ] -> Item -> Word8
stats xs i =
 fromIntegral
 $ (flip div) n
 $ sum
 $ map (fromIntegral :: Word8 -> Int)
 $ map (\f -> f i) xs
 where
   n = length xs

pac :: Item -> Word8
dri :: Item -> Word8
sho :: Item -> Word8
def :: Item -> Word8
pas :: Item -> Word8
phy :: Item -> Word8

pac =
 stats
 [ acceleration
 , sprintspeed
 ]
dri =
 stats
 [ agility
 , balance
 , reactions
 , ballcontrol
 , dribbling
 , composure
 ]
sho =
 stats
 [ positioning
 , finishing
 , shotpower
 , longshots
 , volleys
 , penalties
 ]
def =
 stats
 [ interceptions
 , headingaccuracy
 , marking
 , standingtackle
 , slidingtackle
 ]
pas =
 stats
 [ vision
 , crossing
 , freekickaccuracy
 , shortpassing
 , longpassing
 , curve
 ]
phy =
 stats
 [ jumping
 , stamina
 , strength
 , aggression
 ]

--------------------------------------------------------------------------------

-- From browser UI URL to FUT API:

fut :: String
fut =
 "https://www.easports.com/fifa/ultimate-team/api/fut/item?jsonParamObject="

url2obj :: String -> Word16 -> String
url2obj url n =
 "{" ++ aux ++ "}"
 where
   qry = (Split.splitOn "?" url) !! 1
   pms =  Split.splitOn "&" qry
   aux =
     foldl1 (\x y -> x ++ "," ++ y)
     $ map (foldl1 (\x y -> show x ++ ":" ++ show y))
     $ [ "page", show n ] : map (Split.splitOn "=") pms

--------------------------------------------------------------------------------

-- HTTP tools

get
 :: Manager -> String -> IO L8.ByteString
get manager url =
 do
   request  <- parseRequest url
   response <- httpLbs request manager
   return $ responseBody response

json
 :: Manager -> String -> IO (Maybe JSON)
json manager url =
 get manager url >>= pure . decode

api
 :: Manager -> (Word16 -> String) -> IO [ Item ]
api manager purl =
 do
   Just p01 <- json manager $ purl 1
   let rest = [ 2 .. totalPages p01 ]
   jsons <- mapM (\i -> json manager $ purl i) rest
   return $ concat $ (items p01) : (items <$> catMaybes jsons)

--------------------------------------------------------------------------------

logic :: [ Item ] -> [ String ]
logic =
 map
 $ show . (\i -> (rating i, pac i, dri i, sho i, def i, pas i, phy i, name i))

main
 :: IO ()
main =
 do
   stdin   <- getContents
   manager <- newManager tlsManagerSettings
   players <- api manager $ (fut ++) . (url2obj stdin)
   putStrLn "|ME|RI|RE|TI|DE|PA|FI|Nombre"
   mapM_ putStrLn $ logic players


el cual produce estos datos (a los que habría que transformar en formato PCFUTBOL):

Código:
|ME|RI|RE|TI|DE|PA|FI|Nombre
(94,88,95,88,35,89,61,"Messi")
(91,75,75,63,90,69,86,"Sergio Ramos")
(91,80,86,88,52,79,82,"Su\225rez")
(91,76,90,78,69,87,69,"Modri\263")
(90,68,68,49,89,59,83,"God\237n")
(90,67,80,81,70,88,59,"Kroos")
(90,49,48,19,16,27,49,"Courtois")
(90,51,50,13,18,27,57,"Oblak")
(89,44,44,16,16,30,59,"ter Stegen")
(89,86,87,84,53,80,75,"Griezmann")
(89,72,88,77,59,83,62,"Isco")
(88,94,81,85,60,84,76,"Bale")
(88,82,88,69,81,80,82,"Marcelo")
(88,82,89,80,43,85,63,"Coutinho")
(88,43,75,60,82,74,78,"Sergio Busquets")
(88,62,73,68,85,71,87,"Casemiro")
(87,54,66,60,86,63,73,"Piqu\233")
(87,62,77,83,69,86,64,"Rakiti\263")
(87,93,83,66,79,76,77,"Jordi Alba")
(87,53,51,16,17,28,55,"Navas")
(87,72,74,66,86,69,83,"Umtiti")
(86,47,76,79,69,87,66,"Parejo")
(86,84,67,45,85,57,78,"Varane")
(85,75,78,63,80,77,78,"Filipe Lu\237s")
(85,75,73,81,50,62,81,"Diego Costa")
(85,57,78,80,84,76,85,"Vidal")
(85,81,84,84,39,76,66,"Iago Aspas")
(85,69,80,72,65,85,73,"Koke")
(85,70,79,73,78,73,76,"Sa\250l")
(85,81,81,79,43,82,59,"Marco Asensio")
(84,76,77,79,34,74,71,"Benzema")
(84,56,48,15,17,32,51,"Sergio Asenjo")
(84,61,78,67,70,77,71,"Illarramendi")
(84,51,49,18,15,25,55,"Neto")
(84,90,80,81,47,72,72,"Rodrigo")
(84,77,75,61,79,76,66,"Sergi Roberto")
(84,81,79,46,80,68,78,"Carvajal")
(84,51,70,56,78,75,79,"William Carvalho")
(84,68,58,41,85,46,83,"Gim\233nez")
(83,66,72,82,53,61,82,"Aduriz")
(83,55,45,16,19,25,56,"Ad\225n")
(83,66,81,70,65,84,66,"Banega")
(83,63,70,82,44,64,75,"Willian Jos\233")
(83,74,68,39,81,59,79,"Nacho Fern\225ndez")
(83,58,63,33,84,46,76,"Savi\263")
(83,70,78,72,69,78,73,"Manu Trigueros")
(83,78,75,79,49,63,67,"Gerard Moreno")
(83,81,80,71,46,80,70,"Lucas V\225zquez")
(83,85,84,75,59,82,69,"Lemar")
(83,84,84,77,29,79,62,"Malcom")
(83,90,82,78,34,77,71,"Promes")
(82,73,79,75,42,83,53,"Joaqu\237n")
(82,35,63,60,81,65,75,"Garay")
(82,73,81,69,70,80,71,"Guardado")
(82,75,76,74,71,81,70,"Wass")
(82,57,65,43,82,61,80,"V\237ctor Ruiz")
(82,73,75,56,81,66,76,"Bartra")
(82,72,69,50,82,63,79,"Gabriel Paulista")
(82,70,81,75,66,75,62,"Rafinha")
(82,72,78,69,81,70,86,"Kondogbia")
(82,60,73,76,49,77,65,"V\225zquez")
(82,74,78,79,36,63,70,"Bacca")
(82,74,72,62,78,69,82,"Partey")
(82,44,71,58,71,69,79,"Dani Garc\237a")
(82,72,68,38,82,49,78,"Lenglet")
(82,82,72,45,81,59,79,"Hern\225ndez")
(82,48,44,20,16,34,50,"Pau L\243pez")
(82,88,80,77,39,74,69,"Gon\231alo Guedes")
(82,94,87,71,46,72,65,"Gelson Martins")
(82,69,82,71,68,74,74,"Arthur")
(82,89,84,75,36,74,58,"Demb\233l\233")
(82,68,75,65,75,70,73,"Rodri")
(81,52,77,77,73,76,79,"Ra\250l Garc\237a")
(81,63,76,76,42,85,55,"Pedro Le\243n")
(81,85,80,81,45,73,72,"Gameiro")
(81,36,71,69,76,77,69,"Bruno")
(81,73,79,71,35,80,49,"Pablo Sarabia")
(81,85,84,76,42,74,66,"Ben Yedder")
(81,77,75,76,40,75,73,"Vitolo")
(81,52,46,18,15,29,50,"Cillessen")
(81,75,69,43,80,50,82,"Murillo")
(81,76,78,79,36,56,71,"Batshuayi")
(81,51,45,18,15,27,52,"Rulli")
(81,93,74,74,42,66,78,"Williams")
(81,87,79,74,54,74,64,"Morales")
(81,66,76,70,69,74,68,"Pablo Fornals")
(81,37,64,71,78,72,74,"Iborra")
(81,75,69,43,80,50,82,"Murillo")
(80,40,45,13,13,28,42,"Moy\225")
(80,51,81,75,58,84,54,"Santi Cazorla")
(80,43,44,15,13,22,53,"Diego L\243pez")
(80,80,74,59,74,72,75,"Juanfran")
(80,52,74,73,63,82,71,"Be\241at")
(80,74,77,78,37,57,67,"\193ngel")
(80,40,44,16,17,30,59,"Kiko Casilla")
(80,77,75,71,76,77,72,"Antunes")
(80,65,73,78,51,66,79,"Stuani")
(80,74,78,78,39,81,62,"Boudebouz")
(80,75,79,69,40,83,64,"Susaeta")
(80,79,84,68,47,72,62,"Muniain")
(80,68,69,78,41,55,73,"Kike Garc\237a")
(80,78,70,68,77,68,76,"Mario Gaspar")
(80,71,73,39,75,67,79,"Hugo Mallo")
(80,62,73,76,46,64,77,"Sergi Enrich")
(80,88,81,75,30,67,66,"Muriel")
(80,72,81,75,44,76,68,"Nolito")
(80,92,77,71,36,73,61,"Cristian Tello")
(80,82,75,73,62,72,75,"Portu")
(80,82,85,68,44,74,59,"Inui")
(80,56,57,49,80,53,75,"Feddal")
(80,79,77,74,54,66,72,"Santi Mina")
(80,80,83,76,54,71,55,"Correa")
(80,84,74,78,48,64,84,"Mariano")
(80,84,78,76,32,65,65,"Toko-Ekambi")
(80,91,81,56,72,60,76,"N\233lson Semedo")
(80,72,76,70,37,75,57,"Oyarzabal")
(80,81,74,56,78,65,69,"Odriozola")
(80,76,75,73,61,79,62,"Carlos Soler")
(80,63,65,77,36,61,72,"G\243mez")
(80,73,80,72,63,78,69,"Lo Celso")
(79,61,80,78,38,59,73,"Charles")
(79,75,78,63,74,70,76,"F\225bio Coentr\227o")
(79,60,58,50,78,61,74,"Kj\230r")
(79,60,59,48,76,52,78,"Sidnei")
(79,75,66,60,78,64,79,"Mercado")
(79,86,79,71,49,73,60,"Piatti")
(79,70,72,75,45,60,71,"Kalini\263")
(79,71,75,58,75,62,82,"Coquelin")
(79,84,76,63,71,69,80,"De Marcos")
(79,60,73,71,36,78,48,"Canales")
(79,74,75,71,41,77,52,"Orellana")
(79,74,73,63,77,71,74,"Escudero")
(79,79,73,58,76,67,74,"Jaume Costa")
(79,79,74,70,59,72,64,"Borja Garc\237a")
(79,75,77,80,44,57,72,"Sergio Le\243n")
(79,75,77,76,55,79,65,"Ibai G\243mez")
(79,65,72,80,44,68,72,"Guidetti")
(79,63,75,69,71,79,67,"Campa\241a")
(79,65,71,46,81,68,73,"Mandi")
(79,55,63,61,77,59,78,"David L\243pez")
(79,51,78,64,64,73,62,"Sergi Darder")
(79,72,66,34,78,51,83,"\193lvaro")
(79,74,79,53,67,65,80,"Roque Mesa")
(79,72,66,53,78,62,80,"I\241igo Mart\237nez")
(79,77,79,71,55,78,58,"Denis Su\225rez")
(79,76,76,75,36,66,61,"Leo Baptistao")
(79,45,46,17,16,24,53,"Pacheco")
(79,86,77,60,70,72,67,"Gay\224")
(79,78,78,73,36,69,63,"Sanabria")
(79,62,74,71,64,78,68,"Granell")
(79,53,67,52,73,65,69,"Marcos Llorente")
(79,37,36,19,19,30,47,"Dmitrovi\263")
(78,49,70,60,75,68,75,"Javi Fuego")
(78,86,79,68,60,71,59,"Jes\250s Navas")
(78,62,68,62,77,61,83,"Javi Garc\237a")
(78,43,44,15,13,27,48,"Sergio")
(78,53,69,59,75,64,82,"Manu Garc\237a")
(78,74,72,63,78,64,75,"Coke")
(78,52,73,71,65,80,56,"Granero")
(78,76,75,72,74,73,72,"Lay\250n")
(78,50,66,55,77,60,78,"Daniel Carri\231o")
(78,53,63,62,78,71,63,"Iturraspe")
(78,39,45,17,16,21,55,"Herrer\237n")
(78,62,68,56,76,71,79,"Arbilla")
(78,75,72,43,74,60,76,"Piccini")
(78,34,41,15,19,28,51,"Vacl\237k")
(78,85,76,54,73,61,79,"Arias")
(78,77,76,69,26,74,57,"Januzaj")
(78,87,78,70,43,69,59,"Szymanowski")
(78,68,62,37,76,43,78,"Paulo Oliveira")
(78,67,73,57,69,68,72,"Pere Pons")
(78,81,79,72,48,72,69,"Sisto")
(78,89,71,63,70,72,72,"Mojica")
(78,84,75,63,71,64,83,"Capa")
(78,66,78,58,63,70,69,"Lobotka")
(78,71,71,62,74,66,80,"Escalante")
(78,64,76,61,65,73,62,"Dani Ceballos")
(78,74,73,77,38,61,65,"\220nal")
(78,41,42,24,18,25,50,"David Soria")
(78,70,69,39,78,47,71,"Vallejo")
(78,70,79,78,61,81,55,"Bardhi")
(78,64,70,78,34,53,56,"Loren")
(77,69,76,76,39,74,54,"Sergio Garc\237a")
(77,34,60,61,74,63,79,"Iv\225n Ramis")
(77,37,60,79,43,60,70,"Jorge Molina")
(77,48,66,61,73,69,74,"Markel Bergara")
(77,65,63,59,77,66,74,"Vermaelen")
(77,37,63,36,78,49,80,"Cabral")
(77,70,68,54,76,63,73,"Barrag\225n")
(77,65,72,67,66,71,65,"Zurutuza")
(77,70,78,71,62,73,72,"Trejo")
(77,52,69,66,75,68,83,"Diop")
(77,77,71,60,75,66,82,"Yuri Berchiche")
(77,46,47,18,19,27,53,"Roberto")
(77,35,64,66,78,58,77,"Mikel San Jos\233")
(77,39,40,17,14,29,51,"Yoel")
(77,47,54,44,76,54,74,"Espinosa")
(77,59,76,62,75,76,73,"Victor S\225nchez")
(77,71,70,52,76,68,69,"Cote")
(77,51,44,17,14,18,43,"Chichizola")
(77,52,51,32,76,48,74,"Juanpe")
(77,77,76,71,37,69,74,"P\233rez")
(77,76,77,73,35,63,62,"Juanmi")
(77,38,62,42,77,58,70,"Sergi G\243mez")
(77,64,65,48,77,57,75,"Funes Mori")
(77,33,52,35,76,46,76,"Bruno")
(77,91,78,62,69,67,75,"Aleix Vidal")
(77,78,70,65,73,67,78,"Su\225rez")
(77,73,69,69,74,70,80,"Yoku\351lu")
(77,78,75,74,53,71,67,"Cheryshev")
(77,78,74,77,42,56,71,"Roger")
(77,35,38,17,15,28,46,"Bounou")
(77,64,73,68,62,69,64,"Jozabed")
(77,53,43,18,16,25,40,"Rub\233n Blanco")
(77,83,78,69,73,63,67,"Rub\233n Pe\241a")
(77,81,80,69,28,69,47,"Boufal")
(77,55,71,61,73,64,81,"Torres")
(77,68,66,48,76,57,75,"R\250ben Vezo")
(77,75,67,39,77,54,76,"Djen\233")
(77,71,75,72,49,56,72,"Calleri")
(77,79,76,74,35,66,58,"Munir")
(77,60,69,54,75,65,80,"Vuk\269evi\263")
(77,66,69,70,62,72,63,"Joan Jord\225n")
(77,45,65,59,70,58,71,"Radoja")
(77,43,44,16,16,20,51,"\193lex Remiro")
(77,66,69,51,76,54,75,"Yeray")
(77,79,74,75,46,58,77,"Andr\233 Silva")
(77,66,59,36,75,39,78,"Gnagnon")
(77,68,77,66,67,72,66,"Shibasaki")
(77,89,78,68,46,65,70,"Ndiaye Diedhiou")
(77,93,79,70,30,63,63,"Vin\237cius J\250nior")
(77,75,77,59,72,68,74,"Rosales")
(77,39,40,17,14,29,51,"Yoel")
(76,31,71,74,38,79,51,"Ganso")
(76,89,72,74,42,64,66,"Doumbia")
(76,58,56,37,74,48,80,"Laguardia")
(76,87,78,64,43,66,55,"G\252rler")
(76,65,61,43,75,47,76,"Jordi Amat")
(76,57,68,65,71,68,70,"Tom\225s Pina")
(76,69,71,63,69,64,78,"Sergio \193lvarez")
(76,45,64,62,69,74,77,"Timor")
(76,81,78,74,45,71,64,"Sansone")
(76,60,44,20,19,25,48,"Serantes")
(76,79,71,49,72,64,78,"David Junc\224")
(76,82,73,72,38,59,63,"Rub\233n Sobrino")
(76,69,69,77,37,55,69,"De Tom\225s")
(76,78,82,71,47,69,72,"De Blasis")
(76,64,67,41,75,53,74,"Diego Llorente")
(76,92,81,70,32,61,68,"Simon")
(76,77,73,65,47,71,63,"Embarba")
(76,58,48,20,19,29,51,"Jaume")
(76,74,64,74,35,55,73,"Mata")
(76,59,69,69,57,67,76,"Eraso")
(76,62,71,76,32,53,67,"Borja Iglesias")
(76,88,76,71,41,54,75,"Boateng")
(76,80,71,66,53,67,65,"Pedraza")
(76,58,54,39,75,42,78,"Diakhaby")
(76,79,70,63,43,65,60,"Iv\225n Alejo")
(76,91,69,56,73,62,73,"Hern\225ndez")
(76,50,69,53,72,66,68,"Arambarri")
(76,29,36,13,15,25,42,"Lunin")
(76,78,76,74,37,70,76,"Braithwaite")
(76,47,69,67,69,71,70,"Recio")
(76,70,75,76,33,66,63,"Sandro")
(76,31,53,38,79,47,68,"Bonera")
(76,32,39,15,14,23,50,"Iraizoz")
(76,42,43,16,14,24,50,"Barbosa")
(76,56,47,15,17,28,58,"Andr\233s Fern\225ndez")
(76,51,43,17,15,29,50,"Iv\225n Cu\233llar")
(76,64,67,52,76,56,73,"Moreno")
(76,72,75,71,38,71,61,"El Zhar")
(76,79,78,66,41,74,63,"Kakuta")
(75,64,75,63,50,73,59,"Portillo")
(75,73,73,68,47,74,60,"Keko")
(75,57,63,75,41,58,67,"Borja Bast\243n")
(75,69,73,53,70,65,75,"Javi L\243pez")
(75,48,40,16,14,20,45,"Joel Robles")
(75,45,57,46,75,53,70,"Ra\250l Navas")
(75,72,73,50,70,63,58,"Aday Ben\237tez")
(75,72,71,41,71,61,73,"Carles Planas")
(75,46,53,37,78,45,70,"Naldo")
(75,66,56,29,73,35,77,"Rodrigo Ely")
(75,64,73,65,60,73,58,"Rub\233n Pardo")
(75,83,75,58,67,71,66,"To\241o Garc\237a")
(75,71,63,51,74,54,76,"Bigas")
(75,53,58,35,75,48,67,"Insua")
(75,71,67,49,72,54,78,"Amadou")
(75,61,70,69,62,75,56,"Medr\225n")
(75,60,57,33,76,44,71,"Duarte")
(75,76,73,72,44,69,67,"Rol\225n")
(75,61,62,40,74,46,76,"Postigo")
(75,59,68,75,43,49,73,"Carrillo")
(75,76,71,64,40,70,57,"Burgui")
(75,73,74,62,61,74,69,"Unai L\243pez")
(75,80,75,73,43,66,62,"Ivi")
(75,86,75,65,49,74,59,"Jony")
(75,67,65,36,75,55,73,"Bustinza")
(75,61,69,63,68,70,71,"Merino")
(75,87,73,60,68,68,72,"Lekue")
(75,73,68,71,57,68,60,"Sabin Merino")
(75,69,65,35,74,52,73,"Aritz")
(75,68,67,37,74,59,68,"Rub\233n Duarte")
(75,61,67,67,70,69,66,"Melero")
(75,70,70,73,31,52,49,"Borja Mayoral")
(75,61,68,74,34,54,63,"Sergi Guardiola")
(75,74,77,65,60,70,71,"Jensen")
(75,83,75,66,55,63,66,"C\243rdoba")
(75,81,71,54,71,66,62,"Lato")
(75,54,68,54,67,67,65,"Marc Roca")
(75,67,62,36,74,44,77,"Cabaco")
(75,85,68,68,41,59,65,"Hern\225ndez")
(75,79,72,57,62,67,49,"Francis")
(75,67,55,24,74,35,72,"Unai N\250\241ez")
(75,70,66,56,74,63,66,"Firpo")
(75,73,69,61,38,66,58,"Dani Raba")
(75,74,67,37,72,52,64,"Mart\237n")
(75,59,64,64,72,64,72,"Ra\269i\263")
(75,83,69,72,40,69,75,"Beb\233")
(75,72,75,69,25,73,61,"Samu Saiz")
(75,61,72,57,70,61,71,"Crist\243foro")
(75,73,68,71,57,68,60,"Sabin Merino")
(75,70,70,73,31,52,49,"Borja Mayoral")
(75,70,66,56,74,63,66,"Firpo")
(75,47,72,64,71,66,76,"Mikel Rico")
(75,83,69,72,40,69,75,"Beb\233")
(75,69,73,53,72,68,62,"Luisinho")
(75,67,71,74,44,67,58,"Beauvue")
(75,44,42,16,20,29,50,"Oier")
(75,64,67,50,75,66,72,"Roncaglia")
(75,73,72,73,51,73,68,"Rochina")
(75,36,53,46,72,59,74,"Alcal\225")
(75,49,67,54,68,64,77,"Rub\233n P\233rez")
(75,71,69,50,72,64,77,"Balenziaga")
(75,70,62,41,75,50,72,"Ara\250jo")
(75,60,69,63,75,64,75,"Gonalons")
(74,45,62,35,71,43,78,"Etxeita")
(74,60,69,68,55,74,59,"M\237chel")
(74,71,62,49,73,58,75,"Nyom")
(74,50,67,44,73,60,74,"Marc Muniesa")
(74,75,70,62,74,64,79,"Doukour\233")
(74,72,68,48,72,61,80,"Ximo Navarro")
(74,71,68,59,71,64,77,"Luna")
(74,60,50,15,15,32,49,"Jordi Masip")
(74,94,72,65,65,69,74,"Adv\237ncula")
(74,91,77,66,35,72,57,"David Ferreiro")
(74,77,70,69,38,55,71,"Lozano")
(74,70,74,65,49,72,64,"Moi G\243mez")
(74,75,73,71,38,54,77,"Longo")
(74,79,71,63,69,67,73,"Silva")
(74,80,73,71,36,69,62,"Jason")
(74,45,60,50,69,58,74,"Musto")
(74,92,76,62,33,63,57,"\193lvaro Garc\237a")
(74,74,73,64,70,66,61,"\193lex Moreno")
(74,73,72,68,53,68,52,"Pozo")
(74,69,64,56,72,50,75,"Chema Rodr\237guez")
(74,69,64,36,73,56,67,"Zald\250a")
(74,76,79,64,27,65,42,"Roberts")
(74,54,56,40,73,41,74,"Vel\225zquez")
(74,84,80,62,29,56,56,"Mor")
(74,56,69,49,70,60,71,"Iturra")
(74,69,73,55,60,64,71,"Imbula")
(74,62,47,18,14,25,52,"Alberto")
(74,76,72,66,68,66,76,"Juanfran")
(74,87,76,64,67,68,80,"Wakaso")
(74,70,60,36,73,52,74,"Ramalho")
(73,65,57,31,72,46,70,"Ignasi Miquel")
(73,70,69,62,68,71,77,"Raul Garc\237a")
(73,68,72,63,53,73,52,"Javi Espinosa")
(73,79,74,61,41,65,57,"Herv\237as")
(73,51,47,42,73,44,75,"Ba")
(73,63,69,61,66,72,67,"Prci\263")
(73,44,68,49,65,67,61,"Sergi Samper")
(73,79,70,70,33,68,67,"\211scar Plano")
(73,73,68,49,70,64,62,"K\233vin Rodrigues")
(73,60,61,42,73,54,71,"R\243ber")
(73,46,50,31,70,40,72,"Marip\225n")
(73,61,60,41,72,49,74,"Alonso")
(73,77,70,55,67,64,68,"Arana")
(73,77,70,69,37,65,58,"Pere Milla")
(73,83,68,44,71,60,77,"Hermoso")
(73,76,71,70,39,63,73,"Santos")
(73,61,66,57,63,69,67,"Zubeldia")
(73,71,69,69,41,65,60,"Brais M\233ndez")
(73,57,69,66,67,65,72,"Brasanac")
(73,62,67,55,53,61,58,"Melendo")
(73,67,64,60,58,63,55,"Valverde")
(73,63,67,58,68,67,66,"Maksimovi\263")
(73,76,69,62,34,63,54,"Ferr\225n Torres")
(73,57,69,66,67,65,72,"Brasanac")
(73,65,73,62,67,69,67,"Douglas Luiz")
(73,54,42,14,15,28,50,"Riesgo")
(73,64,63,51,71,51,76,"Sergio S\225nchez")
(72,76,64,68,37,48,58,"En-Nesyri")
(72,70,69,51,67,61,58,"Fran Beltr\225n")
(72,68,69,44,70,59,69,"Tito")
(72,50,61,57,65,61,67,"Vesga")
(72,55,66,63,70,73,80,"Elustondo")
(72,37,57,50,70,46,77,"Kiko Olivas")
(72,58,68,75,37,66,66,"\268op")
(72,71,62,48,72,60,74,"D\237dac Vil\224")
(72,62,58,35,70,54,81,"Cabrera")
(72,55,44,18,16,27,46,"Aitor")
(72,65,63,40,70,50,77,"Guiti\225n")
(72,72,69,67,37,68,58,"Samu Garc\237a")
(72,71,62,33,69,41,80,"Omeruo")
(72,38,59,46,68,51,81,"Siovas")
(72,43,36,18,17,23,48,"Werner")
(72,75,75,65,48,66,55,"Rober Ib\225\241ez")
(72,59,61,34,68,48,78,"Luismi")
(72,71,67,47,71,55,68,"Vigaray")
(72,70,67,46,70,58,68,"Adri\225n Mar\237n")
(72,68,77,66,25,73,45,"Su\225rez")
(72,89,76,62,36,62,51,"Verde")
(72,55,63,68,64,70,69,"Rub\233n Alcaraz")
(72,82,71,58,64,60,75,"Jordi Calavera")
(72,76,71,61,29,68,46,"Nacho Gil")
(71,34,53,33,72,50,63,"Dorado")
(71,33,60,61,68,63,76,"Borja Fern\225ndez")
(71,68,69,59,68,65,69,"Pedro L\243pez")
(71,57,66,56,64,71,73,"Sastre")
(71,84,72,51,62,60,75,"Anto\241ito")
(71,43,49,27,70,38,76,"Mu\241oz")
(71,43,53,35,70,47,73,"Pulido")
(71,69,67,68,40,72,59,"\193lex Gallar")
(71,84,70,54,65,63,73,"Nacho")
(71,31,59,59,67,66,55,"Gumbau")
(71,82,62,50,65,59,81,"Akapo")
(71,51,64,70,36,48,66,"Alex Alegr\237a")
(71,72,67,58,68,68,65,"Miram\243n")
(71,59,66,73,30,52,50,"Jon Bautista")
(71,52,64,65,42,68,58,"Borja Lasso")
(71,36,39,18,18,24,47,"Dimitrievski")
(71,51,64,70,36,48,66,"Alex Alegr\237a")
(70,61,66,73,43,55,70,"Javi Guerra")
(70,61,68,52,60,64,70,"Aguilera")
(70,70,65,52,68,58,68,"Foulquier")
(70,57,60,40,67,51,75,"Dos Santos")
(70,67,63,40,70,54,67,"David Costas")
(70,62,71,59,64,62,57,"Cot\225n")
(70,71,72,61,27,66,55,"Leiva")
(70,57,42,19,15,29,48,"Sivera")
(70,72,69,46,66,57,69,"Anuar")
(70,78,66,63,37,55,67,"\193vila")
(70,63,71,58,55,68,54,"Aleix Garc\237a")
(70,69,73,57,46,65,50,"Toni Villa")
(70,85,73,68,41,59,55,"Jos\233 Arn\225iz")
(70,77,72,61,56,67,58,"Ale\241\224")
(70,68,66,53,68,56,67,"C\225seres")
(70,77,67,59,67,61,68,"Ganea")
(70,69,68,61,55,68,60,"Manu Morlanes")
(70,68,70,65,29,71,44,"Kangin Lee")
(70,75,71,62,33,63,54,"Espinoza")
(70,52,65,49,65,60,69,"Christian Rivera")
(69,78,64,49,65,56,73,"Javi Moyano")
(69,79,66,65,29,56,54,"Marc Cardona")
(69,83,73,42,63,50,67,"Wagu\233")
(69,69,63,64,42,45,63,"Sadiku")
(69,78,69,60,53,62,67,"Hjulsager")
(69,75,65,65,60,53,61,"Narv\225ez")
(69,60,62,70,35,42,69,"Carlos Fern\225ndez")
(69,67,70,65,34,63,43,"David Concha")
(69,75,63,48,64,53,74,"Bre\382an\269i\263")
(69,57,60,60,63,58,61,"Santi Comesa\241a")
(69,79,66,65,29,56,54,"Marc Cardona")
(69,83,73,42,63,50,67,"Wagu\233")
(69,83,67,46,61,59,72,"Cucurella")
(69,65,54,29,69,39,64,"Calero")
(69,78,66,51,62,53,67,"Moore")
(69,83,67,46,61,59,72,"Cucurella")
(69,74,73,61,27,57,50,"Brahim D\237az")
(68,31,59,71,60,76,49,"Camacho")
(68,72,64,66,35,45,71,"Villalibre")
(68,87,69,61,31,56,63,"Bangoura")
(68,70,51,47,65,56,68,"Joaqu\237n")
(68,32,37,15,14,23,38,"Iv\225n Villar")
(68,54,67,46,69,56,65,"Maz\225\328")
(68,71,69,61,42,60,48,"\211scar Pinchi")
(68,47,36,16,17,21,50,"Unai Sim\243n")
(68,34,39,19,15,25,44,"Soriano")
(68,52,39,14,13,18,45,"Koke Vegas")
(68,79,65,66,24,51,60,"Dwamena")
(68,64,67,55,51,65,49,"Riqui Puig")
(67,47,40,17,16,21,52,"Santamar\237a")
(67,43,36,19,15,21,46,"Rub\233n Y\225\241ez")
(67,47,40,19,15,22,45,"Jos\233 Su\225rez")
(67,74,64,39,63,46,67,"Akieme")
(67,69,65,57,40,66,47,"Curro S\225nchez")
(67,61,57,33,68,42,62,"Lluis L\243pez")
(67,83,69,62,30,58,66,"Iban Salvador")
(67,62,54,34,67,41,66,"Adri\225n Di\233guez")
(67,67,63,54,53,55,57,"Paik Seung Ho")
(67,69,62,62,41,55,58,"Dani Ojeda")
(67,69,61,65,30,47,59,"Abel Ruiz")
(67,24,34,10,11,19,41,"Cristian Rivero")
(66,74,62,63,28,49,58,"Apeh")
(66,62,56,38,66,42,68,"Berrocal")
(66,73,63,58,33,61,43,"Jos\233 Lara")
(66,67,61,42,64,53,61,"Miranda")
(66,60,69,57,56,59,60,"Kaptoum")
(66,40,54,42,65,47,66,"Carlos Blanco")
(66,68,60,32,63,46,64,"Miguel\243n")
(66,22,33,10,11,17,36,"Jovanovi\263")
(66,44,40,20,18,29,46,"Sisniega")
(65,71,66,61,39,59,57,"Cristo Gonz\225lez")
(65,65,62,51,60,56,64,"Dami\224")
(65,63,62,50,43,52,47,"Joni Montiel")
(65,52,53,33,66,43,58,"Javi Jim\233nez")
(65,59,64,52,51,56,37,"Guridi")
(65,60,44,34,67,34,62,"Kike")
(64,64,59,34,62,42,55,"Reguil\243n")
(64,70,58,38,59,56,69,"Moi Delgado")
(64,55,64,58,57,64,51,"Dani Molina")
(64,73,65,53,45,54,57,"Soni")
(64,54,50,26,64,34,60,"Diego Alende")
(64,70,54,34,60,40,68,"Tar\237n")
(64,61,62,50,60,58,54,"Jos\233 Mena")
(64,53,58,62,30,44,54,"Eckert")
(64,65,61,50,59,61,63,"\193lex Centelles")
(63,47,47,34,64,42,56,"Robert Costa")
(63,56,64,58,41,62,41,"Sito")
(63,69,62,52,23,50,50,"Mario Gonz\225lez")
(63,53,42,21,16,28,48,"Garc\237a")
(63,32,33,9,12,19,41,"Zidane")
(62,57,55,64,28,43,65,"Rub\233n Mesa")
(62,45,35,17,16,22,46,"Ezkieta")
(62,68,61,54,35,57,47,"\193lex Blanco")
(61,47,51,34,61,37,60,"Roger Riera")
(61,67,59,50,53,55,62,"Genaro")
(61,54,59,49,54,50,57,"Julio Gracia")
(61,60,57,41,57,56,57,"Gen\237s")
(61,21,29,11,12,17,44,"\193lex Dos Santos")
(61,60,57,41,57,56,57,"Gen\237s")
(60,57,57,37,57,49,58,"Sergi \193lamo")
(60,56,51,49,57,47,57,"Javi P\233rez")
(57,64,56,55,35,52,32,"Andzouana")
(56,58,55,53,29,43,55,"Pedrosa")
(56,26,30,11,9,18,28,"Marc Vito")
(56,61,59,43,40,50,48,"Pol Lozano")


Nota: Solo extraigo unos cuantos datos (y calculo la media) para enseñar cuanto podemos sacar de datos y no tener que hacerlo de forma manual
Responder
#6

Actualización sobre el proyecto  LaieA_053.gif

Código:
# Length bytes:
* ../dat/pcf0060/DBDAT/EQ022022.PKF: 3629752
# Parse teams:
* ../dat/pcf0060/DBDAT/EQ022022.PKF:
  [ T { index = 1
      , tid = 1964
      , unknown01 = 525
      , unknown02 = 0
      , kind = False
      , name = "F.C. Barcelona"
      , stadium = "Camp Nou"
      , country = 22
      , unknown03 = 41
      , fullname = "Fútbol Club Barcelona"
      , capacity = 108428
      , standing = 0
      , width = 72
      , length = 107
      , founded = 1899
      , built = Just 1957
      , members = Just 104000
      , president = Just "Josep Lluís Núñez Clemente"
      , budget = Just 12434
      , budgetpro = Just 1000
      , sponsor = Just "NO TIENE"
      , supplier = Just "KAPPA"
      , reserve = Just 28
      , stats =
          Just
            T { unknown00 = 65535
              , unknown01 = 3
              , lastdecade = [ 6 , 2 , 3 , 1 , 1 , 1 , 1 , 4 , 3 , 2 ]
              , seasons = 66
              , matches = 2002
              , win = 1091
              , draw = 414
              , gf = 4122
              , ga = 2380
              , points = 2646
              , champion = 14
              , runnersup = 19
              , lastseason =
                  [ 3
                  , 3
                  , 2
                  , 2
                  , 1
                  , 2
                  , 1
                  , 1
                  , 1
                  , 1
                  , 1
                  , 1
                  , 1
                  , 2
                  , 2
                  , 3
                  , 2
                  , 2
                  , 2
                  , 2
                  , 2
                  , 2
                  , 2
                  , 2
                  , 2
                  , 2
                  , 2
                  , 2
                  , 2
                  , 2
                  , 2
                  , 2
                  , 2
                  , 2
                  , 2
                  , 2
                  , 2
                  , 2
                  , 2
                  , 2
                  , 2
                  , 2
                  ]
              , uefa = ( 20 , 4 )
              , cup = ( 92 , 23 )
              , championsleague = ( 8 , 1 )
              , cupwinnerscup = ( 9 , 4 )
              , supercup = ( 9 , 5 )
              , intercontinental = ( 1 , 0 )
              , eufasupercup = ( 4 , 1 )
              }
      , formation =
          T [ ( 1
              , P { area = ( ( 0 , 66 ) , ( 42 , 66 ) )
                  , defence = ( 0 , 88 )
                  , offence = ( 0 , 88 )
                  }
              )
            , ( 2
              , P { area = ( ( 0 , 117 ) , ( 250 , 81 ) )
                  , defence = ( 35 , 147 )
                  , offence = ( 159 , 165 )
                  }
              )
            , ( 3
              , P { area = ( ( 0 , 0 ) , ( 181 , 100 ) )
                  , defence = ( 34 , 43 )
                  , offence = ( 122 , 48 )
                  }
              )
            , ( 4
              , P { area = ( ( 16 , 30 ) , ( 220 , 138 ) )
                  , defence = ( 64 , 88 )
                  , offence = ( 170 , 93 )
                  }
              )
            , ( 5
              , P { area = ( ( 0 , 41 ) , ( 160 , 110 ) )
                  , defence = ( 30 , 88 )
                  , offence = ( 118 , 93 )
                  }
              )
            , ( 6
              , P { area = ( ( 0 , 0 ) , ( 245 , 78 ) )
                  , defence = ( 81 , 43 )
                  , offence = ( 193 , 29 )
                  }
              )
            , ( 7
              , P { area = ( ( 78 , 110 ) , ( 239 , 87 ) )
                  , defence = ( 117 , 156 )
                  , offence = ( 256 , 124 )
                  }
              )
            , ( 8
              , P { area = ( ( 34 , 96 ) , ( 283 , 101 ) )
                  , defence = ( 91 , 131 )
                  , offence = ( 226 , 140 )
                  }
              )
            , ( 9
              , P { area = ( ( 106 , 38 ) , ( 212 , 106 ) )
                  , defence = ( 140 , 95 )
                  , offence = ( 298 , 88 )
                  }
              )
            , ( 10
              , P { area = ( ( 72 , 46 ) , ( 245 , 99 ) )
                  , defence = ( 97 , 93 )
                  , offence = ( 253 , 88 )
                  }
              )
            , ( 11
              , P { area = ( ( 62 , 0 ) , ( 255 , 95 ) )
                  , defence = ( 117 , 20 )
                  , offence = ( 257 , 45 )
                  }
              )
            ]
      , tactics =
          T { possession = 70
            , counter = 57
            , playstyle = Attacking
            , tackling = Medium
            , coverage = ManToMan
            , clearance = Short
            , preasure = Midfield
            }
      , staff =
          [ M (E C { mid = 1069 , name = "Van Gaal" }
                 D { fullname = "Aloysius Paulus Maria Van Gaal"
                   , unknown02 = 1
                   , unknown03 = 25
                   , tactics = "…"
                   , honours = "…"
                   , miscellaneous = "…"
                   , lastseason = "…"
                   , managercareer = "…"
                   , unknown04 = 3
                   , playercareer = "…"
                   , statements = "…"
                   })
          , P (E C { pid = 3595
                   , number = 13
                   , name = "Hesp"
                   , fullname = "Ruud HESP"
                   , index = 1
                   , origin = 1
                   , positions = [ 1 ]
                   , country = 27
                   , skin = 1
                   , hair = 6
                   , position = 0
                   , birthday = ( 31 , 10 , 1965 )
                   , height = 194
                   , weight = 93
                   , pace = 78
                   , stamina = 79
                   , aggression = 77
                   , skill = 78
                   , finishing = 19
                   , dribbling = 22
                   , passing = 18
                   , shooting = 23
                   , tackling = 22
                   , goalkeeping = 85
                   }
                 D { unknown00 = 27
                   , born = "Bussum (Holanda)"
                   , fromteam = "Roda, HOL (97)"
                   , nationalteam = "0"
                   , unknown01 = 1
                   , unknown02 = 6400
                   , features = "…"
                   , honours = "…"
                   , intcaps = "…"
                   , miscellaneous = "…"
                   , lastseason = "…"
                   , career = "…"
                   })

(todos los equipos, entrenadores y jugadores (con todo el texto de la base de datos)

          , P (E C { pid = 17178
                   , number = 19
                   , name = "Usandi"
                   , fullname = "Jon USANDIzaga Beldarraín"
                   , index = 19
                   , origin = 1
                   , positions = [ 9 , 13 , 14 , 17 ]
                   , country = 22
                   , skin = 1
                   , hair = 6
                   , position = 3
                   , birthday = ( 15 , 1 , 1979 )
                   , height = 176
                   , weight = 72
                   , pace = 84
                   , stamina = 89
                   , aggression = 87
                   , skill = 80
                   , finishing = 77
                   , dribbling = 86
                   , passing = 86
                   , shooting = 82
                   , tackling = 76
                   , goalkeeping = 21
                   }
                 D { unknown00 = 22
                   , born = "-"
                   , fromteam = "Real Sociedad"
                   , nationalteam = "0"
                   , unknown01 = 1
                   , unknown02 = 6400
                   , features = "x"
                   , honours = "x"
                   , intcaps = "x"
                   , miscellaneous = "x"
                   , lastseason = "x"
                   , career = "ND,ND,ND,ND,ND\r\n"
                   })
          ]
      }
  ]

Como podréis ver, he encontrado todos los patrones del archivo PKF y soy capaz de extraer todos los datos  good.gif (aunque hay algún que dato el cual desconozco  unknw.gif y los he llamado unknownXX.

PD: Es una pena que los del FIFA ya no actualicen la base de datos del FUT. Los datos todavía se pueden descargar, pero Hazard esta en el Chelsea ...
Responder
#7

El proyecto lo tenía un poco abandonado pero con la muerte de Michael Robinson, pensé que este podría ser mi tributo a su persona y a la comunidad PCF ya que todo el código será publicado bajo una licencia de copyleft (código abierto) una vez el proyecto sea presentable good.gif
Responder
#8

(09-05-2020, 23:39)JuanDeLaCierva escribió: No puedes ver enlaces como invitado. Regístrate o conectate para verlo.El proyecto lo tenía un poco abandonado pero con la muerte de Michael Robinson, pensé que este podría ser mi tributo a su persona y a la comunidad PCF ya que todo el código será publicado bajo una licencia de copyleft (código abierto) una vez el proyecto sea presentable good.gif

Laie_60B.gif Laie_60B.gif Laie_60B.gif
Responder
#9

(09-05-2020, 23:39)JuanDeLaCierva escribió: No puedes ver enlaces como invitado. Regístrate o conectate para verlo.El proyecto lo tenía un poco abandonado pero con la muerte de Michael Robinson, pensé que este podría ser mi tributo a su persona y a la comunidad PCF ya que todo el código será publicado bajo una licencia de copyleft (código abierto) una vez el proyecto sea presentable good.gif

Hola, que bueno ojala puedas avanzar. Mis conocimientos en el desarrollo que queres hacer son nulos pero si crees que te puedo ayudar de alguna manera en esta u otras tareas avisame. Me gusta el pcfutbol 6, estoy editando, con muuuucha paciencia, el pcpremier, y me ofrezco para lo que pueda ser util.

Saludos!
Responder
#10

(13-05-2020, 01:43)ramcost escribió: No puedes ver enlaces como invitado. Regístrate o conectate para verlo.
(09-05-2020, 23:39)JuanDeLaCierva escribió: No puedes ver enlaces como invitado. Regístrate o conectate para verlo.El proyecto lo tenía un poco abandonado pero con la muerte de Michael Robinson, pensé que este podría ser mi tributo a su persona y a la comunidad PCF ya que todo el código será publicado bajo una licencia de copyleft (código abierto) una vez el proyecto sea presentable good.gif

Hola, que bueno ojala puedas avanzar. Mis conocimientos en el desarrollo que queres hacer son nulos pero si crees que te puedo ayudar de alguna manera en esta u otras tareas avisame. Me gusta el pcfutbol 6, estoy editando, con muuuucha paciencia, el pcpremier, y me ofrezco para lo que pueda ser util.

Saludos!

Lo ideal sería encontrar APIs que tuviesen los datos los cuales hay que editar (ya que FIFA ya no expone lo que necesitamos).

Si no hubiese APIs, entonces habría que buscar páginas web normales a las cual extraeremos los datos como he hecho por ejemplo con las páginas que tenían contenido La Ley Europea de los Memes:

- No puedes ver enlaces como invitado. Regístrate o conectate para verlo.

Pero, en relación al archivo PFK, her encontrado un pequeño contratiempo el cual tendré que solucionar antes de publicar las herramientas (bueno, más bien son 6 entrenadores/jugadores que no son consistentes con los patrones que he encontrado):

Código:
# Parser error
* Function:.....: chunkP > take 7169 bytes
* Index.........: 0000000000000509
* Unparsed bytes: 3673
1A01 0600 3200 0F15 0E12 1500 2B00 1708  {`gaSantostaJavi
0413 4132 202F 352E 3241 200D 000C 0405  er SANTOS Alamed
000C 0001 0000 0000 0016 0103 0008 02B5  ama`aaaaaw`baicÔ
07C0 5316 1600 3215 004F 4122 0D0E 0C00  f¡2wwaSta. Cloma
4105 0441 2613 000C 040F 0415 0A00 2613   de GramenetkaGr
000C 040F 0415 4123 0100 5101 0019 0100  amenet B`a0`ax`a
1901 0019 0100 1901 0019 0100 1910 002F  x`ax`ax`ax`axqaN
254D 2F25 4D2F 254D 2F25 4D2F 256C 6B39  D,ND,ND,ND,ND..X
3840 370D 120F 2C10 3701 1D1A 0107 002C  Y!VlsnMqV`|{`faM
0E13 000D 0412 1500 200F 150E 0F08 0E41  oralestaAntonio
2C2E 3320 2D24 3241 320E 0D8C 1201 0001  MORALES Solís`a`
0000 0000 0016 0106 001D 03AF 07AF 4716  aaaaaw`ga|bÎfÎ&w
0600 2C80 0D00 0600 0100 4C01 0051 0100  gaMálaga`a-`a0`a
190A 0032 080F 4105 0015 0E12 4F0A 0032  xkaSin datos.kaS
080F 4105 0015 0E12 4F0A 0032 080F 4105  in datos.kaSin d
0015 0E12 4F0A 0032 080F 4105 0015 0E12  atos.kaSin datos
4F0A 0032 080F 4105 0015 0E12 4F0C 0032  .kaSin datos.maS
080F 4105 0015 0E12 4F6C 6B37 3836 3212  in datos...VYWSs
0F10 2B0C 3B01 E747 0106 002C 0E0D 080F  nqJmZ`.&`gaMolin
0018 0024 1215 0403 000F 412C 2E2D 282F  ayaEsteban MOLIN
2041 2904 130F 800F 0504 1B14 0206 0400  A Hernándezucgea
0000 0016 0103 0101 08B9 078C 0116 0100  aaaw`b``iØfí`w`a
4C0C 0020 0C00 1504 1413 4149 5856 4801  -maAmateur (97)`
004C 0100 1901 0019 0100 1901 0019 0100  a-`ax`ax`ax`ax`a
1901 0019 1000 2F25 4D2F 254D 2F25 4D2F  x`axqaND,ND,ND,N
254D 2F25 6C6B 3430 2F34 3235 2D30 2D13  D,ND..UQNUSTLQLr
01E8 4701 0400 340F 0008 1B00 342F 2028  `.&`eaUnaizaUNAI
4137 0413 0600 1300 4125 8C04 1B4C 2200   Vergara Díez-Ca
0300 0D0D 0413 0E13 0105 0406 0000 0016  balleror`degaaaw
0103 0114 01B9 078C 0116 0100 4C0B 0032  `b`u`Øfí`w`a-jaS
000F 1541 200F 0513 0414 0100 4C01 0019  ant Andreu`a-`ax
0100 1901 0019 0100 1901 0019 0100 1910  `ax`ax`ax`ax`axq
002F 254D 2F25 4D2F 254D 2F25 4D2F 256C  aND,ND,ND,ND,ND.
6B33 3131 3433 3330 2D34 1301 D819 0109  .RPPURRQLUr`¹x`h
0025 0E0C 8C0F 0614 041B 1E00 2B14 000F  aDomínguez.aJuan
4120 0F15 0E0F 080E 4125 2E2C 282F 2634   Antonio DOMINGU
243B 4123 0402 0413 1300 1201 0406 0000  EZ Becerras`egaa
0000 1601 0601 080B B307 8C01 1601 004C  aaw`g`ijÒfí`w`a-
0E00 2C00 1341 2C04 0F0E 1341 4958 5648  oaMar Menor (97)
0100 5101 0019 0100 1901 0019 0100 1901  `a0`ax`ax`ax`ax`


# Parser error
* Function:.....: chunkP > take 16655 bytes
* Index.........: 0000000000008733
* Unparsed bytes: 10509
040D 4111 1308 0C04 1341 0410 1408 110E  el primer equipo
410D 0441 0D0D 0417 9241 0041 1200 0D08   le llevó a sali
1341 0504 0D41 3204 1708 0D0D 0041 040F  r del Sevilla en
4103 1412 0200 4105 0441 140F 0041 0E11   busca de una op
0E13 1514 0F08 0500 0541 1100 1300 4105  ortunidad para d
040C 0E12 1500 1341 1214 1241 0214 000D  emostar sus cual
0805 0005 0412 4FBF 004B 412B 1404 0600  idades.Þa* Juega
4105 0441 0504 0704 0F12 0041 0204 0F15   de defensa cent
1300 0D4F 4135 0402 0F08 0200 0C04 0F15  ral. Tecnicament
0441 0412 4103 0012 1500 0F15 0441 0314  e es bastante bu
040F 0E41 1841 1204 410D 000F 1B00 4100  eno y se lanza a
0D41 0015 0010 1404 4102 0E0F 410C 1402  l ataque con muc
090E 4102 1308 1504 1308 0E4F 4124 1241  ho criterio. Es
1380 1108 050E 4118 4104 0D04 0600 0F15  rápido y elegant
0441 040F 4104 0D41 020E 1315 044F 4135  e en el corte. T
000C 0308 880F 4111 1404 0504 4100 0500  ambién puede ada
1115 0013 1204 4100 410E 1513 0012 4111  ptarse a otras p
0E12 0802 080E 0F04 1241 0504 410D 0041  osiciones de la
0504 0704 0F12 004F 3E00 4B41 2200 0C11  defensa._a* Camp
0492 0F41 0504 410D 0806 0041 1214 034C  eón de liga sub-
5058 4102 0E0F 4104 0D41 3204 1708 0D0D  19 con el Sevill
0041 040F 410D 0041 1504 0C11 0E13 0005  a en la temporad
0041 5855 4C58 544F 0100 39C8 004B 4125  a 94-95.`aX©a* D
0403 1415 0041 040F 4132 0406 140F 0500  ebuta en Segunda
4125 0817 0812 0892 0F41 0412 1500 4115   División esta t
040C 110E 1300 0500 4F41 4141 4141 4141  emporada.       
4141 4141 4141 4141 4141 4141 4141 4141                 
4141 4141 4141 4141 6C6B 4B41 3304 0209          ..* Rech
001B 9241 140F 0041 0E07 0413 1500 4105  azó una oferta d
040D 4132 0417 080D 0D00 4111 0013 0041  el Sevilla para
1304 0F0E 1700 134F 4141 4141 4141 4141  renovar.       
4141 4141 4141 4141 4141 4141 4141 4141                 
4141 4141 416C 6B4B 4129 0041 0708 130C       ..* Ha firm
0005 0E41 110E 1341 1513 0412 4115 040C  ado por tres tem
110E 1300 0500 1241 020E 0F41 040D 41A8  poradas con el É
0208 0B00 4F71 004B 412B 1406 9241 020E  cija..a* Jugó co
0F41 040D 4107 080D 0800 0D41 1204 1708  n el filial sevi
0D0D 0812 1500 4104 0F41 040D 4106 1314  llista en el gru
110E 4128 3741 0504 410D 0041 3204 0614  po IV de la Segu
0F05 0041 2508 1708 1208 920F 4123 4F41  nda División B.


# Parser error
* Function:.....: chunkP > take 13121 bytes
* Index.........: 0000000000000481
* Unparsed bytes: 8814
000C 920F 4123 0D00 0F02 0E41 020E 0F15  amón Blanco cont
080F 9B00 4112 1441 080F 1504 130C 0815  inúa su intermit
040F 1504 4113 040D 0002 0892 0F41 020E  ente relación co
0F41 040D 412C 0013 0304 0D0D 004D 4102  n el Marbella, c
0E0F 0B14 0F15 0E41 4444 4141 4141 4141  onjunto %%     
4141 4141 4141 4141 4141 4141 4141 4141                 
4141 4141 4141 4141 4141 4141 4141 4141                 
4141 4141 4141 4141 4141 4141 4141 4141                 
4141 4141 4141 4141 4141 4141 4141 4141                 
4141 4141 416C 6B00 0D41 1014 0441 1800       ..al que ya
4104 0F15 1304 0F92 4104 0F41 0D00 1241   entrenó en las
050E 1241 1504 0C11 0E13 0005 0012 4100  dos temporadas a
0F15 0413 080E 1304 124D 4100 140F 1014  nteriores, aunqu
0441 040F 4100 0C03 0012 410D 0D04 0692  e en ambas llegó
4144 446C 6B00 0D41 020D 1403 4102 1400   %%..al club cua
0F05 0E41 1800 4112 0441 0900 038C 0041  ndo ya se había
080F 0802 0800 050E 4104 0D41 0200 0C11  iniciado el camp
040E 0F00 150E 4118 410D 0041 1208 1514  eonato y la situ
0002 0892 0F41 0504 0D41 0410 1408 110E  ación del equipo
4144 4441 4141 4141 4141 4141 4141 4141   %%             
4141 4141 4141 4141 4141 4141 4141 4141                 
4141 4141 4141 4141 4141 4141 4141 4141                 
4141 4141 4141 4141 4141 4141 4141 4141                 
4141 4141 4141 4141 4141 4141 416C 6B04               ..e
1300 4103 0012 1500 0F15 0441 0504 0D08  ra bastante deli
0200 0500 4D41 0412 1104 0208 000D 0C04  cada, especialme
0F15 0441 040F 410D 0041 9B0D 1508 0C00  nte en la última
4102 000C 1100 9000 4D41 040F 410D 0041   campaña, en la
1014 0441 0D0D 0406 0013 0E0F 4144 4441  que llegaron %%
4141 4141 4141 4141 4141 4141 4141 4141                 
4141 4141 4141 4141 4141 4141 4141 4141                 
4141 4141 4141 4141 4141 4141 4141 4141                 
4141 4141 4141 4141 4141 4141 4141 4141                 
4141 4141 4141 416C 6B00 4111 0012 0013         ..a pasar
4112 0804 1504 4104 0F15 1304 0F00 050E   siete entrenado
1304 1241 110E 1341 040D 4103 000F 1014  res por el banqu
080D 0D0E 410C 0013 0304 0D0D 8C4F 4124  illo marbellí. E
0D41 1208 1215 040C 0041 1014 0441 040C  l sistema que em
110D 0400 4144 4441 4141 4141 4141 4141  plea %%         
4141 4141 4141 4141 4141 4141 4141 4141                 


# Parser error
* Function:.....: chunkP > take 16715 bytes
* Index.........: 0000000000012564
* Unparsed bytes: 455
3308 0200 1305 0E4D 4104 0D41 0200 1108  Ricardo, el capi
1580 0F41 0504 0D41 0410 1408 110E 4D41  tán del equipo,
0412 4114 0F41 090E 0C03 1304 4111 0E0D  es un hombre pol
0817 000D 040F 1504 4D41 1014 0441 1114  ivalente, que pu
0405 0441 0002 1514 0013 4105 0441 0D00  ede actuar de la
1504 1300 0D41 0504 1304 0209 0E4D 4108  teral derecho, i
0F15 0413 080E 1341 0441 080F 020D 1412  nterior e inclus
0E4D 4112 0841 0D00 4112 0815 1400 0208  o, si la situaci
920F 410D 0E41 1304 1014 0804 1304 4D41  ón lo requiere,
0504 4102 040F 1513 000D 4F41 3214 4117  de central. Su v
0415 0413 000F 8C00 4104 1241 140F 4106  eteranía es un g
1300 050E 4104 0F41 140F 4104 1014 0811  rado en un equip
0E41 1014 0441 0011 1404 1215 0041 0708  o que apuesta fi
130C 040C 040F 1504 4111 0E13 410D 0041  rmemente por la
0B14 1704 0F15 1405 4F01 0019 0100 1901  juventud.`ax`ax`
0019 5C00 4B41 3308 0200 1305 0E41 0412  ax=a* Ricardo es
1514 170E 4104 0F41 1214 410D 8C0F 0400  tuvo en su línea
4109 0003 0815 1400 0D4D 410D 0D04 0600   habitual, llega
0F05 0E41 0041 0508 1211 1415 0013 4152  ndo a disputar 3
5741 1100 1315 0805 0E12 4118 4100 0F0E  6 partidos y ano
1500 0F05 0E41 050E 1241 060E 0D04 124F  tando dos goles.
6A00 4C4D 280F 0C00 0214 0D00 0500 4D28  .a-,Inmaculada,I
0F07 4D4C 4D4C 6C6B 4C4D 2E17 0804 050E  nf,-,-..-,Oviedo
4D2B 1417 4D4C 4D4C 6C6B 5855 4E58 544D  ,Juv,-,-..94/95,
2E17 0804 050E 4D23 4D50 594D 516C 6B58  Oviedo,B,18,0..9
544E 5857 4D2E 1708 0405 0E41 234D 524D  5/96,Oviedo B,3,
4C4D 4C6C 6B58 574E 5856 4D2E 1708 0405  -,-..96/97,Ovied
0E41 234D 234D 5257 4D53 6C6B 3231 2A3A  o B,B,36,2..SPK[
4341 3F41 2B0E 00                        " ^ Joa
# Parser error
* Function:.....: chunkP > take 6164 bytes
* Index.........: 0000000000011554
* Unparsed bytes: 4342
4102 0011 0002 0815 0005 0E41 1588 020F   capacitado técn
0802 000C 040F 1504 4D41 1114 0405 0441  icamente, puede
0B14 0600 1341 0504 4108 0F15 0413 080E  jugar de interio
1341 0504 1304 0209 0E41 0E41 0504 410D  r derecho o de l
0015 0413 000D 4111 0E13 4104 1200 4103  ateral por esa b
000F 0500 4F41 2412 4113 8011 0805 0E41  anda. Es rápido
1841 0C00 0F04 0B00 4104 0D41 0300 0D92  y maneja el baló
0F41 020E 0F41 0613 000F 4111 140D 0213  n con gran pulcr
0815 1405 4F01 0019 0100 1901 0019 8800  itud.`ax`ax`axéa
4B41 2D00 4111 0012 0005 0041 1504 0C11  * La pasada temp
0E13 0005 0041 0412 1514 170E 4100 4114  orada estuvo a u
0F41 0613 000F 410F 0817 040D 4104 0F41  n gran nivel en
040D 4132 000F 1541 200F 0513 0414 4D41  el Sant Andreu,
0D0D 0406 000F 050E 4100 410B 1406 0013  llegando a jugar
4152 5341 1100 1315 0805 0E12 4F41 2C00   32 partidos. Ma
1302 9241 1513 0412 4106 0E0D 0412 4104  rcó tres goles e
0F41 040D 4102 000C 1104 0E0F 0015 0E41  n el campeonato
0D08 0614 0413 0E4F 2F00 5854 4E58 574D  liguero.Na95/96,
2614 0819 0E0D 124D 4C4D 4C4D 4C6C 6B58  Guixols,-,-,-..9
574E 5856 4D32 000F 1541 200F 0513 0414  6/97,Sant Andreu
4D23 4D52 534D 526C 6B39 3E37 2E29 2B21  ,B,32,3..X_VOHJ@
2034 0A01 A640 0106 002D 1408 120C 001F  AUk`Ç!`gaLuisma~
002D 1408 1241 2C4F 4132 800F 0209 041B  aLuis M. Sánchez
4133 0E12 000D 0412 4D41 2D34 2832 2C20   Rosales, LUISMA
0F00 0D00 0000 0000 1601 0602 1908 B107  nalaaaaaw`gcxiÐf
A840 160F 0022 0E13 0800 4149 2280 0204  É!wnaCoria (Cáce
1304 1248 0700 2200 0F15 0413 0001 0051  res)faCantera`a0
0100 1973 004B 412D 1408 120C 0041 1214  `ax.a* Luisma su
040D 0441 0002 1514 0013 4104 0F41 0D00  ele actuar en la
410C 0405 0800 1114 0F15 004D 4104 1241   mediapunta, es
140F 410B 1406 0005 0E13 4115 8802 0F08  un jugador técni
020E 4D41 1014 0441 1700 410C 1418 4103  co, que va muy b
0804 0F41 0504 4102 0003 041B 0041 1104  ien de cabeza pe
1204 4100 4112 1441 0412 0200 1200 4104  se a su escasa e
1215 0015 1413 004F 0100 1901 0019 0100  statura.`ax`ax`a
1944 004B 412D 0041 1100 1200 0500 4115  x%a* La pasada t
040C 110E 1300 0500 4107 1404 4114 0F41  emporada fue un
0708 0B0E 4104 0F41 0D00 1241 000D 080F  fijo en las alin
0400 0208 0E0F 0412 4105 040D 4131 0D00  eaciones del Pla
1204 0F02 0800 4F17 0058 574E 5856 4D31  sencia.va96/97,P


# Parser error
* Function:.....: chunkP > take 3848 bytes
* Index.........: 0000000000000433
* Unparsed bytes: 260
4105 0015 0E12 4F0A 0032 080F 4105 0015   datos.kaSin dat
0E12 4F0A 0032 080F 4105 0015 0E12 4F0A  os.kaSin datos.k
0032 080F 4105 0015 0E12 4F0A 0032 080F  aSin datos.kaSin
4105 0015 0E12 4F0B 0050 4D50 4D50 4D50   datos.ja1,1,1,1
4D50 6C6B 030B 0050 4D50 4D50 4D50 4D50  ,1..bja1,1,1,1,1
6C6B 0A00 220E 0C04 0F15 0013 080E 01E8  ..kaComentario`.
4200 0900 220E 0D0D 180C 0E13 040E 0032  #ahaCollymoreoaS
1500 0F41 222E 2D2D 382C 2E33 2401 0009  tan COLLYMORE`ah
0000 0000 001E 0203 0300 006C 0700 001E  aaaaa.cbbaa.faa.
0300 2F00 0209 002D 0817 0413 110E 0E0D  baNachaLiverpool
0100 510A 0022 0E0C 040F 1500 1308 0E0A  `a0kaComentariok
0032 080F 4105 0015 0E12 4F0A 0032 080F  aSin datos.kaSin
4105 0015 0E12 4F0A 0032 080F 4105 0015   datos.kaSin dat
0E12 4F0A 0032 080F 4105 0015 0E12 4F0A  os.kaSin datos.k
0032 080F 4105 0015 0E12 4F0C 0032 080F  aSin datos.maSin
4105 0015 0E12 4F6C 6B5E 5656 5901 0203   datos...?778`cb
0402 0200                                ecca
Responder
#11

(23-05-2020, 20:14)JuanDeLaCierva escribió: No puedes ver enlaces como invitado. Regístrate o conectate para verlo.

Pero, en relación al archivo PFK, her encontrado un pequeño contratiempo el cual tendré que solucionar antes de publicar las herramientas (bueno, más bien son 6 entrenadores/jugadores que no son consistentes con los patrones que he encontrado):

Código:
# Parser error
* Function:.....: chunkP > take 7169 bytes
* Index.........: 0000000000000509
* Unparsed bytes: 3673
1A01 0600 3200 0F15 0E12 1500 2B00 1708  {`gaSantostaJavi
0413 4132 202F 352E 3241 200D 000C 0405  er SANTOS Alamed
000C 0001 0000 0000 0016 0103 0008 02B5  ama`aaaaaw`baicÔ
07C0 5316 1600 3215 004F 4122 0D0E 0C00  f¡2wwaSta. Cloma
4105 0441 2613 000C 040F 0415 0A00 2613   de GramenetkaGr
000C 040F 0415 4123 0100 5101 0019 0100  amenet B`a0`ax`a
1901 0019 0100 1901 0019 0100 1910 002F  x`ax`ax`ax`axqaN
254D 2F25 4D2F 254D 2F25 4D2F 256C 6B39  D,ND,ND,ND,ND..X
3840 370D 120F 2C10 3701 1D1A 0107 002C  Y!VlsnMqV`|{`faM
0E13 000D 0412 1500 200F 150E 0F08 0E41  oralestaAntonio
2C2E 3320 2D24 3241 320E 0D8C 1201 0001  MORALES Solís`a`
0000 0000 0016 0106 001D 03AF 07AF 4716  aaaaaw`ga|bÎfÎ&w
0600 2C80 0D00 0600 0100 4C01 0051 0100  gaMálaga`a-`a0`a
190A 0032 080F 4105 0015 0E12 4F0A 0032  xkaSin datos.kaS
080F 4105 0015 0E12 4F0A 0032 080F 4105  in datos.kaSin d
0015 0E12 4F0A 0032 080F 4105 0015 0E12  atos.kaSin datos
4F0A 0032 080F 4105 0015 0E12 4F0C 0032  .kaSin datos.maS
080F 4105 0015 0E12 4F6C 6B37 3836 3212  in datos...VYWSs
0F10 2B0C 3B01 E747 0106 002C 0E0D 080F  nqJmZ`.&`gaMolin
0018 0024 1215 0403 000F 412C 2E2D 282F  ayaEsteban MOLIN
2041 2904 130F 800F 0504 1B14 0206 0400  A Hernándezucgea
0000 0016 0103 0101 08B9 078C 0116 0100  aaaw`b``iØfí`w`a
4C0C 0020 0C00 1504 1413 4149 5856 4801  -maAmateur (97)`
004C 0100 1901 0019 0100 1901 0019 0100  a-`ax`ax`ax`ax`a
1901 0019 1000 2F25 4D2F 254D 2F25 4D2F  x`axqaND,ND,ND,N
254D 2F25 6C6B 3430 2F34 3235 2D30 2D13  D,ND..UQNUSTLQLr
01E8 4701 0400 340F 0008 1B00 342F 2028  `.&`eaUnaizaUNAI
4137 0413 0600 1300 4125 8C04 1B4C 2200   Vergara Díez-Ca
0300 0D0D 0413 0E13 0105 0406 0000 0016  balleror`degaaaw
0103 0114 01B9 078C 0116 0100 4C0B 0032  `b`u`Øfí`w`a-jaS
000F 1541 200F 0513 0414 0100 4C01 0019  ant Andreu`a-`ax
0100 1901 0019 0100 1901 0019 0100 1910  `ax`ax`ax`ax`axq
002F 254D 2F25 4D2F 254D 2F25 4D2F 256C  aND,ND,ND,ND,ND.
6B33 3131 3433 3330 2D34 1301 D819 0109  .RPPURRQLUr`¹x`h
0025 0E0C 8C0F 0614 041B 1E00 2B14 000F  aDomínguez.aJuan
4120 0F15 0E0F 080E 4125 2E2C 282F 2634   Antonio DOMINGU
243B 4123 0402 0413 1300 1201 0406 0000  EZ Becerras`egaa
0000 1601 0601 080B B307 8C01 1601 004C  aaw`g`ijÒfí`w`a-
0E00 2C00 1341 2C04 0F0E 1341 4958 5648  oaMar Menor (97)
0100 5101 0019 0100 1901 0019 0100 1901  `a0`ax`ax`ax`ax`


# Parser error
* Function:.....: chunkP > take 16655 bytes
* Index.........: 0000000000008733
* Unparsed bytes: 10509
040D 4111 1308 0C04 1341 0410 1408 110E  el primer equipo
410D 0441 0D0D 0417 9241 0041 1200 0D08   le llevó a sali
1341 0504 0D41 3204 1708 0D0D 0041 040F  r del Sevilla en
4103 1412 0200 4105 0441 140F 0041 0E11   busca de una op
0E13 1514 0F08 0500 0541 1100 1300 4105  ortunidad para d
040C 0E12 1500 1341 1214 1241 0214 000D  emostar sus cual
0805 0005 0412 4FBF 004B 412B 1404 0600  idades.Þa* Juega
4105 0441 0504 0704 0F12 0041 0204 0F15   de defensa cent
1300 0D4F 4135 0402 0F08 0200 0C04 0F15  ral. Tecnicament
0441 0412 4103 0012 1500 0F15 0441 0314  e es bastante bu
040F 0E41 1841 1204 410D 000F 1B00 4100  eno y se lanza a
0D41 0015 0010 1404 4102 0E0F 410C 1402  l ataque con muc
090E 4102 1308 1504 1308 0E4F 4124 1241  ho criterio. Es
1380 1108 050E 4118 4104 0D04 0600 0F15  rápido y elegant
0441 040F 4104 0D41 020E 1315 044F 4135  e en el corte. T
000C 0308 880F 4111 1404 0504 4100 0500  ambién puede ada
1115 0013 1204 4100 410E 1513 0012 4111  ptarse a otras p
0E12 0802 080E 0F04 1241 0504 410D 0041  osiciones de la
0504 0704 0F12 004F 3E00 4B41 2200 0C11  defensa._a* Camp
0492 0F41 0504 410D 0806 0041 1214 034C  eón de liga sub-
5058 4102 0E0F 4104 0D41 3204 1708 0D0D  19 con el Sevill
0041 040F 410D 0041 1504 0C11 0E13 0005  a en la temporad
0041 5855 4C58 544F 0100 39C8 004B 4125  a 94-95.`aX©a* D
0403 1415 0041 040F 4132 0406 140F 0500  ebuta en Segunda
4125 0817 0812 0892 0F41 0412 1500 4115   División esta t
040C 110E 1300 0500 4F41 4141 4141 4141  emporada.      
4141 4141 4141 4141 4141 4141 4141 4141                 
4141 4141 4141 4141 6C6B 4B41 3304 0209          ..* Rech
001B 9241 140F 0041 0E07 0413 1500 4105  azó una oferta d
040D 4132 0417 080D 0D00 4111 0013 0041  el Sevilla para
1304 0F0E 1700 134F 4141 4141 4141 4141  renovar.       
4141 4141 4141 4141 4141 4141 4141 4141                 
4141 4141 416C 6B4B 4129 0041 0708 130C       ..* Ha firm
0005 0E41 110E 1341 1513 0412 4115 040C  ado por tres tem
110E 1300 0500 1241 020E 0F41 040D 41A8  poradas con el É
0208 0B00 4F71 004B 412B 1406 9241 020E  cija..a* Jugó co
0F41 040D 4107 080D 0800 0D41 1204 1708  n el filial sevi
0D0D 0812 1500 4104 0F41 040D 4106 1314  llista en el gru
110E 4128 3741 0504 410D 0041 3204 0614  po IV de la Segu
0F05 0041 2508 1708 1208 920F 4123 4F41  nda División B.


# Parser error
* Function:.....: chunkP > take 13121 bytes
* Index.........: 0000000000000481
* Unparsed bytes: 8814
000C 920F 4123 0D00 0F02 0E41 020E 0F15  amón Blanco cont
080F 9B00 4112 1441 080F 1504 130C 0815  inúa su intermit
040F 1504 4113 040D 0002 0892 0F41 020E  ente relación co
0F41 040D 412C 0013 0304 0D0D 004D 4102  n el Marbella, c
0E0F 0B14 0F15 0E41 4444 4141 4141 4141  onjunto %%     
4141 4141 4141 4141 4141 4141 4141 4141                 
4141 4141 4141 4141 4141 4141 4141 4141                 
4141 4141 4141 4141 4141 4141 4141 4141                 
4141 4141 4141 4141 4141 4141 4141 4141                 
4141 4141 416C 6B00 0D41 1014 0441 1800       ..al que ya
4104 0F15 1304 0F92 4104 0F41 0D00 1241   entrenó en las
050E 1241 1504 0C11 0E13 0005 0012 4100  dos temporadas a
0F15 0413 080E 1304 124D 4100 140F 1014  nteriores, aunqu
0441 040F 4100 0C03 0012 410D 0D04 0692  e en ambas llegó
4144 446C 6B00 0D41 020D 1403 4102 1400   %%..al club cua
0F05 0E41 1800 4112 0441 0900 038C 0041  ndo ya se había
080F 0802 0800 050E 4104 0D41 0200 0C11  iniciado el camp
040E 0F00 150E 4118 410D 0041 1208 1514  eonato y la situ
0002 0892 0F41 0504 0D41 0410 1408 110E  ación del equipo
4144 4441 4141 4141 4141 4141 4141 4141   %%            
4141 4141 4141 4141 4141 4141 4141 4141                 
4141 4141 4141 4141 4141 4141 4141 4141                 
4141 4141 4141 4141 4141 4141 4141 4141                 
4141 4141 4141 4141 4141 4141 416C 6B04               ..e
1300 4103 0012 1500 0F15 0441 0504 0D08  ra bastante deli
0200 0500 4D41 0412 1104 0208 000D 0C04  cada, especialme
0F15 0441 040F 410D 0041 9B0D 1508 0C00  nte en la última
4102 000C 1100 9000 4D41 040F 410D 0041   campaña, en la
1014 0441 0D0D 0406 0013 0E0F 4144 4441  que llegaron %%
4141 4141 4141 4141 4141 4141 4141 4141                 
4141 4141 4141 4141 4141 4141 4141 4141                 
4141 4141 4141 4141 4141 4141 4141 4141                 
4141 4141 4141 4141 4141 4141 4141 4141                 
4141 4141 4141 416C 6B00 4111 0012 0013         ..a pasar
4112 0804 1504 4104 0F15 1304 0F00 050E   siete entrenado
1304 1241 110E 1341 040D 4103 000F 1014  res por el banqu
080D 0D0E 410C 0013 0304 0D0D 8C4F 4124  illo marbellí. E
0D41 1208 1215 040C 0041 1014 0441 040C  l sistema que em
110D 0400 4144 4441 4141 4141 4141 4141  plea %%        
4141 4141 4141 4141 4141 4141 4141 4141                 


# Parser error
* Function:.....: chunkP > take 16715 bytes
* Index.........: 0000000000012564
* Unparsed bytes: 455
3308 0200 1305 0E4D 4104 0D41 0200 1108  Ricardo, el capi
1580 0F41 0504 0D41 0410 1408 110E 4D41  tán del equipo,
0412 4114 0F41 090E 0C03 1304 4111 0E0D  es un hombre pol
0817 000D 040F 1504 4D41 1014 0441 1114  ivalente, que pu
0405 0441 0002 1514 0013 4105 0441 0D00  ede actuar de la
1504 1300 0D41 0504 1304 0209 0E4D 4108  teral derecho, i
0F15 0413 080E 1341 0441 080F 020D 1412  nterior e inclus
0E4D 4112 0841 0D00 4112 0815 1400 0208  o, si la situaci
920F 410D 0E41 1304 1014 0804 1304 4D41  ón lo requiere,
0504 4102 040F 1513 000D 4F41 3214 4117  de central. Su v
0415 0413 000F 8C00 4104 1241 140F 4106  eteranía es un g
1300 050E 4104 0F41 140F 4104 1014 0811  rado en un equip
0E41 1014 0441 0011 1404 1215 0041 0708  o que apuesta fi
130C 040C 040F 1504 4111 0E13 410D 0041  rmemente por la
0B14 1704 0F15 1405 4F01 0019 0100 1901  juventud.`ax`ax`
0019 5C00 4B41 3308 0200 1305 0E41 0412  ax=a* Ricardo es
1514 170E 4104 0F41 1214 410D 8C0F 0400  tuvo en su línea
4109 0003 0815 1400 0D4D 410D 0D04 0600   habitual, llega
0F05 0E41 0041 0508 1211 1415 0013 4152  ndo a disputar 3
5741 1100 1315 0805 0E12 4118 4100 0F0E  6 partidos y ano
1500 0F05 0E41 050E 1241 060E 0D04 124F  tando dos goles.
6A00 4C4D 280F 0C00 0214 0D00 0500 4D28  .a-,Inmaculada,I
0F07 4D4C 4D4C 6C6B 4C4D 2E17 0804 050E  nf,-,-..-,Oviedo
4D2B 1417 4D4C 4D4C 6C6B 5855 4E58 544D  ,Juv,-,-..94/95,
2E17 0804 050E 4D23 4D50 594D 516C 6B58  Oviedo,B,18,0..9
544E 5857 4D2E 1708 0405 0E41 234D 524D  5/96,Oviedo B,3,
4C4D 4C6C 6B58 574E 5856 4D2E 1708 0405  -,-..96/97,Ovied
0E41 234D 234D 5257 4D53 6C6B 3231 2A3A  o B,B,36,2..SPK[
4341 3F41 2B0E 00                        " ^ Joa
# Parser error
* Function:.....: chunkP > take 6164 bytes
* Index.........: 0000000000011554
* Unparsed bytes: 4342
4102 0011 0002 0815 0005 0E41 1588 020F   capacitado técn
0802 000C 040F 1504 4D41 1114 0405 0441  icamente, puede
0B14 0600 1341 0504 4108 0F15 0413 080E  jugar de interio
1341 0504 1304 0209 0E41 0E41 0504 410D  r derecho o de l
0015 0413 000D 4111 0E13 4104 1200 4103  ateral por esa b
000F 0500 4F41 2412 4113 8011 0805 0E41  anda. Es rápido
1841 0C00 0F04 0B00 4104 0D41 0300 0D92  y maneja el baló
0F41 020E 0F41 0613 000F 4111 140D 0213  n con gran pulcr
0815 1405 4F01 0019 0100 1901 0019 8800  itud.`ax`ax`axéa
4B41 2D00 4111 0012 0005 0041 1504 0C11  * La pasada temp
0E13 0005 0041 0412 1514 170E 4100 4114  orada estuvo a u
0F41 0613 000F 410F 0817 040D 4104 0F41  n gran nivel en
040D 4132 000F 1541 200F 0513 0414 4D41  el Sant Andreu,
0D0D 0406 000F 050E 4100 410B 1406 0013  llegando a jugar
4152 5341 1100 1315 0805 0E12 4F41 2C00   32 partidos. Ma
1302 9241 1513 0412 4106 0E0D 0412 4104  rcó tres goles e
0F41 040D 4102 000C 1104 0E0F 0015 0E41  n el campeonato
0D08 0614 0413 0E4F 2F00 5854 4E58 574D  liguero.Na95/96,
2614 0819 0E0D 124D 4C4D 4C4D 4C6C 6B58  Guixols,-,-,-..9
574E 5856 4D32 000F 1541 200F 0513 0414  6/97,Sant Andreu
4D23 4D52 534D 526C 6B39 3E37 2E29 2B21  ,B,32,3..X_VOHJ@
2034 0A01 A640 0106 002D 1408 120C 001F  AUk`Ç!`gaLuisma~
002D 1408 1241 2C4F 4132 800F 0209 041B  aLuis M. Sánchez
4133 0E12 000D 0412 4D41 2D34 2832 2C20   Rosales, LUISMA
0F00 0D00 0000 0000 1601 0602 1908 B107  nalaaaaaw`gcxiÐf
A840 160F 0022 0E13 0800 4149 2280 0204  É!wnaCoria (Cáce
1304 1248 0700 2200 0F15 0413 0001 0051  res)faCantera`a0
0100 1973 004B 412D 1408 120C 0041 1214  `ax.a* Luisma su
040D 0441 0002 1514 0013 4104 0F41 0D00  ele actuar en la
410C 0405 0800 1114 0F15 004D 4104 1241   mediapunta, es
140F 410B 1406 0005 0E13 4115 8802 0F08  un jugador técni
020E 4D41 1014 0441 1700 410C 1418 4103  co, que va muy b
0804 0F41 0504 4102 0003 041B 0041 1104  ien de cabeza pe
1204 4100 4112 1441 0412 0200 1200 4104  se a su escasa e
1215 0015 1413 004F 0100 1901 0019 0100  statura.`ax`ax`a
1944 004B 412D 0041 1100 1200 0500 4115  x%a* La pasada t
040C 110E 1300 0500 4107 1404 4114 0F41  emporada fue un
0708 0B0E 4104 0F41 0D00 1241 000D 080F  fijo en las alin
0400 0208 0E0F 0412 4105 040D 4131 0D00  eaciones del Pla
1204 0F02 0800 4F17 0058 574E 5856 4D31  sencia.va96/97,P


# Parser error
* Function:.....: chunkP > take 3848 bytes
* Index.........: 0000000000000433
* Unparsed bytes: 260
4105 0015 0E12 4F0A 0032 080F 4105 0015   datos.kaSin dat
0E12 4F0A 0032 080F 4105 0015 0E12 4F0A  os.kaSin datos.k
0032 080F 4105 0015 0E12 4F0A 0032 080F  aSin datos.kaSin
4105 0015 0E12 4F0B 0050 4D50 4D50 4D50   datos.ja1,1,1,1
4D50 6C6B 030B 0050 4D50 4D50 4D50 4D50  ,1..bja1,1,1,1,1
6C6B 0A00 220E 0C04 0F15 0013 080E 01E8  ..kaComentario`.
4200 0900 220E 0D0D 180C 0E13 040E 0032  #ahaCollymoreoaS
1500 0F41 222E 2D2D 382C 2E33 2401 0009  tan COLLYMORE`ah
0000 0000 001E 0203 0300 006C 0700 001E  aaaaa.cbbaa.faa.
0300 2F00 0209 002D 0817 0413 110E 0E0D  baNachaLiverpool
0100 510A 0022 0E0C 040F 1500 1308 0E0A  `a0kaComentariok
0032 080F 4105 0015 0E12 4F0A 0032 080F  aSin datos.kaSin
4105 0015 0E12 4F0A 0032 080F 4105 0015   datos.kaSin dat
0E12 4F0A 0032 080F 4105 0015 0E12 4F0A  os.kaSin datos.k
0032 080F 4105 0015 0E12 4F0C 0032 080F  aSin datos.maSin
4105 0015 0E12 4F6C 6B5E 5656 5901 0203   datos...?778`cb
0402 0200                                ecca

Pues malas noticias.

A parte de los 6 errores de arriba, me he dado cuenta de que no extraigo todos los datos de todas las plantillas. El problema es que equipos que están en la base de datos (DBASEWIN.EXE) no son consistentes con todos sus entrenadores/jugadores. Un ejemplo, hay más texto de lo que se enseña en la aplicación (sin tener el código fuente, no sé como se las apañan para parar y saltar al siguiente bloque) unknw.gif

Lo ideal sería extraer los datos y no prestar atención a los de la base de datos, pero lo veo complicado ya que no hay delimitadores entre los entrenadores/jugadores  unknw.gif

pd: A lo mejor esta información esta en la parte anterior al primer © Copyright de DM ... aunque lo dudo.
Responder
#12

(26-05-2020, 12:36)JuanDeLaCierva escribió: No puedes ver enlaces como invitado. Regístrate o conectate para verlo.Pues malas noticias.



Lo ideal sería extraer los datos y no prestar atención a los de la base de datos, pero lo veo complicado ya que no hay delimitadores entre los entrenadores/jugadores  unknw.gif

pd: A lo mejor esta información esta en la parte anterior al primer © Copyright de DM ... aunque lo dudo.

Pues al final no ha habido más que entender la totalidad del archivo PKF  biggrin.gif

Y efectivamente, lo que había justo antes del primer © Copyright de DM son punteros ... pero no son todos los punteros  wacko2.gif

Se ve que los errores que me daba anteriormente, sucedían por que intentaba convertir los bytes a equipos, entrenadores o jugadores y eran punteros.

Una vez resulto esto, solo puedo decir que hay muy buenas noticias. Puedo confirmar que mi aplicación es capaz de extraer todos los datos del archivo EQ022022.PKF (PC Fútbol 6.0).

Para muestra, unos botones  biggrin.gif

- Punteros:
Código:
Pointers
  [ T { index = 1
      , offset = 237
      , group = ( 95 , 104 )
      , grpid = ( 115 , 1 )
      , start = 1458
      , size = 145356
      }



  , T { index = 484
      , offset = 3598333
      , group = ( 86 , 97 )
      , grpid = ( 118 , 5 )
      , start = 3623492
      , size = 6260
      }
  ]

Enlace a archivo completo: No puedes ver enlaces como invitado. Regístrate o conectate para verlo.

- (algunos) Datos de todos los jugadores:
Código:
# Fútbol Club Barcelona
```
|78|79|77|78|19|22|18|23|22|85|Ruud HESP
|86|84|83|87|22|19|16|24|23|80|VITOR Manuel Martins BAIA
|82|77|78|77|19|19|22|16|21|90|Carles BUSQUETS Barroso
|82|82|85|70|68|65|59|71|80|09|Winston BOGARDE
|89|88|81|82|61|64|69|72|90|18|Michael REIZIGER
|82|87|89|75|65|61|68|72|90|10|FERNANDO COUTO Silva
|83|80|79|74|62|65|62|64|89|16|Albert FERRER Llopis
|82|85|78|83|68|62|63|68|81|14|ABELARDO Fernández Antuña
|85|88|85|78|64|68|68|72|81|17|Miguel Angel NADAL Homar
|94|88|86|76|65|68|66|73|85|16|SERGI Barjuán Esclusa
|89|90|78|95|76|87|88|87|42|25|RIVALDO Vítor Borba Ferreira
|83|80|78|83|70|85|82|76|45|07|Dragan CIRIC
|90|82|80|92|61|85|81|85|50|09|Luis Filipe Madeira Caeiro, FIGO
|77|82|78|79|65|84|81|78|60|17|Guillermo AMOR Martínez
|80|85|84|95|69|89|88|85|67|13|Josep GUARDIOLA Sala
|80|79|78|83|62|89|85|82|63|15|ÓSCAR García Junyent
|83|81|82|94|63|81|85|84|45|09|Iván DE LA PEÑA López
|82|75|76|79|61|83|80|78|69|17|Albert CELADES López
|81|78|73|88|68|84|86|79|59|09|ROGER García Junyent
|85|88|80|80|80|86|81|80|66|08|LUIS ENRIQUE Martínez García
|87|90|78|97|62|90|81|82|50|09|GIOVANNI Silva de Oliveira
|87|82|80|89|81|81|77|83|40|08|ANDERSON da Silva
|80|78|77|78|79|80|69|82|40|08|Christophe DUGARRY
|82|80|77|80|80|84|61|84|63|14|Emmanuel AMUNIKE
|84|78|80|79|88|81|75|83|55|09|Juan Antonio PIZZI Torroja
|84|80|82|92|83|84|79|83|59|08|Hristo STOITCHKOV
```


# Juveniles España
```
|66|72|58|68|28|31|62|56|53|77|IKER CASILLAS Fernández
|62|67|31|73|18|22|58|56|49|75|Antonio MOYA Martínez
|84|82|80|84|20|23|10|10|14|86|Juan M. DIAZ
|86|86|83|87|21|23|18|16|21|88|Carlos RUIZ Martín
|61|73|66|61|45|48|69|66|78|09|Zubaitz GURRUTXAGA Loyola
|71|68|59|76|36|46|67|60|55|07|Juan BLAS Muriel
|61|73|53|61|71|51|61|38|59|06|ANDER Aranceta Lucena
|79|80|57|82|66|62|78|71|64|18|Claudio MASTROPASQUA
|76|82|78|80|26|57|85|76|70|19|Diego ZANGIROLAMI
|78|88|69|86|57|73|76|81|80|19|Alesio DI BISCEGLIA
|83|83|76|86|61|73|75|57|66|12|Alessandro CATINI
|83|80|61|76|67|76|73|80|57|19|Danilo ZINI
|83|90|75|85|64|75|67|63|73|14|Stéfano MERCURI
|84|84|79|80|73|83|74|80|86|15|Luigi D'APICE
|84|79|79|76|81|73|76|78|88|15|Massimo PAZZAGLIA
|84|79|79|83|81|72|75|73|88|18|Luca NETRELLA
|81|88|84|87|77|85|79|73|84|21|J. Francisco LEO Bermejo
|83|86|80|77|77|79|79|73|90|21|Mario SOTO Manso
|65|75|57|69|73|57|55|68|51|04|Antonio M. CUARTERO Vicente
|69|71|59|71|65|51|52|64|52|05|DAVID Rodríguez-Fraile Huete
|66|74|54|73|72|64|57|53|45|05|Miguel MATEOS Rego
|72|70|57|68|62|52|57|69|42|03|GORKA Sánchez Ríos
|79|69|56|76|59|71|52|61|36|07|Haruna BABANGIDA
|82|86|81|85|80|77|86|82|72|26|Luca SILVA
|85|79|69|81|76|79|77|82|57|11|Marco NICOLAZZI
|85|87|76|87|83|82|76|83|46|25|Giovanni RICCARDO
|82|76|57|77|66|73|80|72|60|21|Giacomo PANICCIA
|80|83|76|85|66|78|83|74|42|20|Ivano MONTANARO
|83|82|83|76|73|61|78|73|38|19|Paul Andrés STIVAN
|82|84|72|85|74|84|85|77|66|22|Eduardo BENITO Fernández
|68|76|54|70|57|63|81|64|50|11|Manuel A. Guillén, NELO
|62|70|53|68|39|49|71|65|51|02|Ignacio Garro Gómez de Carrero, NACHO
|78|80|76|82|76|76|88|88|57|19|Raffaele LONGO
|76|80|49|80|71|78|81|83|68|19|Filippo ANTONELLI
|76|72|68|79|72|76|84|81|65|19|Francesco VARANO
|81|83|67|76|80|82|74|67|59|18|Miguel A. García Pérez, CORONA
|83|86|73|84|60|71|87|74|62|20|CORTES
|85|81|67|87|60|82|84|78|63|20|GABRI
|84|88|76|88|73|76|84|76|63|26|Alessandro BRUNO
|84|84|84|85|86|83|84|80|86|07|Sandro BERTO
|84|84|79|80|73|74|86|83|70|15|Angelo CIMADOMO
|84|84|79|80|81|86|86|78|70|15|James PELUCCHETTI
|84|79|79|83|79|82|82|85|70|15|Simone BATTI
|75|80|88|84|76|79|82|85|82|23|Gabriel DE LA TORRE
|84|79|79|86|74|89|83|84|74|18|Carlos ABAD Chico
|85|79|81|85|71|82|83|84|84|24|Pablo A. BOX Martínez
|86|82|78|83|76|90|81|78|68|23|RAUL SANCHEZ Fernández
|84|89|87|80|86|75|74|82|64|11|Ramiro GONZALEZ Martín
|84|89|87|80|86|75|74|82|64|11|Antonio ARAGUAS Rubio
|84|89|87|80|77|86|86|82|76|21|Jon USANDIzaga Beldarraín
```

Enlace a archivo completo: No puedes ver enlaces como invitado. Regístrate o conectate para verlo.

Cuales serán los siguientes pasos?
* Limpieza general del código, hay bastante morralla  sad-smiley-face.gif
* Escribir un blog post donde describo como he llegado hasta donde he llegado (con todo lujo de detalles)
* Charla (en ingles) para BornHack (Dinamarca) que será grabado y transmitido en directo desde su canal de YouTube
* Charla (en español) para HackMadrid%27 que también será grabado y transmitido en directo desde su canal de YouTube
* Publicar el código bajo una licencia libre y copyleft
* He mencionado que los de FIFA ya no actualizan la base de datos de FUT, pero he encontrado una alternativa y me mantengo en mis trece en que se puede actualizar totalmente todas las plantillas, con fotos de jugadores, equipos, y ligas de forma automática y en muy poco tiempo Laie_60B.gif

pd Al final con lo del COVID-19 he tenido mogollón de tiempo libre y he podido retomar el proyecto nuevamente ...
Responder
#13

Enhorabuena por el curro. Siento no haber estado más atento porque lo de la cabecera lo sabía. Creía que eso lo habías detectado ya.

Cuando te pongas a modificar el archivo ten en cuenta que esa cabecera hay que modificarla según cambias cosas. El largo de un equipo tiene que cuadrar con lo que ocupa en bytes y el inicio tiene que cuadrar con donde empieza. Es la parte más delicada


Enviado desde mi iPhone utilizando Tapatalk
Responder
#14

(03-06-2020, 06:36)Pablinho escribió: No puedes ver enlaces como invitado. Regístrate o conectate para verlo.Enhorabuena por el curro. Siento no haber estado más atento porque lo de la cabecera lo sabía. Creía que eso lo habías detectado ya.

Cuando te pongas a modificar el archivo ten en cuenta que esa cabecera hay que modificarla según cambias cosas. El largo de un equipo tiene que cuadrar con lo que ocupa en bytes y el inicio tiene que cuadrar con donde empieza. Es la parte más delicada


Enviado desde mi iPhone utilizando Tapatalk

El archivo no lo modifico, sino que genero uno nuevo. Es una tarea simple una vez que todos los datos están en una AST. Esto me permite, de forma recursiva, generar los bytes para cada tipo una vez haya implementado la siguente clase de tipos:

Código:
class ByteStream a where
  bytes :: a -> Bytes

En estos momentos estoy generando un archivo de PKF removiendo los datos específicos de la base de datos. Aunque he visto el proyecto de Tronic y me he dado cuenta de que podría generar el PKF solo con punteros y cada equipo meterlo en su archivo DBC correspondiente.

Por cierto, en Julio daré una charla para No puedes ver enlaces como invitado. Regístrate o conectate para verlo. (en español) y en Agosto para No puedes ver enlaces como invitado. Regístrate o conectate para verlo. (en ingles):

[Imagen: Pfx8yMw.png]

A lo mejor algunos de los usuarios de este foro les interesaría escuchar las charlas no? Por lo menos la gente que es activa en los subforos de Edición.

pd: Me he dado cuenta de que mi parser de punteros también vale para el PC Basket 6.0 y para el PC Fútbol 5.0. Supongo con mi código de la versión PC Fútbol 6.0, otros lo podrán utilizar como plantilla para hacer lo mismo con esas versiones ya que yo no lo haría dado que no los juego.
Responder
#15

(07-06-2020, 12:18)JuanDeLaCierva escribió: No puedes ver enlaces como invitado. Regístrate o conectate para verlo.
Por cierto, en Julio daré una charla para No puedes ver enlaces como invitado. Regístrate o conectate para verlo. (en español) y en Agosto para No puedes ver enlaces como invitado. Regístrate o conectate para verlo. (en ingles):

[Imagen: Pfx8yMw.png]

A lo mejor algunos de los usuarios de este foro les interesaría escuchar las charlas no? Por lo menos la gente que es activa en los subforos de Edición.

Acaban de colgar la charla en el grupo de Meetup:

- No puedes ver enlaces como invitado. Regístrate o conectate para verlo.
Responder


Salto de foro:


Usuarios navegando en este tema: 3 invitado(s)