Bonjour et bienvenue.
Dans cette conférence, je veux fournir une
solution à notre défi précédent, qui consiste à convertir un fichier qui contient des caractères
minuscules dans un fichier qui contient des caractères majuscules.
En attendant, nous allons créer un fichier temporaire, nous allons donc
devoir renommer et supprimer et ainsi de suite.
Et la sortie finale pour le programme va être le fichier.
Nous allons lire dans le fichier que était déjà converti en majuscules.
Alors parlons du code blocs, créez un projet.
Je vais dire nouveau projet, console
application, allez c et cela s'appellera la conversion du fichier minuscule.
Nous allons juste que ce soit notre principal. c.
Nous voulons nous assurer que nous créons notre en-tête io standard
parce que nous allons lire et écrire et en utilisant fopen et ainsi de suite.
Donc ce que j'aime toujours faire c'est créez le fichier dès le départ.
Alors ici je vais définir une constante pour mon nom de fichier.
Appelons cela définir.
Et cette fois, nous appellerons test. texte.
Et donc nous allons simplement dire le nom du fichier est en majuscules.
J'aime faire cette convention.
Et puis je vais en fait créer le nom du fichier dans notre projet.
Alors encore une fois, je stocke mes fichiers dans mon répertoire de téléchargements.
C'est là que tout mon les projets sont stockés.
Et dans ce cas, nous avons un projet appelé conversion de fichier en minuscules.
Je vais y remédier dans le
même répertoire, afin que je puisse l'exécuter à partir de l'IDE.
Je vais créer un nouveau fichier texte.
Je vais nommer ce test. texte.
Et je vais en parler, et je vais juste
mettre des caractères minuscules et majuscules.
Alors disons que Jason teste. D'accord, quel que soit le test, certains sont en majuscules,
d'autres en minuscules résultat final,
ceux-ci seront toujours en majuscules, un autre défi.
On y va.
Donc, le résultat final de cela les fichiers vont être testés. txt avec toutes
ces majuscules.
Mais nous allons le sauver avec certaines majuscules et certaines minuscules.
Maintenant, nous avons notre fichier créé maintenant nous pouvons
réellement lire et écrire.
Je vais créer un fichier couple pointeurs avec fichier tout fichier en majuscules,
et je vais dire star fp.
Je vais initialiser ça à null, puis
je vais créer un autre pointeur de fichier star fp1 et également égal à null.
Encore une fois, j'ai besoin de deux ici parce
que Je vais lire et écrire dans des fichiers séparés, un fichier temporaire essentiellement.
Je vais aussi créer un personnage variable, qui sera le caractère que
nous lirons en utilisant fgetc.
Et je laisserai cela aussi égal à null aussi ou mieux encore, je
vais simplement laisser une chaîne vide.
La première chose que je dois faire est que je
besoin d'ouvrir le fichier en mode lecture pour le premier fichier qui est fp et le deuxième fichier sera un fichier temporaire.
Je vais donc dire que fp est égal à fopen.
Je vais utiliser le test de nom de fichier. texte.
Donc nom de fichier, et je vais pour ouvrir en lecture seule.
Et puis je veux faire sûr que c'est un nul.
Alors je vais dire si fp est égal à null,
alors je vais simplement retourner négatif 1.
Ensuite, je veux créer mon fichier temporaire.
Alors ici je vais créer un fichier temporaire.
Et dans ce cas, je vais ouvrir un fichier pour l'écriture.
Je vais donc utiliser mon pointeur fp1, et je vais dire fopen.
Celui-ci, je vais juste l'appeler temp. texte, il va le créer
s'il n'existe pas.
Et puis je vais mettre le w parce
que je vais lui écrire uniquement.
Encore une fois, ce que je veux faire voici que je
veux m'assurer que fp1 n'est pas égal à null.
Alors je vais dire fp1.
Si c'est nul, alors je suis juste va retourner un négatif.
Alors maintenant, j'ai ouvert deux fichiers, un pour la lecture, un pour l'écriture.
L'écriture est pour le fichier temporaire.
Et ce que je veux faire ensuite, c'est que je veux pour commencer la lecture du fichier,
puis écrire toutes les majuscules.
Je veux donc ajouter une boucle while à lu
et je veux dire alors que le type de données de caractère ch est égal à fgetc,
et je veux lire mon test. texte, donc fp et je veux faire ça jusqu'à ce que je n'atteigne pas la fin du fichier.
Donc, je peux dire pas égal à eof.
Eof est une constante spéciale.
Dans ma boucle while, je veux vérifiez si l'un des caractères que je lis est
en minuscule.
Donc, je veux dire si est un ch inférieur, si je trouve un
caractère minuscule, alors je veux
juste définir le caractère en majuscules.
Je peux donc dire que ch est égal à ch moins 32.
Cela convertira le personnage en majuscule.
Puis après l'avoir converti, soit il est converti ou pas non plus, il est en majuscule ou
non, alors je veux l'écrire dans mon fichier temporaire.
Donc ici, je peux dire fputc.
Et je peux juste dire mon personnage que je veux écrire et le pointeur de
fichier qui est fp1.
Donc à chaque fois que je lis un personnage, Je l'écris dans mon fichier temporaire.
Et si c'est minuscule, je convertis en majuscules, puis en l'écrivant.
Donc, la fin de cette boucle while est J'ai un fichier
temporaire qui contient tous les caractères du test. texte avec des lettres majuscules.
Et donc j'en ai fini avec les deux ces fichiers en lecture et en écriture.
Je peux donc dire fclose fp et fclose fp1.
Je veux maintenant renommer ma temp fichier à mon test. fichier texte.
Alors ici, je peux juste dire renommer, appelez la fonction renommer,
et je peux dire temp. texte c'est ce que je veux renommer.
Et celui que je veux renommer est un test. texte ou utilisez ma constante qui
est le nom de fichier.
J'ai toujours mon fichier temporaire créé.
Je veux donc supprimer le fichier temporaire.
Supprimez donc le fichier temporaire.
Ici, je peux appeler la suppression fonction et passez-le en temp. texte.
Et puis la dernière chose
que je veux je veux imprimer le contenu de mon test. fichier texte, qui sera converti en majuscules.
Au lieu de fermer fp car qui pointe vers le test. texte, je ne pouvais pas le
fermer maintenant, je pourrais fermez simplement fp1 car
fp1 était la température. texte et c'est le celui que je renomme et supprime.
En fait, je dois fermer parce que je l'ai renommé.
Je vais donc devoir fermer fp.
Alors maintenant à la ligne 43, je veux rouvrir fp parce que maintenant je veux lire le
contenu et l'imprimer.
Donc, je peux dire fp fopen nom de fichier ou désolé le nom du fichier et je veux le lire.
Alors je vais juste dire r.
Encore une fois, je veux faire sûr que ce n'est pas nul.
Et si c'est égal à null, je veux revenir.
Et je veux juste dire renvoie un négatif.
Je pourrais imprimer quelques entrées.
Et puis ici je veux lire les données et imprimez-les simplement.
Je peux donc faire une autre boucle while.
Nous n'avons encore rien imprimé, donc nous
devrions pouvoir dire simplement alors que ch est égal à fgetc fp et non égal à eof.
Et ce que nous voulons faire, c'est nous veux juste imprimer ch.
Donc on peut dire percent c ch, et puis nous avons tous fini.
Et puis encore, à la fin, nous voulons fermer ce dernier fichier qui est fp et
nous voulons définir fp égal à null et fp1 égal à null.
Alors assurons-nous que cela se construit.
Nous sommes donc prêts à partir.
Nous pouvons compiler, mettre un point-virgule dans la ligne de 54, j'ai eu un colon là-bas.
Donc si nous retournons à travers ce code, nous
créons quelques pointeurs de fichiers.
Nous avons notre constante.
Nous ouvrons un fichier.
Nous en avons lu.
Et pendant que nous lisons, nous écrivez-le dans un fichier temporaire.
Nous supprimons ensuite le fichier temporaire.
Nous devons supprimer à la fois le fichier nous lisons et le fichier temporaire parce
que nous devons renommer et supprimer.
Nous ne pouvons pas appeler renommer ou supprimer sur un fonction ou sur un fichier déjà ouvert, nous devons
donc les fermer.
Alors nous rouvrons et nous imprimons les données.
Alors nous gérons ça.
Nous devrions voir la sortie avec toutes les informations de caractère de.
Ainsi, lorsque nous exécutons ce programme, ce que nous verrons, c'est qu'il imprime tout en majuscules.
Alors encore une fois, on l'exécute, ça imprime tout en majuscules.
Si nous regardons le fichier sur disque, nous pouvons regarder test. texte, et nous le remarquerons maintenant
contient tout en majuscules.
Encore une fois, si nous voulions changer cela et changez un peu plus de minuscules.
Donc on le sauve ici en minuscules nous exécutons le programme
et il convertit tout en majuscules.
Encore une fois, si nous exécutons ceci, imprimez-le en majuscules.
Nous le regardons et tout est en majuscules.
Donc un joli petit programme qui convertira les
caractères minuscules en majuscules.
Assez simple, nous sommes en utilisant nos fonctions
importantes ici, qui sont les pointeurs de fichiers fopen.
Et puis nous utilisons nice fclose supprimer et renommer.
Et puis le fopen et fgetc.
Si vous avez des questions, S'il vous plait, envoyez-moi un email.
Je vais enregistrer ce fichier source au format zip fichier afin que vous puissiez y jeter un œil.
Merci.