FR 2944895 A1 20101029 FR 0902028 A 20090427 PROCEDE D'ANALYSE HEURISTIQUE D'UN FICHIER ET PRODUIT PROGRAMME D'ORDINATEUR POUR LA MISE EN OEUVRE D'UN TEL PROCEDE L'invention porte sur un procédé d'analyse heuristique d'un fichier représentatif d'un tableau de données, afin de reconstituer ledit tableau, ainsi que sur un produit programme d'ordinateur comprenant des instructions de code de programme pour la mise en oeuvre d'un tel procédé. L'invention s'applique en particulier à l'interprétation des fichiers de type � CSV � (� comma separated values �, c'est à dire � valeurs séparées par virgule �). Le format CSV est un format informatique ouvert permettant de représenter des données sous la forme d'un tableau. Il s'agit d'un format texte, structuré en lignes de caractères séparées par un retour de chariot (caractère � CRLF �). Chaque ligne est subdivisée en un même nombre de colonnes par un caractère prédéfini, dit � séparateur de colonnes �. On obtient ainsi une représentation � unidimensionnelle � d'un tableau bidimensionnel. Le séparateur de colonnes peut être traité comme un caractère ordinaire à condition d'apparaître à l'intérieur d'un groupe de caractères enfermés entre des doubles guillemets. Ce format est très utilisé, en raison de sa simplicité. Cependant, son utilisation est rendue difficile par !e fait qu'il n'est qu'imparfaitement normalisé. En effet, contrairement au séparateur de lignes (caractère � CRLF �), le séparateur de colonnes n'est pas standardisé. Il s'agit parfois de la virgule û d'où le nom du format û mais ce choix n'est pas très heureux, car la virgule est également utilisée comme séparateur décimal (ou de milliers, dans les pays anglo-saxons), dans les adresses, etc. Par conséquent d'autres caractères (point-virgule, tabulation, tiret, barre oblique...) sont couramment utilisés en tant que séparateurs de colonnes. Il s'ensuit que l'utilisateur souhaitant importer un fichier de type CSV dans un tableur doit choisir manuellement le caractère de séparation des colonnes. Cette tâche est fastidieuse, mais son automatisation n'a pas été possible à ce jour. L'invention vise à résoudre ce problème. Dans un mode de réalisation préféré, l'invention permet également d'identifier, de manière automatique, un format des données du fichier. Par � format � on entend ici en particulier un format � régional �. En effet certaines données telles que les dates ou les nombres s'écrivent d'une manière différente dans différents pays : ainsi, dans de nombreux pays la virgule est le séparateur décimal et le point le séparateur optionnel des milliers, tandis que dans les pays anglo-saxons la réciproque est vraie ; de même, les dates s'écrivent sous la forme jour/mois/année en Europe (Royaume-Uni inclus) et mois/jour/année aux Etats-Unis, et ainsi de suite. L'identification automatique du � format régional � du fichier ù supposé unique ù permet l'interprétation des données contenues dans les groupements signifiants. Une idée à la base de ce mode de réalisation préféré de l'invention est que les problèmes consistant à identifier la structure du tableau et son � format régional � ne doivent pas être résolus séparément, mais de manière synergique, ce qui permet de trouver une solution heuristique particulièrement performante. Il est important de souligner le caractère heuristique du procédé de l'invention : il n'est pas possible de garantir que le tableau sera reconstitué de manière exacte, mais en fait cela se produit dans l'immense majorité des cas, sauf lorsqu'on utilise des fichiers trop petits ou � pathologiques �. En cas d'échec, bien entendu, il reste possible d'avoir recours à une identification manuelle des caractères séparateurs et/ou du format régional. Un objet de l'invention est donc un procédé d'analyse heuristique d'un fichier représentatif d'un tableau de données afin de reconstituer ledit tableau, le fichier étant structuré en lignes de caractères comportant des caractères séparateurs de colonnes, caractérisé en ce qu'il comporte la recherche d'un caractère, à l'exception de caractères éventuels encadrés par des doubles guillemets, dont le nombre d'occurrences est le même pour toutes les lignes ; ledit caractère étant choisi en tant que séparateur de colonnes de manière à déterminer une structure de tableau. Selon un mode de réalisation préféré de l'invention, le procédé peut comporter : a. l'identification, à l'intérieur de chaque ligne, de groupements de caractères considérés comme signifiants, au moins certains des caractères n'appartenant pas à de tels groupements étant considérés comme des séparateurs de colonnes potentiels ; cette identification étant effectuée en parallèle pour plusieurs formats de données prédéfinis ; b. pour chaque format de données, la recherche d'un caractère, parmi lesdits séparateurs de colonnes potentiels, dont le nombre d'occurrences est le même pour toutes les lignes ; ledit caractère étant choisi en tant que séparateur de colonnes effectif, de manière à déterminer une structure de tableau dépendante du format ; et c. l'application d'un critère de sélection pour choisir un format de données et le séparateur de colonnes correspondant comme étant les plus vraisemblables. Selon des variantes particulières du procédé de l'invention : - L'étape c. peut comporter l'élimination du ou des formats prédéfinis ne permettant pas d'identifier un séparateur de colonnes effectif. - L'étape a. peut comporter l'utilisation d'une pluralité de stratégies d'identification de groupements de caractères considérés comme signifiants pour chaque format de données prédéfini. - L'étape c. peut comporter la sélection du format ou du couple format de données / stratégie d'identification de groupements de caractères conduisant à l'identification du plus grand nombre de caractères considérés comme signifiants. - Les étapes a. et b. peuvent être mises en oeuvre conjointement, et comporter: al. l'identification, à l'intérieur de chaque ligne, desdits groupements de caractères considérés comme signifiants ; 4 a2. le comptage des occurrences des séparateurs de colonnes potentiels dans ladite ligne ; et a3. sauf pour la première ligne analysée, la suppression des séparateurs de colonnes potentiels dont le nombre 5 d'occurrences est différent de celui de la ligne précédente. - Le procédé peut comporter également l'identification de types prédéfinis desdits groupements de caractères considérés comme signifiants. - Le procédé peut comporter également l'identification de la 10 première ligne du tableau comme étant une ligne d'en-têtes si toutes les autres lignes du tableau présentent une structure commune, la structure de ladite première ligne étant différente. - Le procédé peut comporter également l'identification de la première colonne du tableau comme étant une colonne d'en-têtes si toutes 15 les autres colonnes du tableau présentent une structure commune, la structure de ladite première colonne étant différente. Un autre objet de l'invention est un produit programme d'ordinateur comprenant des instructions de code de programme pour la mise en oeuvre d'un tel procédé. 20 D'autres caractéristiques, détails et avantages de l'invention ressortiront à la lecture de la description faite en référence aux figures 1, 2, 3 et 4 annexées, qui illustrent un exemple de mise en oeuvre du procédé de l'invention. L'invention sera décrite en référence à des cas particuliers, 25 dans lesquels le fichier à analyser est de type CSV et peut contenir du texte, des nombres éventuellement décimaux et des dates. On considère trois formats de données, ou paramètres, possibles, correspondant à des régions géographiques distinctes : un format � français �, dans lequel la virgule sert comme 30 séparateur décimal, le point comme séparateur optionnel des milliers et les dates s'écrivent de la manière suivante : jour (entier compris entre 1 et 31) / mois (entier compris entre 1 et 12) / année (entier à quatre chiffres, ne commençant pas par zéro) ; - un format � américain �, dans lequel le point sert comme séparateur décimal, la virgule comme séparateur optionnel des milliers et les dates s'écrivent de la manière suivante : mois (entier compris entre 1 et 12) / jour (entier compris entre 1 et 31) / année (entier à quatre chiffres, ne commençant pas par zéro) ; et - un format � britannique � dans lequel le point sert comme séparateur décimal, la virgule comme séparateur optionnel des milliers et les dates s'écrivent de la manière suivante : jour (entier compris entre 1 et 31) / mois (entier compris entre 1 et 12) / année (entier à quatre chiffres, ne commençant pas par zéro). II est clair qu'il s'agit là d'une simplification : en réalité, les dates peuvent s'écrire de plusieurs manières différentes, par exemple avec le nom du mois écrit en lettres, en entier ou sous une forme raccourcie. Par ailleurs, d'autres types de données peuvent être utilisés, tels que des sommes d'argent (nombre entier ou décimal suivi ou précédé par le nom ou le symbole de la devise), des adresses, des adresses de courriel, des numéros de téléphone, des pourcentages, etc. Le jeu de caractères utilisé par le fichier est supposé connu. Il existe d'ailleurs de nombreuses techniques permettant de le déterminer de manière automatique. On fait par ailleurs les hypothèses suivantes, qui ne sont pas très limitatives, car on peut supposer qu'elles sont satisfaites par tout fichier 25 CSV � raisonnable � : - le caractère utilisé pour séparer les colonnes existe (il y a donc au moins deux colonnes ù cette hypothèse sera cependant relâchée par la suite) et il est unique sur toute la longueur du fichier ; - le double guillemet �"� est un caractère spécial et ne peut 30 pas être un séparateur de colonnes. Tous les caractères compris entre deux doubles guillemets sont traités littéralement et ne peuvent pas être à cheval entre deux colonnes, même si la chaîne de caractères contient le caractère de séparation de colonnes ; - Le nombre de colonnes est constant pour chaque ligne du fichier ; - Les paramètres de format (� paramètres régionaux �) ne peuvent pas varier au sein d'un même fichier. Par ailleurs, certains formats de nombres et de dates ne sont valides que pour certains paramètres régionaux ; - La première ligne peut être de nature différente des lignes lo suivantes si elle correspond aux en-têtes de colonnes ; - De même, la première colonne peut être de nature différente des autres colonnes si elle correspond aux en-têtes de lignes. Le procédé selon l'invention vise à identifier le caractère séparateur et, par conséquent, à déterminer le nombre de colonnes. 15 Optionnellement, un tel procédé peut permettre de déterminer également : - le format � géographique � des données (limité dans les exemples aux trois possibilités précitées : français, américain, anglais) ; - si la première ligne et/ou la première colonne 20 représentent des en-têtes ; - le type (nombre, date, texte) et, le cas échéant, la valeur de chaque donnée. Comme mentionné plus haut, le mode préféré de réalisation de l'invention se base sur la détermination simultanée du caractère 25 séparateur de colonnes (et donc du nombre de colonnes) et du format des données û format qui n'a pas nécessairement une signification � géographique � comme dans les exemples qui suivent. Cette idée peut être exposée en s'aidant de quelques exemples très simples. On peut commencer par considérer le fichier suivant, 30 constitué de deux lignes : 1,234,567 1,234 Prises isolément, ces deux lignes peuvent chacune être interprétées de deux façons : virgule comme séparateur de milliers ou virgule comme séparateur de colonnes. Il est clair que la virgule ne peut pas être un séparateur décimal, car dans ce cas la première ligne aurait un format s irrégulier. Par contre, une seule interprétation permet de maintenir le nombre de colonnes constant : virgule comme séparateur de milliers, une seule colonne. A l'inverse, dans le fichier suivant : 10 1,234,567 1,23,456 La virgule n'est pas un séparateur de milliers valide sur la deuxième ligne, ce qui suggère de l'interpréter plutôt comme un séparateur de colonnes (y compris, rétroactivement, pour la première ligne, là où les 15 deux options étaient possibles). Si l'on s'en tient uniquement à la règle du nombre de colonnes constant, les caractères � point �, � virgule � et � barre oblique � sont tous les trois des séparateurs de colonnes potentiels dans le fichier suivant : 20 1.25,13/10/2008,9.99 10.5,5/5/2008,200.5 La première ligne du fichier peut donc être décomposée de la manière suivante : � 1 � ù � 25,13/10/2008,9 � ù � 99 � (Si le point est le 25 séparateur de colonnes); ou � 1.25 � ù � 13/10/2008 � ù � 9.99 � (Si la virgule est le séparateur de colonnes) ; ou � 1.25,13 � ù � 10 � ù � 2008,9.99 � (Si la barre oblique est le séparateur de colonnes). 30 On voit donc que le simple comptage des instances des caractères dans les différentes lignes du fichier est parfois insuffisant pour identifier de manière fiable le séparateur de colonnes. Par ailleurs, cette approche ne fournit aucune indication quant au format des données. C'est à ce point qu'intervient la notion de groupement de caractères signifiant, ou considéré comme tel. Un groupement � signifiant � est tout groupement de caractères qui est susceptible, en raison de sa forme, de représenter autre chose que du texte : un nombre, une date, un numéro de téléphone, etc. Un groupement de caractères n'est pas signifiant en soi, mais seulement dans le contexte d'un format de données. Par exemple, � 1.25 � est un groupement qui peut être considéré comme signifiant en format � anglais � ou � américain � : il représente un nombre décimal. En revanche, il n'est pas signifiant (il ne représente que du texte) en format français. De même, 13/10/2008 est signifiant (une date) en format 15 � français � ou � anglais �, mais pas en format � américain �. Le procédé selon le mode préféré de réalisation de l'invention comporte l'identification, à l'intérieur de chaque ligne, de groupements de caractères potentiellement signifiants, et cela pour chacun des formats prédéfinis. 20 Ainsi, en format français, on pourra découper la première ligne du fichier de la manière suivante : � 1 � (nombre) ù � .25,13/10/2008,9. � (texte) ù �99 � (nombre) ; ou encore : � 1 � (nombre) ù � . � (texte) ù � 25,13 � (nombre) ù � / � 25 (texte) ù � 10 � (nombre) ù � / � (texte) ù � 2008 � (nombre) ù � , � (texte) ù � 9 � (nombre) ù � . � (texte) ù �99 � (nombre) ; ou encore : � 1.25, � (texte) ù � 13/10/2008 � (date) ù � ,9.99 � (texte), et ainsi de suite. On voit que plusieurs découpages sont possibles pour 30 chaque format régional : il est donc nécessaire de définir une ou plusieurs stratégies de découpage. Par exemple on peut envisager une première stratégie, dite � gloutonne �, qui tend à privilégier les grands nombres et les dates par rapport aux petits nombres, et une deuxième stratégie dite � frugale � qui tend à privilégier les petits nombres. Avantageusement, ces stratégies seront utilisées en parallèle. Une autre idée à la base dudit mode de réalisation préféré de l'invention est que les caractères faisant partie des groupements identifiés comme signifiants ne peuvent pas être des séparateurs de colonnes (les groupements de caractères encadrés par des doubles guillemets sont traités comme des groupements signifiants). C'est donc seulement parmi les autres caractères, qui ne font partie d'aucun groupement signifiant, que l'on cherchera celui qui présente un même nombre d'occurrences dans toutes les lignes, et qui sera donc identifié comme étant le séparateur de colonnes effectif. Si le nombre de lignes du fichier est suffisant, le plus souvent un seul caractère satisfera à cette condition, et cela pour un seul format. On aura donc identifié en même temps la structure du tableau représenté par le fichier et le format des données dudit tableau. Le principe de fonctionnement de l'invention sera maintenant illustré à l'aide d'un exemple plus complet. Dans cet exemple, on cherche à analyser le fichier suivant, constitué de quatre lignes : Nom,Age,Date de naissance Pierre,38,10/5/1970 Paul,20,25/8/1988 Jacques,70,7/7/1938 L'interprétation de ce fichier est évidente pour un être humain, 25 mais pas pour un ordinateur. Comme dans l'exemple précédent, on considère trois formats régionaux (français - FR, anglais - UK et américain - US), avec les deux stratégies � gloutonne � et � frugale �, et des données de type texte, date ou nombre. 30 On remarquera que la première ligne constitue un en-tête, et est donc différente des autres lignes. La méthode de l'invention permet de gérer cette difficulté supplémentaire. 2944895 io La figure 1 illustre l'analyse de la première ligne du fichier. En principe, cette ligne est découpée en groupements signifiants de six manières différentes (deux stratégies pour trois formats régionaux). Concrètement, elle ne contient que du texte, et donc aucun groupement signifiant ne peut être 5 identifié, et cela quel que soit le format considéré. Tous les caractères (N, o, m, � , �, A, g, e, D, a, t, � �, d, n, i, s, c) sont donc considérés comme des séparateurs de colonnes potentiels, et leurs occurrences sont comptées. Pour chaque couple format régional / stratégie, un compteur indique le nombre de caractères potentiellement signifiants identifiés depuis le 10 début du fichier. Ces compteurs sont initialisés à zéro, et leurs valeurs restent nulles après analyse de la première ligne (qui ne contient que du texte, et donc aucun caractère signifiant). L'analyse de la deuxième ligne (figure 2) s'avère moins banale. 15 En format US, stratégie � gloutonne �, l'algorithme identifie les groupements signifiants suivants : � 38 � (nombre) et � 10/5/1970 � (date), soit 11 caractères ; le compteur prend donc la valeur 11. Les séparateurs de colonnes potentiels sont donc : � P �, � i �, � e �, � r � et � , �. Or, � P � et � r � peuvent être écartés tout de suite, car ces caractères 20 étaient absent dans la première ligne : il ne peut donc pas s'agir de séparateurs de colonne effectifs. Le caractère � e � doit également être écarté, car il apparaît quatre fois dans la première ligne, mais seulement deux fois dans la deuxième. Seules les caractères � , � et � i �, dont le nombre d'occurrences est le même dans la première et la deuxième ligne sont donc retenus comme des séparateurs de colonnes potentiels. En format US, stratégie � frugale �, les groupements signifiants sont : � 38 �, � 10 �, � 5 � et � 1970 �, soit 9 caractères. Les séparateurs de colonnes potentiels sont donc : � P �, � i �, � e �, � r �, � , � et � / �. Comme dans le cas précédent, seuls les caractères � , � et � i � présentent un même nombre d'occurrences dans la première et dans la deuxième ligne, et sont donc retenus comme séparateurs de colonnes potentiels. 2944895 Il En format UK, les résultats sont les mêmes que pour le format US. II n'est donc pas nécessaire de décrire l'analyse en détail. En format FR, stratégie � gloutonne �, les groupements signifiants sont � 38,10 � (nombre, avec virgule comme séparateur décimal), 5 � 5 �, et � 1970 �, soit 10 caractères. Les séparateurs de colonnes potentiels sont donc : � P �, � i �, � e �, � r �, � , � et � / �. Mais cette fois, seule une des deux virgules est considérée comme un séparateur de colonnes potentiel : en effet, la virgule qui apparaît dans � 38,10 � appartient à un groupement signifiant, et ne peut donc pas servir pour séparer deux colonnes. lo Dans ces conditions, le seul candidat à la fonction de séparateur de colonnes est le caractère � i �, qui apparaît une fois dans chaque ligne en dehors de tout groupement signifiant. La stratégie � frugale � appliquée au format FR donne les mêmes résultats. 15 L'analyse de la troisième ligne est illustrée sur la figure 3. En format US, stratégie � gloutonne �, l'algorithme identifie les groupements signifiants suivants : � 20 � � 25 �, � 8 � et � 1988 �, car � 25/8/1988 � n'est pas une date valable dans ce format. Ces groupements comprennent 9 caractères au total, ce qui amène la valeur du compteur à 20. 20 Il n'est pas nécessaire de compter les occurrences de tous les autres caractères de la ligne, mais on peut s'intéresser uniquement à � , � et � i �, dont le nombre d'occurrences était le même dans la première et la deuxième ligne. Or, le caractère � i � n'apparaît pas dans la troisième ligne du fichier, ce qui indique qu'il ne peut pas s'agir d'un séparateur de colonnes. En revanche, 25 le caractère � , � apparaît bien deux fois, comme dans la première et la deuxième ligne : ce caractère retient donc son statut de séparateur de colonnes potentiel. L'analyse en stratégie � frugale � / format US ou UK donne les mêmes résultats. 30 En format UK, stratégie �gloutonne �, en revanche, le découpage donne les groupes signifiants suivants : � 20 � (nombre) et � 25/8/1988 � (date), soit 11 caractères, ce qui amène la valeur du compteur à 22. Comme dans les autres cas, le caractère � , � reste le seul séparateur de colonnes potentiel. En format FR on rencontre une difficulté : la virgule avait été éliminée lors de l'étape précédente, et seul le caractère � i � était encore considéré comme un séparateur de colonne potentiel. Mais la troisième colonne ne contient pas de � i � : ce caractère doit donc être écarté à son tour. Il s'ensuit que l'adoption du format FR ne permet pas d'identifier un séparateur de colonnes. Cela ne signifie pas nécessairement que le fichier n'utilise pas le format français : après tout, un fichier peut bien ne comporter qu'une seule colonne. Cependant, cette hypothèse est considérée comme peu probable, par conséquent le format FR est écarté à titre provisoire. L'analyse de la quatrième et dernière ligne est illustrée sur la figure 4. Cette analyse est simplifiée par rapport aux précédentes : premièrement, car seulement quatre découpages doivent être considérés (formats US et UK, stratégies � frugale � et � gloutonne �) ; deuxièmement, seul le nombre d'occurrences du caractère � , � doit être déterminé. Dans les quatre cas, on trouve deux occurrences du caractère � , � en dehors de tout groupement signifiant. Le séparateur de colonnes a ainsi été identifié de manière non-ambiguë comme étant le caractère � , �, mais deux formats régionaux restent envisageables : US et UK. Pour choisir entre ces deux formats, on s'intéresse aux valeurs enregistrées dans les compteurs. On trouve : - Format US, stratégie � gloutonne � : 30 caractères signifiants signifiants - Format US, stratégie � frugale �: 26 caractères - Format UK, stratégie � gloutonne � : 32 caractères 30 signifiants et - Format UK, stratégie � frugale �: 26 caractères signifiants. On choisit de préférence le couple format/stratégie qui donne le nombre plus élevé de caractères signifiants, soit le format UK couplé à la stratégie � gloutonne �. En conclusion, on a déterminé que toutes les lignes à 5 l'exception de la première (qui est constituée uniquement par du texte) présentent la structure suivante : texte ù nombre ù date en format anglais avec � , � comme séparateur de colonnes. La première ligne est considérée comme un en-tête en raison 10 de sa structure différente des autres lignes. Comme les colonnes ont toutes des structures différentes (la première est constituée de données de type texte ; la deuxième de données de type nombre ; et la troisième de données de type date) il n'y a pas de raison de considérer que la première colonne constitue un en-tête. 15 Ainsi, le procédé de l'invention a permis de déterminer la structure du tableau en identifiant le séparateur de colonnes, le type de chaque champ de données, le format régional utilisé et le fait que la première ligne constitue un en-tête. Cela a été fait de manière complètement automatique, sans besoin d'aucune intervention de la part de l'utilisateur. 20 Si aucun couple format/stratégie n'avait permis d'identifier un caractère séparateur, cela aurait amené à la conclusion que le fichier était constitué d'une seule colonne. L'identification du format régional et du type des données n'aurait pas été possible. En variante, il est possible de mettre en oeuvre une version 25 simplifiée du procédé, dans laquelle seulement certains des caractères � non signifiants � sont considérés comme des séparateurs de colonnes potentiels. En effet, il est peu probable qu'un caractère alphanumérique (A ù Z, a ù z, 0 ù 9) soit choisi comme séparateur de colonnes : on peut donc se limiter à compter les occurrences des autres caractères non signifiants (signes de 30 ponctuation, caractères spéciaux, etc.). Selon un mode de réalisation encore plus simplifié de l'invention, on peut se limiter à comparer ligne par ligne le nombre d'occurrences de tous les caractères, à l'exception de ceux encadrés par des doubles guillemets, sans identification préalable de groupements signifiants. Cette variante est beaucoup plus simple à mettre en oeuvre mais, comme montré par l'exemple ci-dessus, elle ne permet pas toujours de déterminer de manière univoque un séparateur de colonnes. Il peut donc être avantageux de procéder en deux phases : lors d'une première phase, on met en oeuvre uniquement le procédé simplifié ; si à la fin de cette phase une ambiguïté sur le caractère séparateur subsiste, on met en oeuvre le procédé plus complet, tel que décrit ci-dessus. lo 15 20 25 REVENDICATIONS1. Procédé d'analyse heuristique par ordinateur d'un fichier informatique représentatif d'un tableau de données afin de reconstituer ledit tableau, le fichier étant structuré en lignes de caractères comportant des caractères séparateurs de colonnes, caractérisé en ce qu'il comporte l'utilisation dudit ordinateur pour rechercher un caractère, à l'exception de caractères éventuels encadrés par des doubles guillemets, dont le nombre d'occurrences est le même pour toutes les lignes ; ledit caractère étant choisi en tant que séparateur de colonnes de manière à déterminer une structure de tableau. 2. Procédé selon la revendication 1, comportant les étapes suivantes : a. l'identification, à l'intérieur de chaque ligne, de groupements de caractères considérés comme signifiants, au moins certains des caractères n'appartenant pas à de tels groupements étant considérés comme des séparateurs de colonnes potentiels ; cette identification étant effectuée en parallèle pour plusieurs formats de données prédéfinis ; b. pour chaque format de données, la recherche d'un caractère, parmi lesdits séparateurs de colonnes potentiels, dont le nombre d'occurrences est le même pour toutes les lignes ; ledit caractère étant choisi en tant que séparateur de colonnes effectif, de manière à déterminer une structure de tableau dépendante du format ; et c. l'application d'un critère de sélection pour choisir un format de données et le séparateur de colonnes correspondant comme étant les plus vraisemblables. 3. Procédé selon la revendication 2, dans lequel l'étape c. 30 comporte l'élimination du ou des formats prédéfinis ne permettant pas d'identifier un séparateur de colonnes effectif. 0 5 10 20 25 4. Procédé selon l'une des revendications 2 ou 3, dans lequel l'étape a. comporte l'utilisation d'une pluralité de stratégies d'identification de groupements de caractères considérés comme signifiants pour chaque format de données prédéfini. 5. Procédé selon la revendication 4, dans lequel l'étape c. comporte la sélection du format ou du couple format de données / stratégie d'identification de groupements de caractères conduisant à l'identification du plus grand nombre de caractères considérés comme signifiants. 6. Procédé selon l'une des revendications 2 à 5, dans lequel les étapes a. et b. sont mises en oeuvre conjointement, et comportent : al. l'identification, à l'intérieur de chaque ligne, desdits groupements de caractères considérés comme signifiants ; a2. le comptage des occurrences des séparateurs de colonnes potentiels dans ladite ligne ; et a3. sauf pour la première ligne analysée, la suppression des séparateurs de colonnes potentiels dont le nombre d'occurrences est différent de celui de la ligne précédente. 7. Procédé selon l'une des revendications 2 à 6, comportant également l'identification de types prédéfinis desdits groupements de caractères considérés comme signifiants. 8. Procédé selon la revendication 7, comportant l'identification de la première ligne du tableau comme étant une ligne d'en-têtes si toutes les autres lignes du tableau présentent une structure commune, la structure de ladite première ligne étant différente. 30 9. Procédé selon l'une des revendications 7 ou 8, comportant l'identification de la première colonne du tableau comme étant unecolonne d'en-têtes si toutes les autres colonnes du tableau présentent une structure commune, la structure de ladite première colonne étant différente. 10. Produit programme d'ordinateur comprenant des 5 instructions de code de programme pour la mise en oeuvre d'un procédé selon l'une des revendications précédentes.