[MUSIQUE JEU] ROB BOWDEN: Salut. Je suis Rob, et espérons que cette solution vous aide à mettre sur la voie de la reprise. Donc, nous allons commencer. Nous voyons que nous sommes immédiatement juste pour s'assurer que nous sommes utilisant récupérer correctement. Donc, l'utilisation devrait juste être quelque chose comme slash dot récupérer. Maintenant, nous allons ouvrir le prévu carte dot fichier brut. Nous voyons ici que nous utilisons la nom de fichier de soulignement première constante, qui ici nous avons hachage définie comme carte dot brut. OK. Donc, nous devons faire en sorte que cette ouvert avec succès parce que si elle n'avons pas, alors nous devrions avertir l'utilisateur. Mais en supposant qu'il a fait, nous sommes maintenant va déclarer un tampon de taille JPEG le nom de fichier long. Donc cela va être le tampon nous allons sprintf en. Alors, quel est le nom de fichier JPEG longueur? Ici, nous voyons que c'est hachage définie comme huit. Alors pourquoi huit? Eh bien un fichier donné sera nommé quelque chose comme zéro zéro zéro. JPG et nous avons besoin d'une barre oblique inverse zéro. Nous avons donc besoin d'un tampon qui peut stocker huit caractères. Maintenant, nous allons avoir un compteur qui est va garder une trace de l' nombre JPEG nous avons trouvé. Et enfin, nous allons avoir un Fichier JPEG qui est initialement nulle qui va être le moment fichier ouvert que nous écrivant à. Maintenant, nous allons avoir un tampon supplémentaire. Ce n'est pas le même que notre sprintf tampon où ce tampon est une que nous lisons dans les données de la carte dot brut. Donc, le tampon va être d' caractères non signés, que vous pouvez essentiellement traiter juste nous octets, et c'est va être d'une taille de bloc de taille où, comme nous vous le disons, taille de bloc est de 512. Donc, JPEG, vous pouvez traiter tout sous forme de blocs de 512 octets. Maintenant, nous allons à la boucle sur l'ensemble du dossier. Nous allons f lire dans notre buffer une seule fois de la taille de bloc d'octets à partir de la carte dot fichier brut. Maintenant qu'est-ce que f lu revenir? Elle renvoie le nombre d'éléments qu'il a lu avec succès. Donc, si il a réussi à lire 512 octets, alors nous voulons voir s'il s'agissait d'une JPEG ou écrire dans un fichier JPEG. Et si elle ne revenait pas 512 octets, alors soit le fichier a terminé en auquel cas nous allons faire une pause de la y boucle, ou il ya une sorte d'erreur dans ce cas, nous allons également sortir de la boucle de y, mais nous voulons signaler que quelque chose n'allait pas. OK. Donc, en supposant que nous lisons avec succès en 512 octets, nous voulons d'abord vérifier de faire que ces octets que nous il suffit de lire en commencer une JPEG. Donc, si c'est en-tête JPEG de notre tampon. Maintenant ce qu'il est tête JPEG faire? Voyons. Ici, nous voyons que cette fonction est retour d'un taureau, et le taureau - bien ici, nous vérifions pour voir si tête zéro égal à cette constante et tête un égal à cette constante et tête de deux égal à cette constante, tête à trois est égal à ce ou cette constante où tous ces constantes sont juste hachage défini ici et sont exactement ce que nous vous avons dit dans la spécification qu'un JPEG commence par. Et si cette fonction va juste return true si ce tampon représente le début d'une nouvelle JPEG et false sinon. OK. Donc, si cela ne représente une nouvelle JPEG, alors nous voulons d'abord vérifier si Fichier JPEG n'est pas égale à zéro, dans ce cas, nous fermons. Et pourquoi avons-nous besoin de vérifier pour voir si elle n'est pas nulle? Eh bien la première JPEG que nous trouver nous n'aurons pas déjà un fichier JPEG ouvert. Et donc, si nous essayons de combler ce, alors nous ne faisons pas quelque chose de tout à fait raison. Mais chaque JPEG ultérieure que nous ouvrons, nous voulons fermer le fichier précédent. Alors maintenant, nous allons utiliser sprintf que nous dit avant où nous utilisons la nom de fichier JPEG tampon. Et nous allons utiliser un fichier JPEG nommer format que notre forme. Et qu'est-ce que c'est? Ici, nous voyons qu'il est zéro pour cent 3D.jpeg où le zéro trois juste dit que nous allons utiliser trois entiers pour cette complétées par des zéros. Voilà donc comment nous allons obtenir zéro zéro one.JPEG et 10.jpeg zéro et ainsi de suite. Nous allons utiliser sprintf. Et le nombre entier que nous insertion dans la chaîne est JPEG engourdis récupéré, qui est à l'origine zéro. Ainsi, le premier fichier ouvert se passe à zéro zéro point zéro JPEG. Et puis nous incrémentation de sorte que le l'image suivante nous ouvrons sera zéro zéro un point JPEG et nous incrémentons encore si ce sera zéro zéro deux points JPEG et ainsi de suite. Très bien. Alors maintenant, l'intérieur du fichier JPEG nom, nous avons le nom de l' déposons que nous voulons. Nous pouvons f ouvrir ce fichier pour l'écriture. OK. Et encore une fois, nous devons vérifier pour vous Vérifiez que le fichier avec succès ouvert car si elle n'a pas, alors il y avait une erreur. Alors maintenant, nous avons obtenu le passé est-ce une partie JPEG. Et ici, nous voyons que nous allons d'écrire sur le JPEG. Mais nous devons d'abord cette vérification qui dit si le fichier JPEG n'est pas égal à zéro. Pourquoi avons-nous besoin de cela? Bien fichier JPEG est égale à zéro lorsque nous ont actuellement un JPEG ouvert. Que faire si la carte commence points premières avec un groupe d'octets ne représentent pas un JPEG? Ensuite, nous allons vouloir sauter par-dessus les octets. Si nous n'avons pas cette vérification, nous sommes va écrire dans un ouvert déposer les 512 premiers octets de la carte qui n'est pas bon. OK. Donc, en supposant que nous avons un fichier ouvert, alors nous allons écrire dans ce fichier la 512 octets que nous avons dans notre mémoire tampon. Et nous sommes encore une fois la vérification pour s'assurer s'assurer que les 512 octets succès ont été écrit parce que si elles n'étaient pas écrit avec succès, alors quelque chose qui a mal tourné. Nous fermons nos fichiers, imprimer que quelque chose s'est mal passé, et retour. En supposant que tout se passe bien, alors nous allons continuer à boucle de fermeture du ancien fichier, ouvrir le nouveau fichier, l'écriture données dans le nouveau fichier, et ainsi jusqu'à ce que finalement, ce f lu renvoie zéro qui aide que le dossier est fait. Alors, maintenant que la lecture de la carte est terminée, nous voyons que nous allons fermer la f dernier fichier que nous avions ouvert, mais nous vérifions si le fichier JPEG n'est pas égal à zéro. Eh bien la f près de sens parce que nous allons ouvrir des fichiers, on ferme le fichier précédent, mais la dernière fichier que nous avons ouvert obtient jamais fermé. C'est ce que ce fait. Mais pourquoi nous devons vérifier pour nulle? Eh bien si la carte n'a pas de point brut avoir un seul JPEG à l'intérieur de celui-ci? Dans ce cas, nous aurions jamais ouvert un fichier. Et si nous n'avons jamais ouvrir un fichier, nous devrions pas essayer de refermer ce dossier. C'est ce que ce contrôle est fait. Ici, comme je l'ai déjà dit, nous avons pu ont éclaté cette boucle y soit si la carte est terminé ou si il ya une erreur de lecture de la carte. Donc vérifie pour voir s'il y avait une erreur de lecture de la carte, dans auquel cas, nous y disons était une erreur de lecture. Nous ne voulons pas que l'utilisateur pense tout marche bien. Et nous reviendrons un droit à l'erreur. Enfin, nous terminons notre f fichier brut, notre carte dot brut, pour indiquer que tout s'est bien passé et le retour zéro et c'est tout. Mon nom est Rob et c'était récupérer. [MUSIQUE JEU]