FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  MembresMembres  Connexion  
Derniers sujets
» Editeur EliP 6 : Le Tiny éditeur avec 25 onglets de travail
Lecture de fichier texte Emptypar papydall Hier à 16:57

» PANORAMIC V 1
Lecture de fichier texte Emptypar papydall Hier à 3:22

» select intégrés [résolu]
Lecture de fichier texte Emptypar jjn4 Mer 8 Mai 2024 - 17:00

» number_mouse_up
Lecture de fichier texte Emptypar jjn4 Mer 8 Mai 2024 - 11:59

» Aide de PANORAMIC
Lecture de fichier texte Emptypar jjn4 Mer 8 Mai 2024 - 11:16

» trop de fichiers en cours
Lecture de fichier texte Emptypar lepetitmarocain Mer 8 Mai 2024 - 10:43

» Je teste PANORAMIC V 1 beta 1
Lecture de fichier texte Emptypar papydall Mer 8 Mai 2024 - 4:17

» bouton dans autre form que 0
Lecture de fichier texte Emptypar leclode Lun 6 Mai 2024 - 13:59

» KGF_dll - nouvelles versions
Lecture de fichier texte Emptypar Klaus Lun 6 Mai 2024 - 11:41

» Gestion d'un système client-serveur.
Lecture de fichier texte Emptypar Klaus Lun 6 Mai 2024 - 10:23

» @Jack
Lecture de fichier texte Emptypar Jack Mar 30 Avr 2024 - 20:40

» Une calculatrice en une ligne de programme
Lecture de fichier texte Emptypar jean_debord Dim 28 Avr 2024 - 8:47

» Form(résolu)
Lecture de fichier texte Emptypar leclode Sam 27 Avr 2024 - 17:59

» Bataille navale SM
Lecture de fichier texte Emptypar jjn4 Ven 26 Avr 2024 - 17:39

» Les maths du crocodile
Lecture de fichier texte Emptypar jean_debord Jeu 25 Avr 2024 - 10:37

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Mai 2024
LunMarMerJeuVenSamDim
  12345
6789101112
13141516171819
20212223242526
2728293031  
CalendrierCalendrier
-20%
Le deal à ne pas rater :
Ecran PC GIGABYTE 28″ LED M28U 4K ( IPS, 1 ms, 144 Hz, FreeSync ...
399 € 499 €
Voir le deal

 

 Lecture de fichier texte

Aller en bas 
2 participants
AuteurMessage
Phil




Nombre de messages : 2
Date d'inscription : 08/04/2008

Lecture de fichier texte Empty
MessageSujet: Lecture de fichier texte   Lecture de fichier texte EmptyMar 8 Avr 2008 - 9:26

Bonjour,
Tout d'abord bravo et merci pour ce travail!
Je cherche à travailler sur un fichier exporté à partir de openoffice calc en format csv... J'arrive bien à ouvrir le fichier mais lorsque j'utilise File_read n,v (avec une boucle) je n'obtiens que la première ligne de mon fichier sans possibilité de découper les différentes variables qui la constitue... On dirait qu'il ne prend pas en compte les séparateurs. Y-at'il des séparateurs particuliers à utiliser pour l'exportation de mon fichier openoffice?
Merci
Phil
Revenir en haut Aller en bas
Jack
Admin
Jack


Nombre de messages : 2386
Date d'inscription : 28/05/2007

Lecture de fichier texte Empty
MessageSujet: Re: Lecture de fichier texte   Lecture de fichier texte EmptyMer 9 Avr 2008 - 21:27

Il est difficile de "dépanner" sans avoir un exemple précis.

1 - Tout d'abord, ce qu'il faut savoir:
- on peut écrire avec ou sans délimiteur,
- on lit ce qu'il y a entre deux délimiteurs, ou entre le début du fichier et un délimiteur (pour la lecture en tête du fichier), ou entre le dernier délimiteur et la fin du fichier (pour une lecture en fin de fichier),
- tout ce qu'on écrit dans un fichier texte est écrit sous forme de chaîne de caractères codés en ASCII, même une variable entière ou réelle a sa valeur qui est codée sous forme de chaîne de caractères ASCII,
- lors d'une lecture, dans tous les cas on lit des caractères, et si on lit la valeur d'une variable entière ou réelle, il y a une conversion automatique pour retouver la valeur sous forme numérique dans la variable,
- un fichier texte n'est pas spécifique à PANORAMIC, mais peut être lu ou écrit par tout traitement de texte, ou tout autre logiciel qui peut les manipuler.

2 - Pour les fichiers texte, le délimiteur est l'ensemble "retour en début de ligne + ligne suivante", qui a pour valeur "ODOA" en hexadécimal. Une fin de fichier est aussi un délimiteur.

3 - Il y a donc deux manières d'écrire dans un fichier texte: avec FILE_WRITE ou avec FILE_WRITELN:

FILE_WRITE écrit à la suite de ce qui est déjà écrit, sans insérer de délimiteur,
FILE_WRITELN écrit à la suite de ce qui est déjà écrit, puis insère un délimiteur.

4 - Voici plusieurs exemples pour fixer les idées:

Si on écrit dans un fichier texte de la manière suivante:
Code:
file_open_write 1,"fich.txt"
file_write 1,"abcde"
file_write 1,"fghij"
file_close 1
On obtient un fichier fich.txt:
- qui se trouve dans le répertoire de référence, qui est le répertoire où se trouve PANORAMIC_EDITOR ou PANORAMIC_IDE, ou le répertoire désigné par DIR_CHANGE.
- qui contient une seule chaîne de caractères "abcdefghij", car on a écrit "abcde" puis "fghij" sans insérer de délimiteur.

Si on lit ce fichier avec le code:
Code:
dim v$
file_open_read 1,"fich.txt"
file_read 1,v$
print v$
file_close 1
On obtient alors l'affichage de "abcdefghij", car la lecture avec file_read a mis dans la variable v$, ce qu'il y a dans le fichier depuis le pointeur courant jusqu'au délimiteur, qui est la fin du fichier.


Maintenant, si on écrit dans un fichier texte de la manière suivante:
Code:
file_open_write 1,fich.txt"
file_writeln 1,"abcde"
file_writeln 1,"fghij"
file_close 1
On obtient un fichier fich.txt qui contient les deux lignes:
abcde
fghij
car on a écrit la chaîne "abcde" puis la chaîne "fghij" en insérant à chaque fois automatiquement un délimiteur après la chaîne par la commande file_writeln.

Dans ce cas, si on lit le fichier par:
Code:
dim v$
file_open_read 1,"fich.txt"
file_read 1,v$
print v$
file_close 1
On obtiendra l'affichage de "abcde", car la lecture avec file_read a mis dans la variable v$, ce qu'il y a dans le fichier depuis le pointeur courant jusqu'au délimiteur.

5 - cas de FILE_READLN
Si on veut le lire par:
Code:
dim v$
file_open_read 1,"fich.txt"
file_readln 1,v$
print v$
file_close 1
On obtient exactement la même chose car file_readln lit une ligne, et une ligne se termine toujours par un délimiteur.

A l'utilisation, il n'y a aucune différence entre FILE_READ et FILE_READLN. Ce dernier avait été codé pour lire des lignes dans une variable string, puis comme par la suite, tous les types de variable ont été acceptés, ces deux mots_clés sont devenus équivalents.

FILE_READLN pourrait être supprimé pour éviter toute confusion.

6 - Ce qui est important, c'est de lire avec une variable qui est du même type que celle utilisée à l'écriture.

Premier exemple:

Si on écrit dans un fichier texte:
Code:
dim a
file_open_write 1,"fich.txt"
a=10:file_write 1,a
a=20:file_write 1,a
file_close 1
En lisant le fichier "fich.txt" avec une variable string:
Code:
dim v$
file_open_read 1,"fich.txt"
file_read 1,v$
print v$
file_close 1
On obtient le texte "1020" dans la variable string v$, car les valeurs de la variable a sont converties en ASCII avant d'être écrites dans un fichier texte.

Mais, en le lisant avec une variable réelle:

Code:
dim v
file_open_read 1,"fich.txt"
file_read 1,v
print v
file_close 1
on obtient la valeur 1020 dans la variable réelle v, CE QUI EST TOTALEMENT DIFFERENT.


Deuxième exemple, l'inverse du précédent:

Si on écrit dans un fichier texte:
Code:
dim a
file_open_write 1,"fich.txt"
file_writeln 1,"a"
a=20:file_writeln 1,a
file_close 1
En lisant le fichier "fich.txt" avec une variable string:
Code:
dim v$
file_open_read 1,"fich.txt"
file_read 1,v$
print v$
file_close 1

On va obtenir le texte "a" dans la variable v$.

Mais en le lisant en utilisant une variable réelle:

Code:
dim v
file_open_read 1,"fich.txt"
file_read 1,v
print v
file_close 1
On a cette fois une ERREUR, car c'est le texte "a" qui a été écrit dans le fichier, et ce texte ne peut pas être mis dans un réel.




Espérons que ces quelques exemples te seront utiles...
Je pense que je vais faire un tutoriel sur ce sujet.
Revenir en haut Aller en bas
https://panoramic.1fr1.net
Phil




Nombre de messages : 2
Date d'inscription : 08/04/2008

Lecture de fichier texte Empty
MessageSujet: Merci!   Lecture de fichier texte EmptyLun 21 Avr 2008 - 22:32

Merci de votre réponse rapide et détaillée... Désolé de ne pas avoir été aussi rapide (un peu de vacances)! J'ai finalement résolu mon problème de lecture de fichier en lisant une ligne à la fois par file_readln puis en redécoupant chaque élément aprés une recherche du caractere séparateur "," ...
Voir ci dessous... Peut-être pas très élégant mais ça marche...

Code:
rem lecture des données du fichier (ici 20 lignes...)
for j=1 to 20
h=1
file_readln 1,l$(j)
for k=1 to len(l$(j))
rem recherche le separateur ici point virgule
if mid$(l$(j),k,1)=";" then h=h+1:goto Saut
d$(h,j)=d$(h,j)+mid$(l$(j),k,1)
Saut:
next k
next j

Merci encore...
Revenir en haut Aller en bas
Contenu sponsorisé





Lecture de fichier texte Empty
MessageSujet: Re: Lecture de fichier texte   Lecture de fichier texte Empty

Revenir en haut Aller en bas
 
Lecture de fichier texte
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Problème de lecture de fichier texte.
» Problème sur lecture de fichier avec FILE_READ
» Problème de lecture d'un fichier 'avi'.
» Problème de lecture de fichier image.
» Problème de lecture de fichier binaire.

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: A l'aide!-
Sauter vers: