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
» Logiciel de planétarium.
Lecture de fichier texte Emptypar Pedro Aujourd'hui à 8:08

» Un autre pense-bête...
Lecture de fichier texte Emptypar Froggy One Jeu 21 Nov 2024 - 15:54

» Récupération du contenu d'une page html.
Lecture de fichier texte Emptypar Pedro Sam 16 Nov 2024 - 14:04

» Décompilation
Lecture de fichier texte Emptypar JL35 Mar 12 Nov 2024 - 19:57

» Un album photos comme du temps des grands-mères
Lecture de fichier texte Emptypar jjn4 Mar 12 Nov 2024 - 17:23

» traitement d'une feuille excel
Lecture de fichier texte Emptypar jjn4 Jeu 7 Nov 2024 - 3:52

» Aide-mémoire mensuel
Lecture de fichier texte Emptypar jjn4 Lun 4 Nov 2024 - 18:56

» Des incomprèhension avec Timer
Lecture de fichier texte Emptypar Klaus Mer 30 Oct 2024 - 18:26

» KGF_dll - nouvelles versions
Lecture de fichier texte Emptypar Klaus Mar 29 Oct 2024 - 17:58

» instructions panoramic
Lecture de fichier texte Emptypar maelilou Lun 28 Oct 2024 - 19:51

» Figures fractales
Lecture de fichier texte Emptypar Marc Ven 25 Oct 2024 - 12:18

» Panoramic et Scanette
Lecture de fichier texte Emptypar Yannick Mer 25 Sep 2024 - 22:16

» Editeur d étiquette avec QR évolutif
Lecture de fichier texte Emptypar JL35 Lun 23 Sep 2024 - 22:40

» BUG QR Code DelphiZXingQRCode
Lecture de fichier texte Emptypar Yannick Dim 22 Sep 2024 - 11:40

» fichier.exe
Lecture de fichier texte Emptypar leclode Ven 20 Sep 2024 - 19:02

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Novembre 2024
LunMarMerJeuVenSamDim
    123
45678910
11121314151617
18192021222324
252627282930 
CalendrierCalendrier
-20%
Le deal à ne pas rater :
Drone Dji DJI Mini 4K (EU)
239 € 299 €
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 : 2394
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: