Bonjour,
je voudrais savoir quelles sont les commandes pour ouvrir, lire ligne par ligne, et fermer un fichier excel .csv en delphi. Merci,
Arthur
Bonjour,
je voudrais savoir quelles sont les commandes pour ouvrir, lire ligne par ligne, et fermer un fichier excel .csv en delphi. Merci,
Arthur
Il n'y a pas de commande spécifique au CSV, tu peux prendre la fonction Explode sur Phidel.com (parti units), pour splitter une ligne csv, lu par readLn par exemple (quoi que peu posé aussi des problèmes aussi avec les retour charriot dans une valeur), une TStringList.LoadFromFile, me semble peu fiable pour les même raison, ... je conseille le readln si il n'y a pas de retour charriot dans les valeurs ...
Donc sinon, un TFileStream ou un BlockRead sur un File of Byte, qui lit le fichier en détectant les quote, les ; et retour charriot ...
sinon, tu cherche sur le web, tu as un bun TCSVReader qui doit existé non ?
Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !![]()
Attention Troll Méchant !
"Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
L'ignorance n'excuse pas la médiocrité !
L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
Il faut avoir le courage de se tromper et d'apprendre de ses erreurs
tu peux simplement utiliser une TStringList avec son LoadFromFile(...).
Après tu parses tes lignes une à une pour séparer les champs CSV !
Il me semble aussi (mais à vérifier) que la JVCL proposait un fournisseur de donnée CSV qui pouvait alimenter un TDataSet ... à vérifier je m'en souvient plus exactement.
Cordialement
Octal
Bonjour,
Un fichier CSV n'est rien d'autre qu'un fichier texte avec des séprateurs, je te conseil d'utiliser les fonction pascal d'ouverture, lecture et fermeture des fichier texte.
C'est super simple d'utilisation.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 VAR F:TextFile; begin {$I-} assignFile(F,FICHIER.CSV); FileMode := 0; Reset(F); {$I+} repeat ReadLn(F,Ligne); Until EOF(F); CloseFile(F);
Cordialement
Qays
Avec la StringList, il faut bien spécifier le Delimiter et le QuoteChar, ... personnellement, j'ai eu quelques effets de bords, avec des retours charriot DANS une valeur,
idem avec le ReadLn, faut gérer les retour charriot encadrés de quote ...
Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !![]()
Attention Troll Méchant !
"Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
L'ignorance n'excuse pas la médiocrité !
L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
Il faut avoir le courage de se tromper et d'apprendre de ses erreurs
Partager