Csv, csvlist, tstringlist

Soyez le premier à donner votre avis sur cette source.

Vue 9 991 fois - Téléchargée 1 834 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 675 Date d'inscription jeudi 17 avril 2008 Statut Membre Dernière intervention 19 février 2019 14
18 nov. 2012 à 10:08
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 4205 Date d'inscription samedi 16 octobre 2004 Statut Modérateur Dernière intervention 12 mars 2022 37
18 nov. 2012 à 20:59
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 1284 Date d'inscription mardi 28 octobre 2003 Statut Contributeur Dernière intervention 3 juillet 2015 15
20 nov. 2012 à 11:11
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 1284 Date d'inscription mardi 28 octobre 2003 Statut Contributeur Dernière intervention 3 juillet 2015 15
22 nov. 2012 à 11:20
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)
cs_systmd Messages postés 41 Date d'inscription mercredi 25 février 2004 Statut Membre Dernière intervention 29 août 2012
3 déc. 2012 à 23:22
Bonsoir foXi

J'ai rajouté {$Define DO} aprés {$R *.dfm} dans les Main.pas
et supprimer Application.MainFormOnTaskbar := True; dans les dpr et tout et rentré dans l'ordre.

Compile avec D7

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.