cs_MillePattes
Messages postés4Date d'inscriptionvendredi 30 septembre 2005StatutMembreDernière intervention 2 octobre 2005
-
1 oct. 2005 à 13:09
cs_MillePattes
Messages postés4Date d'inscriptionvendredi 30 septembre 2005StatutMembreDernière intervention 2 octobre 2005
-
2 oct. 2005 à 01:29
Bonjour à tous !
C'est mon premier message et je voudrais me présenter. J'ai fait du
Turbo-Pascal en amateur (mais à un niveau correct, je crois) il y a 10
ans et je me retrouve en face de Delphi pour la première fois. C'est du
bonheur et c'est du désarroi ! Je commence par essayer de me faire une
petite application où je rassemblerai toutes les opérations de base
pour me dérouiller un peu.
J'ai commencé facile : par un bouton qui écrit "Bonsoir" dans un label
quand le texte du label est "Bonjour" et vice-versa. J'ai créé ensuite
un autre bouton qui permet de fermer mon application. Puis je lui ai
fait afficher une fenêtre de confirmation avant que cette fermeture ait
lieu et réagir selon la réponse. Si vous avez des idées d'exercices,
n'hésitez pas à m'en proposer : cela me sera bien utile.
Le prochain exercice que je me donne porte sur les fichiers. J'ai
découvert que la procédure Assign est devenue Assignfile et que la
commande close est devenue closefile. J'ai réussi à afficher dans un
composant Richedit le contenu d'un fichier texte (de type textfile)
avec la vieille méthode d'une boucle qui lit ligne à ligne jusqu'à la
fin du fichier. Mais maintenant j'aimerais bien faire une lecture moins
primaire et utiliser les capacités RTF... Je me dis qu'il devrait bien
y avoir moyen de charger un fichier Word dans cette sacrée boite
RichEdit mais je n'arrive pas à trouver la technique. J'ai découvert un
nouveau type TStrings qui paraît être un composé (composé comment ?,
j'en ai aucune idée !) de String. Il m'a semblé que je devais chercher
de ce côté-là, mais j'ai peut-être complètement faux.
Au début, j'ai cru que la propriété RichEdit.text était justement du type TStrings et qu'il me suffirait d'écrire :
var f:file of Tstrings;
texte : Tstrings;
procedure lecture;
begin
assignfile(f,'nom de fichier');
reset (f);
read(f,texte);
closefile(f);
richedit.text:=texte;
end;
Mais c'était trop facile ! richedit.text est du type Tcaption. Alors
j'ai tendé de déclarer f comme un fichier de type tcaption mais c'est
impossible et je suis bloqué... Qui peut m'aider ?
jlen100
Messages postés1606Date d'inscriptionsamedi 10 juillet 2004StatutMembreDernière intervention25 juillet 201413 1 oct. 2005 à 13:57
salut ,
pour debuter prend l'exemple de l'aide:
var
F: TextFile;
S: string;
begin
if OpenDialog1.Execute
then
{ Affichage de la boîte de dialogue d'ouverture }
begin
AssignFile(F, OpenDialog1.FileName); { Fichier sélectionné dans la boîte de dialogue }
Reset(F);
Readln(F,
S);
{ Lecture de la première ligne du fichier }
Edit1.Text :=
S;
{ Introduction de la chaîne dans un contrôle TEdit }
CloseFile(F);
end;
end;
n'oublie pas de poser un opendialog sur ta fiche (barre de composants -->dialog--opendialog)
en fait un Tsrings est une liste de string et TCaption = type string;
pour le richedit utilise plutot la proprietes lines plutot que texte .
La proptiete lines est un Tstrings qui offre plus de possibilites. (vas
voir l'aide aux rubrique Trichedit et Tsrings) en particulier tu peux
recharger un fichier texte complet en faisant :
cs_MillePattes
Messages postés4Date d'inscriptionvendredi 30 septembre 2005StatutMembreDernière intervention 2 octobre 2005 1 oct. 2005 à 16:31
Merci beaucoup jlen100 ! Effectivement richedit.lines est bien meilleur
et c'est bien sûr ce qu'il me fallait. Merci aussi pour le truc du
composant Opendialog qui est bien commode. Mais (corrige-moi si je dis
une bêtise) il n'est pas essentiel, c'est d'accord ? Il suffirait de
mettre le chemin du fichier à ouvrir dans une chaîne et loadfromfile
marcherait aussi bien. J'ai vu qu'on pouvait toujours poser une
interruption de messages d'erreur comme il y a 10 ans et puis la
récupérer et la traiter s'il y a un ennui d'ouverture de fichier.
jlen100
Messages postés1606Date d'inscriptionsamedi 10 juillet 2004StatutMembreDernière intervention25 juillet 201413 1 oct. 2005 à 17:06
tout à fait d'accord l'opendialog n'est pas indispensable et tu peux
fort mettre le chemin du fichier directement a la place filename . un
des avantages d'opendialog est de pouvoir recuperer facilement le
chemin du fichier et son extension (vas voir dans les prorpietes tu
trouveras:
defautext ;filterext; qui permettent de n'afficheer que les fichiers
voulus; initialdir qui permet de choisir le dossier par defaut);
pour le IOresult (si c'est ce que tu utilises) je ne crois pas que
cette fonction marche avec le loadfromfile (il faudrait essayer) il
vaut mieux utiliiser la fonction fileexists pour verifier l'existance
du fichier:
function FileExists(const FileName: string): Boolean;
avant de tenter un acces au fichier
if FileExists('nomdufichier') then
richedit.lines.LoadFromFile('nomdufichier)
else ShowMessage('Impossible de trouver ' nomdufichier '.')
tu peux aussi utiliser FileSearch('nomdufichier',liste de dossier) pour verifier l'existence et le chemin du fichier.
cs_MillePattes
Messages postés4Date d'inscriptionvendredi 30 septembre 2005StatutMembreDernière intervention 2 octobre 2005 1 oct. 2005 à 18:24
Génial ! FileExists me convient tout à fait. Je me souviens que je
m'étais fait (comme tout le monde à l'époque) une petite unité qui
gérait les fichiers et où j'avais écrit bien sûr la fonction
Existe_Fichier qui était exactement la même... Rien que cette petite
discussion avec toi m'a beaucoup appris, parce que je nage pas mal dans
l'aide...
Mille-Pattes
Vous n’avez pas trouvé la réponse que vous recherchez ?
jlen100
Messages postés1606Date d'inscriptionsamedi 10 juillet 2004StatutMembreDernière intervention25 juillet 201413 1 oct. 2005 à 18:43
c'est vrai qu'au depart quand on ne sait pas trop quoi chercher il faudrait une aide pour utiliser l'aide!!
surtout que celle de la version 2005 manque serieusement d'exemples je
lui prfer nettement celle de delphi7. mais bon avec un peu d'habitude
ça va pas trop mal