Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2487 connectés 

  FORUM HardWare.fr
  Programmation
  Ada

  Importer mots d'un fichier texte dans un tableau

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Importer mots d'un fichier texte dans un tableau

n°1272788
cookie94fr
Posté le 24-12-2005 à 00:02:01  profilanswer
 

Bonjour à tous
 
Je cherche désespérement à récupérer chaque mot d'un fichier texte afin de pouvoir les classer ensuite par ordre alphabétique, comme pour créer un dictionnaire. Pour l'instant j'ai réussi à faire repérer chaque mot avec Is_letter, mais ensuite j'essaie de stocker les mots dans un tableau pour les classer et là je coince complètement !!! Impossible de créer ce tableau. Y aurait il une âme charitable qui pourrait m'aider en cette période de fête  ;) ?
 
Voilà le code que j'ai pour l'instant :
 
with Ada.Text_Io,Ada.Integer_Text_Io,ada.Characters.Handling;
use Ada.Text_Io,Ada.Integer_Text_Io,ada.Characters.Handling;
 
procedure Maison is
   
   F:File_Type;
   Ligne:String(1..80);
   Lg:Integer;
   A:Integer;
   B:Integer;
   
begin
   A:=0;
   b:=0;
   Open(F,In_File,"c:\premier2.txt" );
   while not (End_Of_File(F)) loop
      Get_Line(F,Ligne,Lg);
      for I in 1..Lg loop
         
         if Is_Letter(Ligne(I)) then
            B:=0;--c'est juste un test
         else
            Put(Ligne(A+1..I));new_line;          
            A:=I;
         end if;
         
      end loop;  
            put(ligne(a+1..lg));    
    end loop;
         
         
end Maison;
 
Merci d'avance pour vos réponses
 
Sandra

mood
Publicité
Posté le 24-12-2005 à 00:02:01  profilanswer
 

n°1272832
Profil sup​primé
Posté le 24-12-2005 à 10:53:57  answer
 

j'essai d'ecrire un truc avec ton code, peut-tu le commenter s'il te plais
 
que font les ligne 23 et 28 ? (affiche ....,, affiche ....)

n°1272844
Profil sup​primé
Posté le 24-12-2005 à 11:22:31  answer
 

Un premier jet, à partir de ton code, mais je suis pas trés fort, j'aurais pas fait pareil.
 
1:with Ada.Text_Io, Ada.Integer_Text_Io, ada.Characters.Handling;
2:use Ada.Text_Io, Ada.Integer_Text_Io, ada.Characters.Handling;
3:procedure Main is
4:   subtype string_80 is String (1..80);
5:   F:File_Type;
6:   Ligne:String_80 := (others => ' ');
7:   Lg:Integer := 0;
8:   A:Integer := 0;
9:   B:Integer := 0;
10:   Borne_Du_tableau : constant := 2_000;
11:
12:   Tableau : array (1..Borne_Du_Tableau) of String_80 := (others => (others => ' '));
13:   Position_Dans_Le_Tableau : Positive := 1;
14:begin
15:   Open(F,In_File,"toto" );
16:   while not (End_Of_File(F)) loop
17:      Get_Line(F,Ligne,Lg);
18:      for I in 1..Lg loop
19:         if Is_Letter(Ligne(I)) then
20:            null;
21:         else
22:            Tableau(Position_Dans_Le_Tableau)(A+1..I-1) := Ligne(A+1..I-1);
23:
24:            A:=I;
25:            Position_Dans_Le_Tableau := Position_Dans_Le_Tableau + 1; --mot suivant
26:         end if;
27:      end loop;
28:      Position_Dans_Le_Tableau := Position_Dans_Le_Tableau + 1; --mot suivant
29:   end loop;
30:
31:   --------------------------
32:   -- Affichage du tableau --
33:   --------------------------
34:   for I in Tableau'Range loop
35:      Put_line(Tableau(I));
36:   end loop;
37:
38:end Main;

n°1272860
cookie94fr
Posté le 24-12-2005 à 12:54:52  profilanswer
 

Merci tout d'abord pour ta réponse, cela me donne une idée sur le remplissage des tableaux  :pt1cable: !
Pour la ligne 23 et 28 c'était juste pour voir le résultat j'ai rajouté la ligne 28 en dehors de la boucle For car il ne m'affichait pas le dernier mot de la phrase...
encore merci avec çà je vais pouvoir continuer à avancer je posterais mon avancement.
 
Sandra.

n°1274057
cookie94fr
Posté le 28-12-2005 à 14:11:45  profilanswer
 

j'ai effectué le test effectivement ça fonctionne le seul inconvénient c'est que les espaces sont récupérés...
ex: si j'importe d'un texte la phrase "la maison est ........  blanche" je vais avoir dans le tableau :
tableau(1) la
tableau(2)    maison
    "  
    "
    "
tableau(n)                                blanche  
 
Si quelq'un a une autre solution pour remplir un tableau avec des variables string car j'ai des difficultés !
 
Merci
 
Sandra. :cry:

n°1274095
Profil sup​primé
Posté le 28-12-2005 à 15:32:26  answer
 

A, tu à copier simplement l'exemple que je t'ai donné,,.. et ça ne va pas, évidement. De toute façon il y a d'autre problème en vue. J'ai deux solution à te proposer ; La premiere consiste a garder le code courant et a extraire les mots, par exemple pour les afficher comme suit
 
avec Ada.strings, Ada.strings.fixed;  
 
for I in Tableau'Range loop
      if index_non_blank(tableau(I)) /= 0 then -- si la chaîne n'est pas vide
         put(tableau(i) -- afficher ieme element du tableau
      (index_non_blank(tableau(I)) -- du 1er caractere non blanc
       ..index_non_blank(tableau(i), -- au  
    backward))); --   dernier caractere non blanc
      end if;
   end loop;
 
 
 
 
 
 

n°1274098
Profil sup​primé
Posté le 28-12-2005 à 15:54:23  answer
 

Avec ce changement a la ligne 22, tu obtiens un ligne de 80 caracteres avec le mot en début de ligne :
22:  Tableau(Position_Dans_Le_Tableau)(1..(I)-(A+1)) := Ligne(A+1..I-1);

n°1374153
beluh
Posté le 24-05-2006 à 14:35:49  profilanswer
 

Bonjour,
Je suis très débutant en matière de programmation. Mais maintenant, je suis en train de traiter avec un questionnaire numérique mais sous forme .txt . pour pouvoir les traiter il faut que je copie colle un à un les réponses dans un tableau .xls mais il me faut beacoup de temps pour le faire.
Voici par exemple le format du fichier source:
 
Nom=Thomas
Prenom=Francis
Age=20
....
...
..
Ce que j'aimerai faire c'est de rassembler toutes les réponses dans un seul fichier xls.
Quelqu'un veut m'aider??

n°1374249
Profil sup​primé
Posté le 24-05-2006 à 15:16:35  answer
 

beluh a écrit :

Bonjour,
Je suis très débutant en matière de programmation. Mais maintenant, je suis en train de traiter avec un questionnaire numérique mais sous forme .txt . pour pouvoir les traiter il faut que je copie colle un à un les réponses dans un tableau .xls mais il me faut beacoup de temps pour le faire.
Voici par exemple le format du fichier source:
 
Nom=Thomas
Prenom=Francis
Age=20
....
...
..
Ce que j'aimerai faire c'est de rassembler toutes les réponses dans un seul fichier xls.
Quelqu'un veut m'aider??


 
une premiere idée : tu recupere tous tes noms, prenoms, ages, ect...  dans des fichier distincs et tu fais des copier/coller par colone

n°1374522
beluh
Posté le 24-05-2006 à 18:36:00  profilanswer
 


 
Merci pour la réponse très rapide!! J'aime bien cette proposition, mais je ne sais pas comment je vais le faire! Qu'est ce que tu me proposes!!
Encore merci!!

mood
Publicité
Posté le 24-05-2006 à 18:36:00  profilanswer
 

n°1374527
Profil sup​primé
Posté le 24-05-2006 à 18:46:45  answer
 

beluh a écrit :

Merci pour la réponse très rapide!! J'aime bien cette proposition, mais je ne sais pas comment je vais le faire! Qu'est ce que tu me proposes!!
Encore merci!!


 
ben, vu que tu as posté dans la catégorie Ada, le truc c'est de te faire un petit programme Ada qui fait tous ça, C'est pas bien compliqué si ton formulaire est bien foutu !  :)  
Maintenant si ton truc c'est plutot Microsoft, c'est de te faire une macro sous Word ou un equivalent pour faire tout ça mais la je peut rien pour toi, vas plutot voir dans les catégorie adequate Windows et companie !

n°1374691
stupid_cod​er
<Dans le doute, reboot...>
Posté le 24-05-2006 à 23:20:27  profilanswer
 

cookie94fr a écrit :


   

Code :
  1. Open(F,In_File,"c:\premier2.txt" );
  2.    while not (End_Of_File(F)) loop
  3.       Get_Line(F,Ligne,Lg);
  4.       for I in 1..Lg loop
  5.        
  6.          if Is_Letter(Ligne(I)) then
  7.             B:=0;--c'est juste un test
  8.          else
  9.             Put(Ligne(A+1..I));new_line;         
  10.             A:=I;
  11.          end if;


         


 
Bonjour sandra,
 
J'ai déjà vu le Is_letter quelque part mais je sais plus où...
Peux tu me rappeler son utilité ?
 


---------------
...pour les miracles ? prévoir un délai !
n°1374855
beluh
Posté le 25-05-2006 à 12:28:00  profilanswer
 


Je pense que cette catégorie me depasse complètement!!! Merci quand même pour ton aimable attitude!! je reviendrai quand je serai à la hauteur de comprendre sk c programme ADA. En fait, c par hasard que je suis tombé sur cette catégorie, j'espère que tu comprends sk je vx dire!!


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Ada

  Importer mots d'un fichier texte dans un tableau

 

Sujets relatifs
[ASP] Executer un fichier dans une page ASPbouton texte
Récupérer la taille d'un tableauUpload de fichier en php
Enregistrer une ListBox dans un FichierBase de données de mots
Fichier de ressourcesComment afficher/récupérer des éléments (POO) d'un tableau
[Pascal] Décalaration d'un tableauProblème d'écriture dans un fichier
Plus de sujets relatifs à : Importer mots d'un fichier texte dans un tableau


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR