Page 1 sur 2
lecture fichier txt
Posté : 27 sept. 2005, 15:31
par donatello
Bonjour,
je souhaite créer un script php qui récupère et exploite des données qui sont dans un fichier texte.
les données de chaque enregistrement sont séparées par des espaces vides, comme ceci
Enregistrement1 Donnée1 Donnée2 Donnée3
Enregistrement2 Donnée1 Donnée2 Donnée3
Enregistrement3 Donnée1 Donnée2 Donnée3
2 questions:
1- php peut-il lire le fichier texte sans pb?
2- l'espacement entre les colonnes doit-il absolument être régulier ou est-ce qu'on peut avoir un des espacements irréguliers entre chaque colonne, comme ceci
Enregistrement1 Donnée1 Donnée2 Donnée3
Enregistrement2 Donnée1 Donnée2 Donnée3
Enregistrement3 Donnée1 Donnée2 Donnée3
Posté : 27 sept. 2005, 15:34
par Invité
bon, dans mon deuxième exemple, les colonnes n'aparaissent pas comme je voulais. Voici le 2ème exemple avec des colonnées espacées:
Enregistrement1 Donnée1 Donnée2 Donnée3
Enregistrement2 Donnée1 Donnée2 Donnée3
Enregistrement3 Donnée1 Donnée2 Donnée3
Posté : 27 sept. 2005, 15:34
par Invité
bon, ça marche pas, j'espère que vous avez compris ce que je voulais dire!
Posté : 27 sept. 2005, 15:37
par heddicmi
1 - Il faudrait regarder le
système de fichier
2 - Bin c'est mieux si c'est régulier... Tu peux faire un
explode ensuite plus facilement
Posté : 27 sept. 2005, 15:40
par Invité
dans mon fichier, les espaces ne sont pas réguliers. qu'est ce qui se passe dans ce cas? ça pose un pb?
Posté : 27 sept. 2005, 15:42
par heddicmi
Quand tu dis, pas régulier, c'est du genre :
aaa aaaaaaa aaa aaa aaaaa
a aaaa aaaaaa aa aaaa aaaaa
ou
aaa aaaaa aaaaa aaaaa
aaaaabbbaaaaabbbbaaaaba
Posté : 27 sept. 2005, 15:46
par Invité
exact, c'est tout à fait comme ça.
Posté : 27 sept. 2005, 15:47
par Invité
hue, je veux dire plutôt comme ton 2ème exemple
Posté : 27 sept. 2005, 15:52
par heddicmi
Bin le 1er cas est mieux, car tu peux utiliser la fonction explode sur la ligne et récupérer morceau par morceau, mais cela implique d'avoir un séparateur unique (un espace, un /, etc...)
Mais tu peux toujours parcourir ta ligne et récupérer mot à mot en zappant les espaces, c'est juste un peu plus long...
Posté : 27 sept. 2005, 15:58
par Invité
serait-il possible que g t'envoie le fichier texte pour que tu me dises quelle est la meilleure solution?
Posté : 27 sept. 2005, 16:00
par heddicmi
Affiche quelques lignes... J'ai ausi un travail pour lequel je perd un peu de temps pour venir ici

Je peuxpas non plus faire une aide trop poussé

Mais je peux te guider...
Posté : 27 sept. 2005, 16:15
par Invité
ok, je comprends je veux juste savoir si mon fichier est exploitable. Le problème, c'est que le forum enlève les espaces inutiles dans le texte que je colle, ce qui fait que tu ne verras pas l'aspect réel du fichier. c'est pour ça que je propose de te l'envoyer
Posté : 27 sept. 2005, 16:20
par heddicmi
fais comme j'ai fais

mais des 0 à la place des espaces et colorie en blanc

Posté : 27 sept. 2005, 16:26
par Invité
bon, laisse tomber c pas grave. les lignes sont trop longues et je vais mettre des heures à colorier les espaces. en plus le forum fait des retours à la ligne quand c'est trop long. merci quand même pour les infos.
Posté : 27 sept. 2005, 16:37
par heddicmi
Bon, quoi q'il en soit, je conseil de parcourir ton fichier ligne par ligne (tu trouveras comment faire dans la doc php sur le système de fichier)
Et, pour chaque ligne, tu fais un une boucle while cherchant le 1er espace (strpos)...
Lorsqu'il te trouve un espace, tu fais substr de la position 0 à la position détecter par strpos-1 => Ca te donne ton 1er mot. Ensuite, tu fais un ltrim (pour supprimer les espace à gauche.
donc il recherche ensuite le prochain espace et ainsi de suite, tu pourras découper mot à mot ta ligne...