PureBasic

Forums PureBasic
Nous sommes le Dim 21/Juil/2019 14:03

Heures au format UTC + 1 heure




Poster un nouveau sujet Répondre au sujet  [ 8 messages ] 
Auteur Message
 Sujet du message: [RESOLU]problème structures
MessagePosté: Jeu 26/Juil/2018 16:06 
Hors ligne

Inscription: Ven 27/Mai/2016 8:27
Messages: 60
Localisation: 03
Bonjour a toute et a tous
Je tente de bidouiller un fichier GedCom (standard de généalogie qui est du text mais pas évident a décortiquer dans les relations familiales) mais là n’est pas le problème.
Je voulais à l’ origine tout balancer dans un fichier à accès direct qui était simple pour moi mais pas possible dans PureBasic et c’est bien dommage.
Question : je voudrai avoir la longueur d’une structure et le résultat est un peu étrange, donc en langage clair je pédale dans la choucroute.
Merci pour vos réponses (d'autres questions suivront je pense)
Code:
Structure Personne
    Nom.s{10}
    Prenom.s{25}
    Sexe.s{1}
    NoCouple1.u
    NoCouple2.u
    NoCouple3.u
    DateNaissance.s{12}
    LieuNaissance.s{25}
    DateDeces.s{12}
    LieuDeces.s{25}
  EndStructure
  Global Dim FicheGene.Personne(10)
  i=SizeOf (personne)
  Debug "long structure : " + Str(i)
  ;     le résultat est  :  long structure : 226  ???'
 

_________________
Toshiba satellite Windows 7 64bits


Dernière édition par pierre003 le Jeu 02/Aoû/2018 7:22, édité 1 fois.

Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: problème structures
MessagePosté: Jeu 26/Juil/2018 16:39 
Hors ligne

Inscription: Sam 08/Fév/2014 15:19
Messages: 1579
Citation:
Je tente de bidouiller un fichier GedCom (standard de généalogie qui est du text mais pas évident a décortiquer dans les relations familiales) mais là n’est pas le problème.
Je voulais à l’ origine tout balancer dans un fichier à accès direct qui était simple pour moi mais pas possible dans PureBasic et c’est bien dommage.

Mais si, ça existe, comme dans tous les langages.
En PB: FileSeek()

Mais bon, l'accès direct pour ce type d'usage (généalogie ?) c'est pas idéal (place perdue)
JSON pourrait être envisagé, mais avec 4000 enregistrements (tes précédents posts), ton fichier sera illisible et lent.
Le mieux c'est SQLite, et ça tombe bien c'est natif en PB.
Tu n'auras pas à te soucier de la longueur des noms
Tu pourras partager ta base de données avec d'autres utilisateurs
Tu peux lire et écrire dedans par excel

:wink:

_________________
HP de 2012 - Intel i3-3220 @3.30 GHz, 2 coeurs, 4 threads - RAM 16 Go - Nvidia GT 620 1920x1080 DPI 100%
Windows 10 Famille x64 + Linux (Slackware, Debian sur Oracle VirtualBox 6.0)


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: problème structures
MessagePosté: Jeu 26/Juil/2018 17:03 
Hors ligne

Inscription: Jeu 07/Juin/2007 22:54
Messages: 261
Citation:
Question : je voudrai avoir la longueur d’une structure et le résultat est un peu étrange

25+12+25+12+1+25+10 = 110, par défaut PB compile en unicode donc 2 bytes / caractères 110*2 = 220, tu as 3 variables unicode (.u) donc 3*2 = 6, 220 + 6 = 226 le compte est bon, qu'est-ce qui te pause problème ?


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: problème structures
MessagePosté: Jeu 26/Juil/2018 17:44 
Hors ligne

Inscription: Ven 27/Mai/2016 8:27
Messages: 60
Localisation: 03
Marc56 a écrit:
Citation:
Je tente de bidouiller un fichier GedCom (standard de généalogie qui est du text mais pas évident a décortiquer dans les relations familiales)
Le mieux c'est SQLite, et ça tombe bien c'est natif en PB.
Tu n'auras pas à te soucier de la longueur des noms
Tu pourras partager ta base de données avec d'autres utilisateurs
Tu peux lire et écrire dedans par excel

:wink:

Merci pour ta réponse,
Ce n’est pas pour refaire un logiciel de généalogie, les logiciels font ça très bien.
Moi ce que j’ai envi de faire c’est quand j’épluche systématiquement les archives d’une commune que ce soit naissance, mariage ou décès je puisse vérifier rapidement si le nom de cette personne est déjà dans la base GedCom et avec son conjoint, parents ou ses enfants, sa commune… il a des chance d’être de la famille.
Ce que je fais actuellement avec Heredis mais c’est assez long et au bout d’un moment je fais l’impasse.
Ce serait une base nom, prénom, conjoints, lieu et date de naissance, mariages, décès et ?
Ce serait déjà pas mal.
Mais comme il y a aussi dans GedCom les latitudes et longitudes des communes si j’étais fort en math je pour faire in tris des personnes qui habitaient dans une commune du secteur, mais là faut pas rêver.
Pour SQLite je vais voir ça et j’espère que ce n’est pas trop compliqué pour un vieux comme moi. :?
J’espère qu’il y a un tuto car PureBasic a l’air très bien mais l’aide n’est pas top quelques fois pour moi. :oops:

_________________
Toshiba satellite Windows 7 64bits


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: problème structures
MessagePosté: Jeu 26/Juil/2018 17:48 
Hors ligne

Inscription: Ven 27/Mai/2016 8:27
Messages: 60
Localisation: 03
boby a écrit:
Citation:
Question : je voudrai avoir la longueur d’une structure et le résultat est un peu étrange

25+12+25+12+1+25+10 = 110, par défaut PB compile en unicode donc 2 bytes / caractères 110*2 = 220, tu as 3 variables unicode (.u) donc 3*2 = 6, 220 + 6 = 226 le compte est bon, qu'est-ce qui te pause problème ?


Merci pour ta réponse,
J’étais toujours sur VisualBasic et un string déclaré en longueur 25 faisait 25.
Maintenant j’ai compris. :oops:

_________________
Toshiba satellite Windows 7 64bits


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: problème structures
MessagePosté: Ven 27/Juil/2018 8:00 
Hors ligne

Inscription: Sam 08/Fév/2014 15:19
Messages: 1579
Citation:
Mais comme il y a aussi dans GedCom les latitudes et longitudes des communes si j’étais fort en math je pour faire in tris des personnes qui habitaient dans une commune du secteur, mais là faut pas rêver.
Savoir par commune est effectivement compliqué, mais par contre tu peux calculer la distance à vol d'oiseau, donc savoir si une personne est proche. La taille moyenne d'une commune en France est de 10 Km². Simple trigonométrie. (Sinus et Cosinus). 1° ~= 111,11 km
Donc, à la louche, sans calculs trigo, si tu as 1/10 de différence dans un sens ou l'autre ils sont à moins de 10 km
https://blogs.msdn.microsoft.com/ogdifrance/2011/07/13/de-la-go-et-des-maths/
Attention, comme tout langage informatique, les calculs d'angles se font en Radians (contrairement au calculatrices scientifiques qui sont par défaut en Degrés), mais les fonction de conversion existent.

Citation:
Pour SQLite je vais voir ça et j’espère que ce n’est pas trop compliqué pour un vieux comme moi. :?
Nous sommes tous vieux, mais le cerveau est un "muscle" il peut continuer d'apprendre sans arrêt (contrairement à ce qu'on a dit pendant des années). Moins vite, mais avec un référentiel qui augmente tout le temps. Les prix Nobels sont rarement des perdreaux de l'année :mrgreen: L'avantage de baser tes données sur une système SQL est que tu n'auras ensuite qu'une seule procédure pour toutes les recherches: seule la requête elle-même change. Tu peux faire des recherches / filtrage sur tout ou partie d'un nom et même sur des phonèmes.

Citation:
J’espère qu’il y a un tuto car PureBasic a l’air très bien mais l’aide n’est pas top quelques fois pour moi. :oops:
Comparé à la plupart des aides (cochonneries verbeuses imbuvables illisibles) des langages actuels, l'aide de PB est une merveille de précision 8) mais il faut lire en premier les chapitres généraux et ensuite relire plusieurs fois chaque aide contextuelle.
Si tu es fluent in english et que tu as du temps, il y a un tuto rigolo et sympa ici:
http://ninelizards.com/purebasic/

:wink:

_________________
HP de 2012 - Intel i3-3220 @3.30 GHz, 2 coeurs, 4 threads - RAM 16 Go - Nvidia GT 620 1920x1080 DPI 100%
Windows 10 Famille x64 + Linux (Slackware, Debian sur Oracle VirtualBox 6.0)


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: problème structures
MessagePosté: Ven 27/Juil/2018 16:17 
Hors ligne

Inscription: Ven 27/Mai/2016 8:27
Messages: 60
Localisation: 03
Marc56 a écrit:
Citation:
Mais comme il y a aussi dans GedCom les latitudes et longitudes des communes si j’étais fort en math je pour faire in tris des personnes qui habitaient dans une commune du secteur, mais là faut pas rêver.
Savoir par commune est effectivement compliqué, mais par contre tu peux calculer la distance à vol d'oiseau, donc savoir si une personne est proche. La taille moyenne d'une commune en France est de 10 Km². Simple trigonométrie. (Sinus et Cosinus). 1° ~= 111,11 km

http://ninelizards.com/purebasic/

:wink:

Merci pour ta réponse et ton humour,
Pour les communes, comme je suis du genre feignasse j’aurai pris ‘Bray-Dunes’(pour le nord), ‘Puig de Coma Negra’ (pour le sud) 51°- 42° = 9° a la louche pour 973km donc 108 Km par ° donc a la louche , on arrive grosso modo au même résultat, et pour est-ouest la même chose avec d’autres villages.
Le but c’est que lorsqu’on épluche les registres d’une commune on puisse avoir un filtre et avoir les personnes qui sont nés, mariés ou décédés dans cette commune ou dans les communes comprises dans un carré (ou plutôt un rectangle) de X km autour de cette commune et susceptible un jour ou l’autre de faire partie de la famille(a), les personnes ne se déplaçaient pas comme maintenant, ce n’est déjà plus a la louche mais presque au tractopelle mais ça suffit.
Exemple dans ma généalogie j’ai 4000 personnes avec environ 800 noms de famille pour l’instant et je n’ai pas besoin d’afficher le nom des personnes qui étaient à l’autre bout de la France ou à l’étranger (et de plus mon neurone ne va pas suivre).
(a) si on monte assez loin dans les ancêtres et que l’on cherche leurs descendances on a des chances de les retrouver.
D’après un puissant calcul d’un matheux les Français de souche ont 7 chances sur 10 de descendre de Charlemagne donc. 8O .

Pour moi l’english, c’est de l’Hébreux :oops:

Pour l’instant j’ai récupéré les données qui m’intéressent de la base GedCom et crée un fichier avec un enregistrement fixe de 200 pour chaque personne, ça a l’air d’être bon pour l’extraction des données mais j’ai un problème avec FileSeek.
Jusqu’au 4 ème enregistrement ça marche super, mais ensuite il y a un décalage au dessus de 1000.
J’ai vérifié la position du début du 5 ème 1000 et FileSeek(1,a.q) a.q=1000 mais il y a un décalage de -2 et ce n’est pas linéaire. c'est surement moi qui m... :?: :?:
Je vais tenter de faire la copie d'une partie du fichier et du programme si j'y arrive.

_________________
Toshiba satellite Windows 7 64bits


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: problème structures
MessagePosté: Ven 27/Juil/2018 16:26 
Hors ligne

Inscription: Jeu 07/Juin/2007 22:54
Messages: 261
Citation:
Pour SQLite je vais voir ça et j’espère que ce n’est pas trop compliqué pour un vieux comme moi.


http://sql.sh/cours

Et voila ! tu connais les bases suffisante pour ton programe en SQL !


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

Heures au format UTC + 1 heure


Qui est en ligne

Utilisateurs parcourant ce forum: Exabot [Bot] et 2 invités


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

Rechercher:
Aller à:  

 


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