Mettre dans une table des données d'un fichier

chloe1511 Messages postés 8 Date d'inscription mercredi 17 novembre 2004 Statut Membre Dernière intervention 17 novembre 2004 - 17 nov. 2004 à 12:59
yvessimon Messages postés 637 Date d'inscription mardi 22 avril 2003 Statut Membre Dernière intervention 9 janvier 2017 - 17 nov. 2004 à 17:30
bonjour, j'arrive( ggrace a julio merci;-)) a mettre des données dans un tmemo, mais je voudrais enfait prendre dans mon fichier et les inserer dans une table( j'ai trois données par ligne )
comment puis je faire le decoupage?

6 réponses

vincentstryckmans Messages postés 228 Date d'inscription lundi 5 avril 2004 Statut Membre Dernière intervention 25 octobre 2006
17 nov. 2004 à 13:13
salut Chloe,

Le découpage classique que l'on utilise pour stocker les lignes d'un fichier (que je suppose être de type texte) est de séparer les données par une virgule. C'est le format CSV : Comma Separeted Value , dans la langue de Molière : Valeur Séparée par virgule.
Le carriage return (code ascii 13) indique la fin de la ligne donc la fin du record dans la table.
En général, la première ligne du fichier reprend le nom des champs de ta table.

Essaie toi avec Excel. Crée un fichier texte simple du genre :
champ1,champ2,champ3
1,5,2
5,6,8
9,4,3
et lit par Excel en tant que fichier texte. Regardes, tu comprendras mieux. (Rem : avec Excel et selon son code de langue, il est possible que la virgule ne soit pas reconnu et qu'il faille utiliser le point-virgule). En fait, c'est simplement le séparateur qui change.

Si tu veux être sûr de maitriser les séparations, tu peux choisir toi-même ton séparateur et le terminateur de ligne en prenant en code ascii que tu ne trouveras jamais dans tes données. Du genre {,},#,@, ....

Si tu as besoin d'aide, n'hésite pas. Je suis sur le forum quais tous les jours.

Bonne prog

Et comme disait ma grand-mère : il y a toujours du soleil derrière les nuages.

Vincent Stryckmans
0
yvessimon Messages postés 637 Date d'inscription mardi 22 avril 2003 Statut Membre Dernière intervention 9 janvier 2017
17 nov. 2004 à 13:28
Regarde le source mise à jour lecture fichier du 13 11 04.

dans un note pade tu crée un texte avec le nombre de ligne et de colonne que tu souhaites.
les colonnes sont séparées par un caractère spécifique virgule ou tabulation #9 ... ou autre .
chaque ligne se termine automatiquement par un retour chariot(= returne) #13 et parfois un Line feed #10.

il te suffit alors de lire ce fichier en tant que text ASCII,avec le composant , le séparateur est une variable.

si non utilise un combobox avec combobox1.item.load('nom du fichier'), c'est plus rappide.

Remarque avec les tables dynamiques il est possible d'ajuster a tout moment le nombre de ligne, de plus chaque ligne peuvent avoir un nombre de colonne variable

IL EST 13.H30 alors a table

yvessimon
0
chloe1511 Messages postés 8 Date d'inscription mercredi 17 novembre 2004 Statut Membre Dernière intervention 17 novembre 2004
17 nov. 2004 à 13:51
oulà!lol enfait mon fichier est crée, avec des points virgules, c'est pour le lire que je vois pas comment faire, pour lui dire que c'est au point virgule qu'il doit changer de collone( et comment faire mes colonnes) et pour lui dire qu'au retour chariot ça change de ligne?
0
yvessimon Messages postés 637 Date d'inscription mardi 22 avril 2003 Statut Membre Dernière intervention 9 janvier 2017
17 nov. 2004 à 15:54
Ton fichier existe et il est au format text , ASCII, alors la moitié du travail est fait.

la lecture du fichier se fait ligne par ligne avec readln(F,BUF)
SANS SE PREOCCUPER DE LA FIN DE LIGNE, ficheir text.

dans chacune des ligne contenu dans Buf recherche les ';' avec
if Buf[n]= ';' then ....
l'indice n de la chaine commence à 1 et se termine à length(buf)

si Buf[n] = ';' alors ce qui précéde constiue la colonne
se qui suit sera la nouvelle colonne

exemple de chaine possible : abcd;efh;;e;

il peut y avoir des colonnes vide --> ;; qui se suivent

yvessimon
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
chloe1511 Messages postés 8 Date d'inscription mercredi 17 novembre 2004 Statut Membre Dernière intervention 17 novembre 2004
17 nov. 2004 à 16:15
ok mais comment j'affiche mes colonne (les separations)?
0
yvessimon Messages postés 637 Date d'inscription mardi 22 avril 2003 Statut Membre Dernière intervention 9 janvier 2017
17 nov. 2004 à 17:30
pour afficher les données ASCII , string, dans un Tmemo

SOIT :
Memo1.text := ' tout les text '

soit ligne par ligne

Memo1.lines.add('la chaine string à afficher');
et autant de ligne que de chaines .....

yvessimon
0
Rejoignez-nous