Bonjour, j’utilise ce code Vb6 pour afficher le contenu du fichier txt dans une CboBox.
je suis entrain de basculer vers Xojo, quelqu’un pourra t’il m’aider a rendre ce code lisible par Xojo ?
Dim star As String
’ Ouvre le fichier donnes etoiles
Open App.Path & “\avStars.txt” For Input As #1
’ Lit les donnes etoiles entre les sperateur bar | caractre,
’ tout le reste est ignor
With Cbo_Stars
While Not EOF(1)
Line Input #1, star
If InStr(star, “|”) > 0 Then .AddItem star
Wend
.ListIndex = 0
End With
Bonjour,
Les modifications n’ont rien donn, par contre les exemples de code, le premier par exemple de la TextArea
me permet d’afficher le contenu du fichier lu tel quel.
J’ai essay dans une ComboBox, mais le saut de lignes n’y est pas, tout est sur une seule ligne, d’o problme.
Merci de votre disponibilit.
Dim f As FolderItem
Dim i As Integer
Dim stream As BinaryStream
f = GetOpenFolderItem(FileTypes1.Text) //file type defined in File type set
If f <> Nil Then
stream = BinaryStream.Open(f, False)
Do
TextArea1.AppendText(stream.Read(255, Encodings.WindowsANSI))
Loop Until stream.EOF
stream.Close
End If
J’ai trouv ce bout de code o j’ai remplac TextArea1.AppendText par ComboBox1.AddRow
mais l’affichage ne respecte pas le saut de ligne il est tout en bloc.
Avez vous une ide pour que le saut de ligne sexcute ?
Suivant la source du texte, les valeurs pour le CR sont (peuvent tre) diffrentes. Il faut donc modifier le caractre “CR” pour quil ait la valeur 13.
Comment faire ? Je ne me souviens pas. Je cherche
Aprs de longues minutes infructueuses, j’ai abandonn.
Il sagit dune fonction qui remplace toutes les valeurs ‘connues’ de Return (Enter ?, une autre en UTF, etc.) en ASCII 13 (le “vrai” Return.
Une recherche sur ce forum (en anglais) doit donner une rponse: jai pos cette question et un ingnieur Xojo m’a donn la rponse. Pas de bol, cest tout ce que je me souviens.
Dim f As FolderItem
Dim i As Integer
Dim stream As BinaryStream
f = GetOpenFolderItem(FileTypes1.Text) //file type defined in File type set
If f <> Nil Then
stream = BinaryStream.Open(f, False)
Do
TextArea1.AppendText(stream.Read(255, Encodings.WindowsANSI))
Loop Until stream.EOF
stream.Close
End If
J’ai mis ComboBox.AddArrow () a la place de TextArea1.AppendText().
Si vous avez besoin du fichier txt utilis, je peux le poster.
[quote=93442:@Djamel AIT AMRANE]C’est le code que j’ai posté, que revoilà :
J’ai mis ComboBox.AddArrow () a la place de TextArea1.AppendText().
Si vous avez besoin du fichier txt utilisé, je peux le poster.[/quote]
J’espérais que vous aviez depuis lu la documentation que je vous avais conseillée sur TextInputStream et ReadLine, qui sont les véritables équivalents du code VB que vous aviez posté.
Votre code utilise BinaryStream ce qui n’est pas du tout la même chose, et lit tout d’un coup, au lieu de ligne par ligne.
Ce n’est pas du tout la même chose.
Voici le bon code.
Sub Action()
Dim f As FolderItem
Dim i As Integer
dim stream as textinputstream
f = GetOpenFolderItem(FileTypes1.Text) //file type defined in File type set
If f <> Nil Then
stream = TextInputStream.Open(f)
Do
ComboBox1.AddRow(stream.Readline)
Loop Until stream.EOF
stream.Close
End If
End Sub
Excellent. N’oubliez pas de cliquer sur l’icne coche blanche dans le cercle vert en haut droite de la rponse pour indiquer que votre question a t rsolue