Arborescence en TXT test de plusieures methodes.[Résolu]

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Avatar de l’utilisateur
Kwai chang caine
Messages : 6989
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Arborescence en TXT test de plusieures methodes.[Résolu]

Message par Kwai chang caine »

A la recherche d'un code le plus rapide possible pour la création l'enregistrement et le chargement d'une arborescence en format TXT.
Je suis tombé sur le groupe d'instruction préférence.
PureBasic - Preference

Généralités

Un fichier Preference contient des paramètres définis pour le programme par l'utilisateur. Il est stocké sur le disque et est chargé à chaque lancement de ce programme (comme les fichiers '.INI' sous Windows par exemple). PureBasic offre la possibilité de créer un fichier hiérarchisé de préférences facilement utilisable sur différentes plate-formes. Le format du fichier est en ASCII avec une préférence par ligne, utilisant une syntaxe 'Clef=Valeur'. Des groupes peuvent être créés pour une lecture plus simple.
C'est de la folie ce FRED, quel boulot de titan il a fait.
Il a pensé à des tonnes de choses, et j'ai découvert cette fonction avec surprise.
En fait en lisant un POST US.
Bref ma question est, est-ce que vous croyez que la gestion d'une arborescence tres importante, un peu comme la base de registre, serais plus, moins ou aussi rapide que si on le faisait avec des openfile, readfile etc .....
En un mot, cette instruction est elle juste un code tout pret pour creer des INI, ou bien, c'est vraiment etudié pour, et preferable à une creation "alamano" d'un fichier.

Donc pour l'instant, j'ai trouvé 3 possibilités de faire ce genre de projet et j'aimerais connaitre votre avis avant de me lancer, pour savoir lequel est le plus performant.

1/ La methode traditionnelle (Openfile, ReadFile, etc) dont OLLIVIER a fait un super code de gestion TreeGadget :
http://www.purebasic.fr/french/viewtopi ... 7874#67874

2/ Les fonction native PB de preference

3/ L'API que m'a fait connaitre BROSSDEN par l'intenediaire de DROOPY

Code : Tout sélectionner

WritePrivateProfileString_(@Section,@key,@string,@INIFile) 
mais qui me gonfle car j'ai pas encore compris comment faire plusieurs niveau :?
http://www.purebasic.fr/french/viewtopi ... 0830#70830

Peut etre en connaissez vous une autre ???

Je vous remercie de votre aide
Bonne journée
Dernière modification par Kwai chang caine le mer. 26/sept./2007 15:04, modifié 1 fois.
Avatar de l’utilisateur
Flype
Messages : 2431
Inscription : jeu. 29/janv./2004 0:26
Localisation : Nantes

Message par Flype »

tout est possible.

moi je ferais en XML. :roll:
Image
Avatar de l’utilisateur
Kwai chang caine
Messages : 6989
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Message par Kwai chang caine »

Ah mon sauveur est de retour :D
Je viens justement de te souhaiter la bienvenue :
http://www.purebasic.fr/french/viewtopi ... 1069#71069

Mais comme dab tu es partout à la fois, comme dab et comme tout bouffon officiel de son bon roi, je te court apres dans les dédales de couloirs de notre immense PureChateau :D

Comme j'avais pas beaucoup de reponse, j'ai posé la question chez nos amis US.
Ils ont répondu comme toi.
Mais alors la, ça pose encore un "bigbleme".
Je connais du XML que le nom, c'est drole hein, hein c'est drole et surtout etonnant :lol: :lol: :lol:
Humm humm, j'en ai marre encore un monde ou ma main n'a jamais mis le pied :cry: :oops:

Je regarderais dans le forum si quelques codes trainent en PB sur le XML.
Je sais que tu en a parlé sur pas mal de POST, mais vu que j'ai meme pas compris le titre du livre, ça m'a pas donné l'envie de le lire :oops:

Et pourtant, j'avais mis ma cape de SuperKwai, tu sais, celle qui donne envie d'apprendre noir de languages differentes. :D

Bref, pourquoi personne y veux me dire comment faire avec cette API pour ecrire deux niveaux imbriqué l'un dans l'autre :cry:
C'est trop injuste, pourquoi créer une super API comme celle la, si on peux pas faire d'arborescence. :?
Avatar de l’utilisateur
Flype
Messages : 2431
Inscription : jeu. 29/janv./2004 0:26
Localisation : Nantes

Message par Flype »

Fred n'a rien 'créé', il fait seulement reprendre l'API windows.

en tout cas, les fichiers .INI ne sont pas du tout adaptés à des enregistrements imbriqués (avec arborescence).

vaut mieux si XML te refroidit partir sur une soluce 'texte brut' (CreateFile/WriteString/Etc.).

un example d'arborescence en texte brut.

pas besoin de chercher bien loin. l'IDE purebasic enregistre les modèles (templates) dans ce type de format :

Image

les templates sont enregistrés ici :

Code : Tout sélectionner

C:\Documents and Settings\Administrateur\Application Data\PureBasic\Templates.prefs
et le contenu du fichier ressemble à çà :

Code : Tout sélectionner

TEMPLATES:1.0

Directory: dossier0
Expanded
  Template: test1
    Code: test
  Template: test2
    Comment: test
    Code: test
CloseDirectory
Directory: dossier1
Expanded
  Template: salut
    Code: 
  Directory: sousdossier1
  Expanded
    Template: soustest1
      Code: 
    Template: soustest2
      Code: 
  CloseDirectory
  Directory: sousdossier2
  Expanded
    Template: soustest1
      Code: 
    Template: soustest2
      Code: 
  CloseDirectory
  Directory: dossier2
  CloseDirectory
CloseDirectory
si çà peut t'inspirer....
Image
Avatar de l’utilisateur
Kwai chang caine
Messages : 6989
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Message par Kwai chang caine »

Eh bah justement, t'es trop fort, tu connais bien ton bouffon, comme tout roi qui se respecte d'ailleur :D .
C'est exactement ce que je voulais faire, le template de PURE.

Nadine, t'es trop fort, mais ce que t'es fort......en plus d'etre magicien t'es devin .....

Chouf l'autre POST que j'avais créé:
http://www.purebasic.fr/french/viewtopi ... 0825#70825

Alors justement qu'en pense tu, pour avoir une espece de base de registre ou template assez grosses vaut il mieux utiliser les fonctions preferences de FRED ou bien comme tu l'a si justement dit les READ, WRITE comme il a fait justement ses preference.
Car apparement il a pas utilisé ses preferences pour créé son fichier preference, c'est un comble non ???? :D

Moi je voudrais connaitre le moyen qui est le plus rapide au chargement du fichier puis sauvegarde et aussi recherche sans passer par une base de donnée, a l'ancienne en TXT :D

Donc

1/ READ / WRITE
2/ Instructions preferences

Ou une autre methode si tu en connais une ?

Merci de te pencher sur mon probleme qui commence à me gonfler depuis quelques jours.
J'aimerais etre sûr de mon choix avant de me lancer.
Car je ne connais pas la taille que va faire le fichier de toutes mes données, je voudrais choisir la meilleure solution.
Ollivier
Messages : 4197
Inscription : ven. 29/juin/2007 17:50
Localisation : Encore ?
Contact :

Message par Ollivier »

Tiens, à propos de rapidité, j'ai une méthode assez étrange:
Dans un prog d'un autre interpréteur, chaque mot de la langue française est un nombre sur 16 bits. J'ai une liste de 65000 mots environ de la langue française dans un fichier TXT, si ça intéresse quelqu'un, il peut se manifester. En fait une phrase française devient devient une suite de nombre, donc compressée et extrêmement rapide d'accès en modification.

Les avantages sont nombreux. Cryptage de documents. Des méga-dossiers de fichiers texte ridicules en taille.

Les pluriels sont inclus (cheval, chevaux, etc...). Par contre, les verbes ne sont pas conjugués. Donc, il y a la conjugaison à élaborer pour qu'elle soit complète.
Avatar de l’utilisateur
Kwai chang caine
Messages : 6989
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Message par Kwai chang caine »

Bah ouai !!
C'est rigolo ton truc.
Ne serais-ce que pour faire un dictionnaire intégré :roll:
Par contre il est surement copyrighté....
Mais on peut toujours s'en inspirer sans le copier réellement pour respecter les droits si il y en a.
Parceque 65000 mots à se palucher, il a du en faloir des petites mains pour entrer tout ça.
Ollivier
Messages : 4197
Inscription : ven. 29/juin/2007 17:50
Localisation : Encore ?
Contact :

Message par Ollivier »

Nan, il est rightdutouté car je me suis pris la tête pendant 4 mois à rassembler tout les mots de la française. J'avais 16-17 ans pour faire un logiciel de création de mots croisés.

J'ai même une version (Turbo-BASIC de Borland) de programme qui comprime ce fichier (mais en lettre majuscule uniquement). L'algo, c'est un truc du style:
>> Comprime les 26 lettres sur 5 bits (A=0... Z=25)
>> Code 26, prends le mot précédent
>> Code 27, Idem et enlève 1 lettres
>> Code 28, Idem 2 lettres
>> Code 29, Idem 3 lettres
>> Code 30, prends le mot précédent et enlève x lettres (avec x défini dans le code suivant)
>> Code 31, mot suivant

Si on interprète les codes comme suit

Code : Tout sélectionner

ABCDEFGHIJKLMNOPQRSTUVWXYZ678901
On peut voir un exemple au pif

Code : Tout sélectionner

ABRI
ABRICOT
ABRICOTIER
ABRITER
A, B, R, I et le retour chariot, ça fait 5 caractères de 8bits ou 40bits
Donc cet exemple alloue 32 octets soit 256bits.
On comprime comme suit (sur 5 bits/lettre)

Code : Tout sélectionner

ABRI6COT6IER0FTER
ça fait 17 caractères de 5 bits soit 85bits.

Voilà! On passe de 256bits à 85bits. Donc la version TXT décompressée fait 800Ko et la version compressée fait 200Ko.

Par contre, je suis en train de me rendre compte que je suis en train de polluer le topic surtout quand Flype vient filer un coup de main (Flype: J'espère que tu m'excuseras...) donc Kwaï on va voir ça en mp.[/code]
Avatar de l’utilisateur
Kwai chang caine
Messages : 6989
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Message par Kwai chang caine »

Par contre, je suis en train de me rendre compte que je suis en train de polluer le topic
Tu sais chacun de tes dires sont passionnants.
Donc par définition, et pour mon avis personnel, ou que tu ecrive, tu ne pollue pas :wink:
surtout quand Flype vient filer un coup de main
Par contre c'est vrai aussi que si ses vacances lui ont parue courtes, moi je les ai trouvée longues :lol:
Répondre