[R] Lecture d'un caractère précis dans un fichier
Règles du forum
- Merci de consulter la section "Règles du forum" et plus particulièrement "Règles et Mentions Légales du site autoitscript.fr" avant d'écrire un message.
-
- Niveau 7
- Messages : 318
- Enregistré le : ven. 15 févr. 2008 12:25
- Localisation : Paris
- Status : Hors ligne
[R] Lecture d'un caractère précis dans un fichier
Bonsoir,
je voudrais lire un caractère précis dans un fichier, en connaisant son rang dans le fichier : existe-t-il une fonction pour le faire.
Merci d'avance
je voudrais lire un caractère précis dans un fichier, en connaisant son rang dans le fichier : existe-t-il une fonction pour le faire.
Merci d'avance
Modifié en dernier par tolf le ven. 29 févr. 2008 18:31, modifié 1 fois.
- Tlem
- Site Admin
- Messages : 11784
- Enregistré le : ven. 20 juil. 2007 21:00
- Localisation : Bordeaux
- Status : Hors ligne
Re: [..] Lecture d'un caractère précis dans un fichier
Qu'entendez vous par : 'son rang' ?
Thierry
Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...
Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...
Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
-
- Niveau 7
- Messages : 318
- Enregistré le : ven. 15 févr. 2008 12:25
- Localisation : Paris
- Status : Hors ligne
Re: [..] Lecture d'un caractère précis dans un fichier
Par "son rang", j'entend sa position dans le fichier. Par exemple, dans le fichier suivant :"A" est le caractère de rang 1, "B" celui de rang 2, etc...
Code : Tout sélectionner
ABCD
- Tlem
- Site Admin
- Messages : 11784
- Enregistré le : ven. 20 juil. 2007 21:00
- Localisation : Bordeaux
- Status : Hors ligne
Re: [..] Lecture d'un caractère précis dans un fichier
Si c'est pour utilisez comme vous l'indiquez, alors utilisez ceci :
et donc pour lire le 4ieme caractère du fichier test.txt :
Code : Tout sélectionner
FileRead ( filehandle or "filename" [, count] )
Code : Tout sélectionner
FileRead ( "test.txt", 4)
Thierry
Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...
Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...
Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
-
- Niveau 7
- Messages : 318
- Enregistré le : ven. 15 févr. 2008 12:25
- Localisation : Paris
- Status : Hors ligne
Re: [..] Lecture d'un caractère précis dans un fichier
Bonjour,
J'ai consulté l'aide et pour le paramètre "count", ils disent :et "The number of characters to read" veut dire "Le nombre de caractères à lire" et non pas "Le numero du caractère à lire".
J'ai testé l'exemple et en fait, "count" correspond au nombre de caractères à lire :
- depuis le début si on utilise :
- après le dernier caractère lu si on utilise :
Donc la fonction "FileRead" ne permet pas de lire un caractère précis.
En revanche, j'ai trouvé un autre moyen :
J'ai consulté l'aide et pour le paramètre "count", ils disent :
Code : Tout sélectionner
[optional] The number of characters to read. Default read the entire file. Not optional for file in raw reading mode
J'ai testé l'exemple et en fait, "count" correspond au nombre de caractères à lire :
- depuis le début si on utilise :
Code : Tout sélectionner
FileRead($filename)
Code : Tout sélectionner
$file = FileOpen($filename)
FileRead($file)
En revanche, j'ai trouvé un autre moyen :
Code : Tout sélectionner
StringMid(FileRead($filename), $numero, 1)
- Tlem
- Site Admin
- Messages : 11784
- Enregistré le : ven. 20 juil. 2007 21:00
- Localisation : Bordeaux
- Status : Hors ligne
Re: [..] Lecture d'un caractère précis dans un fichier
Exacte, j'ai été trop rapide pour la réponse.tolf a écrit :Donc la fonction "FileRead" ne permet pas de lire un caractère précis.
Désolé.
Voici une solution que j'ai testé, et qui fonctionne :
Code : Tout sélectionner
#include <File.au3>
$hTest = FileRead ("Test.txt")
$aTest = StringSplit($hTest, "")
Msgbox(0,"Caractère N°4", $aTest[4])
Thierry
Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...
Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...
Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
-
- Niveau 11
- Messages : 1826
- Enregistré le : lun. 23 juil. 2007 12:31
- Localisation : Bureau
- Status : Hors ligne
Re: [R] Lecture d'un caractère précis dans un fichier
::Aide ::
stringlen = retourne le nombre de caractère de la chaîne
stringsplit = découpe la chaîne
string = chaîne
je propose une fonction
A amèliorer, deux chose a ajouter, retourner les erreurs dans le cas ou le rang sélectionné est trop haut genre y 13 rang tu demande le 14 erreur et vice versa.
cette fonction peut retourner le rang ou la lettre ou encore le tableau
ou bien dans la condition If/Endif
tu peux aussi écrire le code de cette manière (on gagne quelque ligne ^^-
j'espere que c'est bon 
commentaire ?
stringlen = retourne le nombre de caractère de la chaîne
stringsplit = découpe la chaîne
string = chaîne
je propose une fonction

A amèliorer, deux chose a ajouter, retourner les erreurs dans le cas ou le rang sélectionné est trop haut genre y 13 rang tu demande le 14 erreur et vice versa.
cette fonction peut retourner le rang ou la lettre ou encore le tableau
Code : Tout sélectionner
$Texte = "ABCD"
ConsoleWrite(_test($Texte,"C")) ;retoune 3
ConsoleWrite(_test($Texte,2)) ; retourne B
ConsoleWrite(_test($Texte,"")) ; retourne un tableau avec le rang et la lettre
Func _test($Texte,$Rang)
$Sortie =""
$Len = stringlen($Texte)
$Split = stringsplit($Texte,"")
for $x = 1 to $Len
if $x = Number($Rang) Then
$Sortie = $split[$x]
Elseif $rang = string($split[$x]) Then
$Sortie = $x
ElseIf $rang = "" Then
$Sortie &= $x & @TAB & $split[$x] & @LF
EndIf
Next
return $Sortie
EndFunc
Code : Tout sélectionner
$Texte = "ABCD"
ConsoleWrite(_test($Texte,1))
Func _test($Texte,$Rang)
$sortie =""
$Len = StringLen($Texte)
$Split = StringSplit($Texte,"")
For $x = 1 to $len
If String($rang) = "" Then ; si la chaine rang = "" alors
$sortie &= $x & @TAB & $split[$x] & @LF ; la sortie
EndIf ; on ferme la condition
If $x = Number($Rang) Then ; si l'indice de rang est égal à un chiffre alors
$sortie = $split[$x] ; sort la lettre selon le rang selectionné
EndIf ; on ferme la condition
If $rang = string($split[$x]) Then ; si rang est égal a la chaine du tableau découpé alors
$sortie = $x ; sort le nombre
EndIf ; on ferme la condition
Next
return $sortie
EndFunc
Code : Tout sélectionner
Func _test($Texte,$Rang)
$len = stringlen($Texte)
$split = stringsplit($Texte,"")
For $x = 1 to $len
If $x = Number($Rang) Then
return $split[$x]
Elseif $rang = string($split[$x]) Then
return $x
EndIf
Next
EndFunc

commentaire ?
-
- Niveau 7
- Messages : 318
- Enregistré le : ven. 15 févr. 2008 12:25
- Localisation : Paris
- Status : Hors ligne
Re: [R] Lecture d'un caractère précis dans un fichier
Le problème c'est que si le texte contient des chiffres et qu'on tape dans le paramètre $Rang un chiffre entre guillemets, la fonction ne va pas chercher la position du chiffre mais le caractère situé à cette position :
Il faut donc plutôt mettre un autre paramètre qui indique si $Rang est un caractère, un nombre, ou "" :
Code : Tout sélectionner
$Texte = "ABC1D"
ConsoleWrite(_test($Texte,"1")) ;<== retourne "A" au lieu de 4
► Afficher le texte
- Tlem
- Site Admin
- Messages : 11784
- Enregistré le : ven. 20 juil. 2007 21:00
- Localisation : Bordeaux
- Status : Hors ligne
Re: [R] Lecture d'un caractère précis dans un fichier
La question était :
Est-ce que mon post ne répond pas à la question ?je voudrais lire un caractère précis dans un fichier, en connaisant son rang dans le fichier : existe-t-il une fonction pour le faire.
Thierry
Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...
Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...
Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
-
- Niveau 7
- Messages : 318
- Enregistré le : ven. 15 févr. 2008 12:25
- Localisation : Paris
- Status : Hors ligne
Re: [R] Lecture d'un caractère précis dans un fichier
Effectivement, le post de Tlem répond à la question. J'ai donc mis dans la partie Fonction un nouveau topic mais je n'ai pas réussi à supprimer mon message plus haut.Tlem a écrit :Est-ce que mon post ne répond pas à la question ?
- Tlem
- Site Admin
- Messages : 11784
- Enregistré le : ven. 20 juil. 2007 21:00
- Localisation : Bordeaux
- Status : Hors ligne
Re: [R] Lecture d'un caractère précis dans un fichier
Pas grave.tolf a écrit :Tlem a écrit :mais je n'ai pas réussi à supprimer mon message plus haut.

Thierry
Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...
Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...
Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".