Csv, csvlist, tstringlist

Soyez le premier à donner votre avis sur cette source.

Vue 7 149 fois - Téléchargée 1 189 fois


Description

Voici une unité qui surcharge la classe TStringList pour prendre en charge des données CSV.

L'utilisation est très simple et pratique, une aide en HTML est fournie et deux Demos pour en montrer la simplicité et l'utilisation avec des objets standards tel TListBox et TStringGrid.

Fonctionne avec les CSV à champs protégé à partir de D5, tel que : "a","b","c"

Fonctionne avec les CSV de divers format à partir de D2006

Possible problèmes (non testé) avec Delphi XE

ChangeLog :

02/12/12 CSVList et démos
#fixé : non compatibilité entre [D5..D2005], [D2006..D2009], [D2010+]
#fixé : utilisation de StrUtils
#fixé : bug sur la procedure DrawItem dans la demo TListBox
#fixé : bug sur la déclaration de strictDelimiter dans la demo TStringGrid
#ajout : vous pouvez utiliser les directives DO (D5 à D2005), DG (D2006 à D2009), DX (D2010+) dans vos programmes en déclarant CSVList dans les uses de l'interface

02/12/12 Aide
#ajout : projet d'aide vide prés à l'emploi dans empty.help.project.zip
#fixé : bug dans le core AJAX de l'aide.
#fixé : prise en charge des liens externe dans le menu principal.
#fixé : prise en charge incorrecte des ancres de page. vous pouvez désormais appelé une page correctement par son ancre : help.aide.html#pagename
#modifié : !IMPORTANT! les pages d'aide sont maintenant appelée "pg_*.html" seul les fichiers du core gardes leurs noms (menu.html, config.cfg, help.css, helpfix.css, override.css)
#modifié : maintenant le fichier principal de l'aide ne contient plus aucunes informations sur l'aide de votre projet.
#ajout : !IMPORTANT! configuration de l'aide (titres, icon, page par défaut) via help/config.cfg (format JSON).
#ajout : fichier override.css pour surcharger/ajouter vos propres styles

Conclusion :


Vous pourrez vous rendre compte que malgré tout ce qu'on pourrait croire, c'est performant et fluide à l'utilisation.

J'utilise cette technique au boulot pour lire, ecrire, editer ou transformer de gros fichiers CSV (catalogue fournisseurs, base de données client etc) sans rencontrer le moindre problème, même sur d'énormes catalogues de >30Mo (> 60000 références).

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

dubois77
Messages postés
693
Date d'inscription
jeudi 17 avril 2008
Statut
Membre
Dernière intervention
19 février 2019
10 -
Salut Foxy
Je ne peux qu'approuver, étant donné que cela ressemble furieusement à ma GestH de mon unité Systus (voir commentaires précédents)
J'ai auusi bien aimé le module HTML que je vais surement me réaproprier pour faire des fichiers doc : génial
Pour tout cela je note !
f0xi
Messages postés
4307
Date d'inscription
samedi 16 octobre 2004
Statut
Modérateur
Dernière intervention
2 janvier 2019
26 -
Fait, je prépare un petit programme pour l’éditer facilement, ajouter des menus, des blocs etc.
Bien entendus le fichier est 100% FREE et open, donc tu peux le reprendre à ta guise.
sp40
Messages postés
1293
Date d'inscription
mardi 28 octobre 2003
Statut
Contributeur
Dernière intervention
3 juillet 2015
8 -
Salut f0xi !
Bé moi, je ne sais pas ce que je préfère, le code csvList ou ton fichier d'aide html... (malgré ses quelques fautes d'orthographe ;) )
un petit 10 pour le lot !
sp40
Messages postés
1293
Date d'inscription
mardi 28 octobre 2003
Statut
Contributeur
Dernière intervention
3 juillet 2015
8 -
f0xi,

J'ai une violation d'accès sur un savetofile('C:\Test.txt') sous XE2. Est-ce propre à XE2 ?

Par ailleurs, ton (joli) fichier d'aide précise que les versions de delphi sont de 5 à 2010. Or sur D5, il n'y a pas l'unité strutils... (je voulais tester si j'avais la même violation d'accès)
f0xi
Messages postés
4307
Date d'inscription
samedi 16 octobre 2004
Statut
Modérateur
Dernière intervention
2 janvier 2019
26 -
@simon:
peut tu me donner ton code qui provoque l'erreur ?

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.