Eof.....

Signaler
Messages postés
14
Date d'inscription
mercredi 19 mars 2003
Statut
Membre
Dernière intervention
11 avril 2005
-
Messages postés
7
Date d'inscription
lundi 28 novembre 2005
Statut
Membre
Dernière intervention
7 février 2008
-
slt
jémeré" savoir comment marche eof ... voila c tt.
bye et merci davans

11 réponses

Messages postés
468
Date d'inscription
vendredi 21 février 2003
Statut
Membre
Dernière intervention
30 août 2007
2
eof pr koi ?? pr un fichier ?? pr un recordset ?? la mdsn est la pr ca
http://msdn.microsoft.com

voila
++
juva

Retrouvez une équipe de développeurs confirmés sur le tchate:
serveur : bastia.zefunChat.net
port : 6667
chan : #programmation
Messages postés
721
Date d'inscription
dimanche 10 juin 2001
Statut
Membre
Dernière intervention
27 mars 2011
7
EOF=End of file
C'est utilisé pour le parcours d'un fichier sequentiel pour arreter kan la fin est trouvé a l'aide d'une boucle while ou do
Messages postés
27
Date d'inscription
lundi 27 janvier 2003
Statut
Membre
Dernière intervention
18 mai 2005

Enfin,

Pour être plus clair:

Tant que l'on a encore des données Eof=0 et dés que l'on en a plus Eof=1.

Cela marche pour les Recordset ou les fichiers
Messages postés
61
Date d'inscription
lundi 7 juin 2004
Statut
Membre
Dernière intervention
6 décembre 2004

J'ai mon EOF qui marche pas... ou alors aut chose...

Je voudrais ne permettre le stockage de lignes que sur celles commencant par un blanc (j'ai mis "espace" keyascii = 32)

voici mon code :
Dim texte As String, retour As String, tout As String, keyascii As Integer
 	Open "H:\Surfin project of the fire\Charisma2Surfer\test00.dat" For Input As #1
Line Input #1, texte
retour = Chr$(13) + Chr$(10)
tout = texte
While Not EOF(1)
Select Case keyascii
Case 32
    Line Input #1, texte
    tout=tout+retour+texte
Case Else
keyascii = 0
End Select
    Wend
    Open "H:\Surfin project of the fire\Charisma2Surfer\test01.dat" For Output As #2
    Print #2, tout


d'avance merci

"j'aime bien les EOF...:-|
Messages postés
27
Date d'inscription
lundi 27 janvier 2003
Statut
Membre
Dernière intervention
18 mai 2005

C'est la programmation la plus bizare que j'ai jamais vue:
- tu utilise une valeur qui ne change pas dans un select case (keyascii tu l'a trouvé où ?).
- Admettons que KeyAscii à une valeur de départ 32 (en admettant que cela arrive) on va lire tout le fichier et la c'est bon. sinon on entre dans une boucle infini puisqu'il n'y a plus de lecture de fichier et donc de ce fait Eof(1) est toujours vrais
- tu met tout ce que contient un fichier dans une variable texte pour après le stocker dans un autre fichier. Et si ton fichier fait plusieurs centaines de Mega tu crois que cela va tenir dans une variable texte théoriquement limitée à 65000 caractères environs.

Tu te complique la vie pour faire du code qui marche pas et j'ai l'impression que tu aligne du code sans savoir ce que tu fais...

Je vais essayer de t'aider.

Tu veux copier tout ce qui existe d'un fichier à un autre à condition que la ligne lue ait un premier caractère "Espace". Regarde:

' Initialisation des variables avec juste ce qu'il faut.
Dim texte As String ' Chaine temporaire où sera lue la ligne
Dim H_Fichier1 as Integer ' Handle de fichier1 et 2 pour faire plus propre
Dim H_Fichier2 as Integer

' Recupération d'un numéro de handle libre et ouverture du 1er fichier
H_Fichier1=freefile
Open "H:\Surfin project of the fire\Charisma2Surfer\test00.dat" For Input As #H_Fichier1

' Recupération d'un numéro de handle libre et ouverture du 2eme fichier
H_Fichier2=freefile
Open "H:\Surfin project of the fire\Charisma2Surfer\test01.dat" For Output As #H_Fichier2

' Ici on lit et on écrit directement si la condition convient. Pas de variable bizare, c'est direct
While Not EOF(H_Fichier1)
Line Input #H_Fichier1, texte
If left(texte,1)<>"" then print #H_Fichier1, texte
Wend

'on oublie pas de fermer les fichiers
Close(#H_Fichier2)
Close(#H_Fichier1)
Messages postés
27
Date d'inscription
lundi 27 janvier 2003
Statut
Membre
Dernière intervention
18 mai 2005

Oupss...

petite erreur dans le code, il faut lire:

While Not EOF(H_Fichier1)
Line Input #H_Fichier1, texte
If left(texte,1)<>"" then print #H_Fichier2, texte
Wend
Messages postés
61
Date d'inscription
lundi 7 juin 2004
Statut
Membre
Dernière intervention
6 décembre 2004

euh j'avoue que j'ai fait n'importe koi...

je pensais que keyascii lisait le caractère ASCII correspondant mais j'ai un peu fait n'importe quoi avec mon select...

Avec ton approche (c vrai ke c bcq plus simple), il me dit "attempt to read a past end of file" sur le
Line Input #H_Fichier1, texte

ca veut dire kil plante au retour à la ligne?

Pour situer le contexte, je dois convertir un fichier ASCII type

!Coordinate System:
! Projection System ID: 0 Initialized Quick: 0
! Secondary Horizontal: Units: m Per/Meter: 1
! Geodetic Datum: EUROP50 Ellipsoid: INTNL
! Projection Method: Transverse Mercator
! Central Meridian: 3
! Base Parallel: 0
! Scale Factor: 0.9996
! FALSE Easting: 500000 m
! FALSE Northing: 0 m
! User Horizontal: Units: m Per/Secondary: 1
(T1,F20.5,T25,F16.5)
->0004
507210.7 6245180.0
507207.6 6247034.5
511326.2 6247043.5
511331.1 6245188.5
507210.7 6245180.0

en un autre fichier ASCII type bln comme suit :

5
507210.700000000 6245180.00000000
507207.600000000 6247034.50000000
511326.200000000 6247043.50000000
511331.100000000 6245188.50000000
507210.700000000 6245180.00000000

voilà. Mais merci bcq pour ton aide, c vraiment très précieux comme apport...

(ca se voit tant ke ca que je débute en prog?)

Au moins, j'ai le mérite d'avoir étonné... (hum..)

"j'aime bien ceux qui maitrisent... :-)
Messages postés
61
Date d'inscription
lundi 7 juin 2004
Statut
Membre
Dernière intervention
6 décembre 2004

Rebonjour,

Il semble que ce soit mon fichier test00.dat qui est endommagé...

Pourriez vous m'en dire un peu plus sur la fonction LEFT; est ce que celle ci cherche un espace dans la ligne entière ou juste sur le premier caractère de la ligne.
Dans le premier, cela expliquerait pourquoi tout le premier fichier est entièrement recopié.

D'où ma question, comment ne valider la conditino que sur le premier caractère?

Merci!

"j'aime bien les nuages... :-|
Messages postés
27
Date d'inscription
lundi 27 janvier 2003
Statut
Membre
Dernière intervention
18 mai 2005

la fonction left permet de récupérer les n caractères à gauches du texte ex:

texte="ABCDE"

toto=Left(texte,2) donne toto="AB"

donc si on veut comparer le premier caractère avec un espace on lit le premier caractere a gauche avec left(texte,1) avec le caractère voulu
Messages postés
8
Date d'inscription
samedi 8 mai 2004
Statut
Membre
Dernière intervention
15 avril 2007

j'ai enregistré un son codé en ADCPM pour un message vocal dans un fichier sequenciel et la probleme que j'ai c'est qu'il rencontre des EOF en cours de route. Donc le fichier se referme.
il faudrai que je filtre ces EOF indesirables mais je ne connais pas le code ou les codes ASCII du ou des caracteres qui generent un EOF. Quelqu'un les connais il?
Messages postés
7
Date d'inscription
lundi 28 novembre 2005
Statut
Membre
Dernière intervention
7 février 2008

Je trouve cela déjà bien que certains prennent le temps de répondre a ce genre de question.
Comment voulez vous qu'une recherche permette de trouver des réponses, quant cela est orthographié incorrectement.

Les mots correctements orthographiés permettent de comprendre correctement les questions et d'avoir une réponse correspondante. Vous n'êtes pas sur un téléphone portable.