|
|
||||||||||||||
|
Continuons ensemble cette visite du code de Calpin. Dans la partie précédent nous avons ajouté du code pour quitter l'application, et créer un nouveau document vierge.
Avant de charger un fichier dans notre calpin il faut le choisir. Pour cela nous avons besoin d'une boîte de dialogue d'ouverture de fichier. C'est le contrôle "OpenFileDialog" qui permet cela.
Dans Calpin j'ai appelé ce contrôle "OpenDialog". J'ai aussi créé une fonction qui met en oeuvre ce contrôle et qui retourne le fichier choisi. Voici son code :
Puisque nous avons notre fonction qui permet très simplement de choisir un fichier nous pouvons maintenant charger le fichier choisi et l'afficher dans notre zone de saisie.
Cette fonction est un peu plus complexe que la précédente, mais vous allez voir, rien de bien compliqué tout de même. Pour charger le fichier nous utilisons un objet de type "System.IO.StreamReader" qui s'occupera du chargement des infos. Les infos chargées seront placées dans la variable "words" de type "String". Suivant la taille du fichier à charger il peut se passer plus ou moins de temps. Pour faire patienter l'utilisateur il est bien d'utiliser le sablier de votre Pocket PC. Pour faire apparaître le sablier il suffit d'utiliser cette instruction :
Et pour le faire disparaître :
Avec VB.NET la gestion des erreurs a bien changé par rapport à VB. Il faut oublier l'ancienne gestion à base de ON ERROR... et de RESUME. La nouvelle manière de faire est bien plus... puissante, oui c'est le mot qui convient. La nouvelle méthode met en oeuvre une structure composée de 3 parties. Le principe est simple. Il consiste à placer en premier le code qui risque de poser un problème, puis en second le code à effectuer en cas d'erreur, pour finir le code à exécuter quoi qu'il arrive :
La première étape consiste à créer un objet de type "System.IO.StreamReader". L'un des constructeurs de cet objet permet lors de sa création de charger imédiatement le fichier donné en paramètre :
Rappel : "wFichier" est le paramètre de notre fonction "ChargerFichier". Si cette ligne de code ne retourne pas d'erreur, l'objet est créé (la variable "file" pointe sur cet objet) et le fichier est ouvert. A ce stade, il ne reste plus qu'à charger le contenu du fichier dans une chaine avec cette ligne de code :
Si tout c'est bien passé, la variable "words" (de type "String") contient maintenant toutes les données du fichier. Vous avez sans doute remarqué l'imbrication de 2 stuctures "Try ... End Try" permettant de sécuriser l'ouverture du fichier et aussi de sécuriser la lecture de son contenu.
Au final, il suffit de fermer le fichier "file.Close()", de placer son contenu dans la zone d'édition "TXT_Texte.Text = words" et de mémoriser le fichier en cours "FichierEnCours = wFichier".
Cette petite fonction place une chaine dans le contrôle "StatusBar" placé en bas de l'écran et qui est chargé d'afficher le nom du fichier en cours. Si le nom est trop long (avec le chemin ça peut être long) il faut n'afficher que les n derniers caractères, ce que retourne notre fonction "RessortirNomFichier" dont voici le code :
Ce code est très simple, si la chaine passée en paramètre est de taille > à 25 caractères la fonction retourne les caractères placé après le 22ème sinon elle retourne la chaine sans modification. Il y a bien sûr moyen de rendre cette fonction bien plus efficace (le code en place est très... bourin).
Nous avons maintenant toutes les pièces pour effectuer le chargement de notre fichier. Il suffit maintenant de placer le code final en réponse à l'événement "Click" du menu "Charger" :
Les choses avancent, nous savons maintenant charger un fichier avec la classe "System.IO.StreamReader" (trop facile), choisir un fichier depuis le dossier standard "\My Documents" grâce au control "OpenFileDialog", et aussi sécuriser notre code avec la puissante structure de gestion d'erreur "Try... Catch... Finaly... End Try". On a bien travaillé vous ne trouvez pas ? Dans la 3ème partie nous allons enregistrer notre zone d'édition et aussi, pour la fonction "Enregistrer sous..." utiliser le dialogue standard d'enregistrement de fichier. N'oubliez pas qu'en cas de problème, ou si vous avez des questions, le forum .NET de CodePPC est à votre disposition.
|
||||||||||||||
|
Copyright 2001-2004 - Tous droits réservés Toutes les autres marques et produits présents dans ces pages sont la propriété exclusive de leurs sociétés respectives. |