gaybarre
Messages postés11Date d'inscriptionmardi 21 janvier 2003StatutMembreDernière intervention 9 juillet 2004
-
8 juil. 2004 à 12:21
allopeck
Messages postés23Date d'inscriptionlundi 16 janvier 2006StatutMembreDernière intervention 3 décembre 2007
-
27 nov. 2007 à 09:41
Bonjour,
Je rencontre un problème en voulant lire un fichier texte.
Mon code est le suivant :
Sub Main()
Dim sr As New StreamReader("c:\test.txt")
Dim ch As String
ch = sr.ReadLine()
End Sub
Simple, n'est-ce pas ?
Je lis la première ligne de mon fichier test et je l'écris dans ch. Tout va bien tant que cette ligne ne contient pas le caractère "°" (mais je suppose que ça le fait aussi avec d'autres trucs un peu bizarres). Dans ce cas, la ligne est lue, mais le caractère ° est invisible. Et si je demande :
Console.Write(ch.IndexOf("°"))
j'obtiens un magnifique -1. Comme quoi, il ne le voit pas du tout.
Qq'un a-t-il déja été confronté au problème ? Si vous pouvez m'aider... Merci d'avance
cs_RedDog
Messages postés50Date d'inscriptionlundi 7 avril 2003StatutMembreDernière intervention21 août 2013 8 juil. 2004 à 19:01
Et ouais, ce sont les risques du métier, être un StreamReader...
Il le voit pas. En tout cas comme tu fais.
Fais comme ça, ça résoudra ton problème:
Dim enc As System.Text.Encoding
Dim sr As New System.IO.StreamReader("f:\test.txt", enc.Default)
Dim ch As String
ch = sr.ReadLine()
Console.WriteLine(ch)
Console.Write(ch.IndexOf("°"))
Retourne:
bbbbbbbbbbbbbbbbbllllllllllrrrrrrrmmmmmmmmmeeeeeeeee°iiiuuuuuuuttttttt //:!§§§§§§§§§§§!!!!!!!!:::::::::ù%% ' Le contenu de la première ligne du fichier
52 ' ch.IndexOf("°")
J'ai utilisé un codage ANSI (Default) afin de tout voir :)
allopeck
Messages postés23Date d'inscriptionlundi 16 janvier 2006StatutMembreDernière intervention 3 décembre 2007 27 nov. 2007 à 09:41
Bonjour,
Voila j'ai crée un scrip en VBnet pour créer un scrip autocad à partir d'un fichier texte1. Le problème et que lorsque que j'ouvre ce script (crée avec VB = fichier texre2)sous autocad il me dit qu'il y a le caractère suivant :"I»¿" alors que je le vois nul par dans mon fichier txt2 et 1.
Ensuite je veux également mettre ce fichier texte2 dans access et la il me met sur la première ligne le caractère suivant :"°"?
j' ai essayé le code ci dessus mais je n'ai pas réussi!!
Est ce que quelqu'un peut m'aider ? s'il vous plait?
merci
voici mon code :
Public
Class Form1
Dim
filereader3
As
System.IO.StreamReader
Dim
x, c, d, f, j, donne
As
String
Private
Sub
Button1_Click(
ByVal
sender
As
System.Object,
ByVal
e
As
System.EventArgs)
Handles
Button1.Clickfilereader3 =
My
.Computer.FileSystem.OpenTextFileReader(
"c:\test.txt"
)/ OUVRE LE FICHIER TEXTE 1donne =
""
While
Not
filereader3.EndOfStream / TANT QU' ON EST PAS A LA DERNIERE LIGNE IL CONTINUE 0 LE PARCOURIR
'Dim enc As System.Text.Encoding
'Dim sr As New System.IO.StreamReader("c:\test.txt", System.Text.Encoding.Default)
'Dim ch As String
' ch = sr.ReadLine()
' Console.WriteLine(ch)
' Console.Write(ch.IndexOf("°"))
' MsgBox(ch)
x = filereader3.Read
c = Mid(x, 1, 9)
d = Mid(x, 11, 10) / RECUPERE LES DONNEES QUI MINTERRESSE
j = Mid(x, 22, 1)
f = Mid(x, 27, 1)
If
j = 1
And
f = 1
Then
donne = donne +
"circle"
+
" "
+ c +
","
+ d +
" "
+
"1.1"
+ vbNewLine / INSERT LES DONNEES AVEC LES COMMANDES AUTOCAD
End
If
If
j = 1
And
f = 2
Then
donne = (donne +
"square"
+
" "
+ c +
","
+ d +
" "
+
"1.1"
+ vbNewLine)
End
If
End
While
EcrireFichier()
Close()
End
Sub
Private
Sub
EcrireFichier()
Dim
filewriter
As
System.IO.StreamWriterfilewriter =
My
.Computer.FileSystem.OpenTextFileWriter(
"c:\tt.txt"
,
False
)/ ECRIT LES LIGNES COMMANDE AUTOCAD AVEC LES DONNEES FICHIER TEXTE 2filewriter.Write(vbCrLf + donne)