FileTypes

Bonjour,
Ce code permet de sauvegarder le contenu d’un textfield dans un fichier txt, le compilateur ne reconnait pas FilesType1.Text, pourtant il est present dans le projet.
Erreur, this item doest not exist:
FileTypes1.Text

  Dim fileStream As TextOutputStream
  Dim f As FolderItem
  
  file=GetSaveFolderItem(FileTypes1.Text,"Obs.txt")
  If file <> Nil then
    fileStream=TextOutputStream.Create(f)
    fileStream.WriteLine txtF1.text
    fileStream.WriteLine txtF2.text
    fileStream.WriteLine txtF3.text
    fileStream.Close
  End if

[quote=120243:@Djamel AIT AMRANE]Bonjour,
Ce code permet de sauvegarder le contenu d’un textfield dans un fichier txt, le compilateur ne reconnait pas FilesType1.Text, pourtant il est present dans le projet.
Erreur, this item doest not exist:
FileTypes1.Text

[code]
Dim fileStream As TextOutputStream
Dim f As FolderItem

file=GetSaveFolderItem(FileTypes1.Text,“Obs.txt”)
If file <> Nil then
fileStream=TextOutputStream.Create(f)
fileStream.WriteLine txtF1.text
fileStream.WriteLine txtF2.text
fileStream.WriteLine txtF3.text
fileStream.Close
End if
[/code][/quote]

Avez-vous bien ajouté application/text dans FileTypes1 ?
C’est la seule explication qui me vient à l’esprit. Sinon, essayez d’ajouter any at utilisez FileTypes1.any, puis vérifiez que le folderitem .name contient bien l’extension .txt.

Avec FileTypes.All, tous les types de fichiers sont accessibles, si j’ai bien compris l’extension .Text n’a pas lieu d’être.

Non. Ce n’est pas ça. FileTypes.All correspond à tous les types que vous avez ajouté FileTypes. Par exemple, si vous avez ajouté txt, pdf et xls, .all donnera accès à ces trois types.

Lorsque vous cliquez dans l’éditeur de types qui apapraît en sélectionnant FileTypes1 (l’icône en haut de la fenetre avec un triangle vers le bas), sélectionnez special/any, et là, vous accédez à tous les types de fichiers à la fois. C’est Filetypes1.any qu’il faut emplyer ensuite.

j’ai configur FileTypes en specialAny, malheureusement, il n’y a pas d’ecriture permettant de sauvegarder le contenu des txtF.text, dans le fichier Obs.txt.
Le code ci dessous est il juste ?

[code] Dim fileStream As TextOutputStream
Dim f As FolderItem

file=GetSaveFolderItem(FileTypes1.SpecialAny,“Obs.txt”)
If file <> Nil then
fileStream=TextOutputStream.Create(f)
fileStream.WriteLine txtF1.text
fileStream.WriteLine txtF2.text
fileStream.WriteLine txtF3.text
fileStream.Close
End if[/code]

[quote=120393:@Djamel AIT AMRANE]j’ai configuré FileTypes en specialAny, malheureusement, il n’y a pas d’ecriture permettant de sauvegarder le contenu des txtF.text, dans le fichier Obs.txt.
Le code ci dessous est il juste ?

[code] Dim fileStream As TextOutputStream
Dim f As FolderItem

file=GetSaveFolderItem(FileTypes1.SpecialAny,“Obs.txt”)
If file <> Nil then
fileStream=TextOutputStream.Create(f)
fileStream.WriteLine txtF1.text
fileStream.WriteLine txtF2.text
fileStream.WriteLine txtF3.text
fileStream.Close
End if[/code][/quote]

  • Choisissez si le FolderItem s’appelle f ou file. J’ai modifié pour file dans les lignes 2 et 6.
  • Dans FileTypes, c’est l’object name qui doit figurer : FileTypes1.any

Voilà un code qui marche :

[code] Dim fileStream As TextOutputStream
Dim file As FolderItem

file=GetSaveFolderItem(FileTypes1.Any,“Obs.txt”)
If file <> Nil then
fileStream=TextOutputStream.Create(file)
fileStream.WriteLine txtF1.text
fileStream.WriteLine txtF2.text
fileStream.WriteLine txtF3.text
fileStream.Close
End if[/code]

J’ai repris le code ci dessus, avec object Name: any pour FileTypes1, mais le fichier Obs.txt demeure vide alors qu’il devrait contenir
le contenu tes txtFilelds.
j’ai remis obs.txt dans un folder a la racine: “C:\Folder\Obs.txt”, toujours rien.

Tu as essay a : Histoire de voir si tu passes bien par l’criture ?

[code] Dim fileStream As TextOutputStream
Dim file As FolderItem

file=GetSaveFolderItem(FileTypes1.Any,“Obs.txt”)
If file <> Nil then
MSGBOX “LE FICHIER N’EST PAS A NIL”
fileStream=TextOutputStream.Create(file)
IF fileStream = Nil THEN MSGBOX “Le STREAM EST A NIL”
fileStream.WriteLine txtF1.text
fileStream.WriteLine txtF2.text
fileStream.WriteLine txtF3.text
fileStream.Close
End if[/code]

Quand il y a un bug, l’idal c’est de tracer (on peut aussi avancer au pas par pas…

Je ne sais pas ce que vous avez fait, mais si vous appliquez strictement ce que je vous indique, et n’ajoutez que le type special/any dans FileTypes1, tout fonctionne. Ci-joint projet qui marche.

filetypes.xojo_binary_project

Je confirme. Mais perso, j’utiliserais plutt un type de fichier plus adquate par exemple, un text/plain (mais un peu expurg de certaines extensions).

TEXT   -   ????   -   .TXT;.TEXT

Avant a essaye de faire marcher la mthode de Michel. (on commence d’abord par ce qui marche, ensuite on paufine :slight_smile: )

[quote=120835:@Mathieu Fay]Je confirme. Mais perso, j’utiliserais plutôt un type de fichier plus adéquate par exemple, un text/plain (mais un peu expurgé de certaines extensions).

TEXT   -   ????   -   .TXT;.TEXT

Avant ça essaye de faire marcher la méthode de Michel. (on commence d’abord par ce qui marche, ensuite on paufine :slight_smile: )[/quote]

Normalement c’est ce qu’il devait faire, mais j’ai fini par lui conseiller special/any en désespoir de cause.

Dsol, j’avais par inadvertance modifi le MenuItem dans le menuHandler Sauvegarder, en remettant SaveFile cela marche, sauf qu’une boite de dialogue me demande le nom du fichier, et que je dois craser a chaque sauvegarde .

Et voila quoi ressemble le FileType :

file=specialfolder.desktop.child("Obs.txt")

http://documentation.xojo.com/index.php/SpecialFolder

Le problme est rgl, Merci.