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).
18 nov. 2012 à 10:08
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 !
18 nov. 2012 à 20:59
Bien entendus le fichier est 100% FREE et open, donc tu peux le reprendre à ta guise.
20 nov. 2012 à 11:11
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 !
22 nov. 2012 à 11:20
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)
3 déc. 2012 à 23:22
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.