|
|
|
|
Une belle ratatouille ce code là :-D .
Pour ouvrir convenablement un fichier en lecture seule: /* Portion de code */ #include <stdio.h> #include <stdlib.h> FILE *stream; stream = fopen("c:\\fichier.txt", "r"); if(stream = NULL) { printf("Le fichier n'existe pas"); } else { printf("Le fichier existe et est ouvert en lecture seule"); } fclose(stream);
|
#include <stdio.h>
#include <stdlib.h> FILE *fptrNO; fptrNO = fopen("files", "r"); // "files" doit être dans le répertoire local à l'application A partir de la le fichier peut être ouvert si il existe et que l'adresse est correcte maisdans le cas contraire tu auras un bug donc c'est pour ça que l'on met un "if()" pour vérifier que le fichier peut être ouvert sinon on ne réalise aucune opération sur ce fichier qui n'existe pas. |
Sans oublier de faire:
fclose(fptr); // libère le pointeur de flux de données
|
Bon laisse moi 5' je vais réarranger ce code et tu me diras si cela te convient. |
Et ben bon dieu faut décortiquer ce que souhaitais faire parce que la logique du code je la cherche toujours ;-) .
|
#include <stdio.h>
#include <math.h> #include <stdlib.h> #include <string.h> int main() { FILE *fptrNO,*File; int FileNum,i,j,k; char *fich; fptrNO = fopen("files", "r"); if(fptrNO != NULL) { fscanf(fptrNO, "%d", &FileNum); for (i = 1; i < FileNum + 1; i++) { fscanf(fptrNO,"%c",&fich); printf("\n %c\n \n",fich); File = fopen("fich","r"); if(File != NULL) { /* instructions */ } } } fclose(fptrNO); return EXIT_SUCCESS; } Un 1er jet pour ouvrir les fichiers.
|
J'ai oublié de dire que tes variable déclaré hors bloc sont globales et c'est à éviter quand ce n'est pas nécessaire car ça consomme de la mémoire inutilement, du moins trop longtemps. |
C'est possible d'avoir le contenu du fichier "files" pour voir la tête que ça? ou un exemple pour voir l'organisation.
|
excuse moi j"ai du me deconnecter pour quelque temps.
un exemple tout simple du contenu du fichier FILES est 1G avec 1 le nombre de fichier a lire, et G le nom du fichier a lire. G est un fichier qui contient un texte. Merci |
Si tu mets ton fichier dans une chaine de caractère par "fread()" tu pourras par la suite la traiter pour tirer les informations qui t'intéressent. Par exemple si le 1er caractère de la chaine est un chiffre alors tu le copie dans un tableau etc jusqu"à extraire le nombre désiré. L'avantage de traiter le fichier par une chaine de caractère c'est d'avoir la facilité de traitement et par la même occasion éviter l'acces au disque dur ("fseek()", "fsetpos()" déplacent la tête de lecture/écriture) qui est plus coûteux en temps que le traitement en mémoire vive. |
Salut tout le monde
est ce ke vous savez commen on fé pour lire un fichier en vb svp. merci d'avance |
Avec Visual Basic :)
Ne prend pas ton temps car le temps ne t'attend pas. |
bonjour
déjà, pour repondre a la demoiselle qui pose sa question sur l'ouverture, la lecture propre sequentielle mode texte formatté d'un simple file, je suis sur qu'elle peut trouver toute seule en respectant certes, comme elle dis ' c du joli code ca',une certaine discipline de programmation parce que en c, surtout le c_ansi, il neput pas y avoir de l'a peu pres, c du pointu, c tout. Donc, par ex, quand je lis et comprends ( à moitié bien sûr etant donné que le programme est comprehensible seulement par rapport à son degré de discipline de developpement par rapport au standart ansi_c...) la valeur de retour de la fonction main avec return EXIT_SUCCESS, ben laissez moi vs dire que la, c deja pas du propre car il aurait aussi fallut declarer la vraie definition de la fonction main, meme si ns travaillons pas en environnement de shell commande, d'invite de commande si vs preferez ( int argc, char*argv[], char*enp[])+ le fichier en tête correspondant et contenant la definition de la fonction renvoyant ce genre de code de retour pour main à l'environnement OS. Ceci etant dis, revenons dans le sujet posté par cette demoiselle: LIRE UN FICHIER QUI CONTIENT DES AUTRES NOMS DE FICHIERS?? Ben , déjà, ton fichier contenant ces fameux autres noms doit préalablement exister. ensuite, tout depend du mode avec lequel tu accèdes à ces fichiers, comprends tu?? il fo trop bien differencier le mode texte du mode binaire A MON AVIS, celui qui es dans le vrai pour le moment, c BOB c le seul qui approche le c propre et dans les règles. ton code du debut mademoiselle et ce que l'on appelle, du spaghettos ou spaghettis si tu es italienne lol Si par exemple, tu as specifié un numero de fichier correspodant à un fichier se trouvant dans le fichier contenant tous les autres fichiers auxquels tu desires acceder comm bon te sembles, et que, le fichier selectionner n'est qu'un fichier binaire, c'est à dire, non formatté, genre un executable, un classeur excel, une base de données access, là il te faudra reflechir car ce n'est pas aussi simple que tu le penses. Avec le mode binaire du c_ansi, tu pourras lire et ecrire dans les streams comme bon te sembles, mais, tout ce que tu auras à l'ecran, ce sera le courant binaire tel qu'il aura ete copier et lu dans un buffer avec fread et fwrite. avec du mode texte, avec fgetc, fputc pour lire et ecrire caractere /caractere, avec fgets et fputs, "" lignes / lignes, et un autre acces special , l'aleatoire, qui fonctionne avec les enregistrements mais en mode binaire,tu auras à l'ecran pour un simple file en texte formatté exactement ce que tu auras lu ou ecrits, par contre, avec les executables, cela va te surprendre , tu n'auras qu'à essayer. TON PROBLEME C QUE TU AS PAS COMPRIS COMMENT FONCTIONNE LE LANGAGE DE PROGRAMMATION C, qui en apparence,n je vs l'accorde est simple, mais, qui dans les details, ne peut etre compris que par les plus ferus, ca c clair bonne chances abdel |
je cherche une définition du fichier inclus en C et une comparaison entre le pascal et le langage c
|
|
ql est intéret des overlay ds le langage pascal et est ce ils existe ds le langage C |
|
Bonsoir,
(a Tilteur et Ahmed, il vaudrait mieux ouvrir un nouveau thread .) Laura, voici ton code un peu corrigé, je l'ai compilé et il fonctionne sans problème chez moi. J'ai créé un fichier FILES contenant 1G et un fichier G (vide) pour le tester: #include <stdio.h> #include <math.h> #include <stdlib.h> #include <string.h> FILE *fptrNO,*File; int FileNum,i,j,k; char fich [2]; //<--correction int main() { if((fptrNO=fopen( |
Salut Laura, je sais que beaucoup de temps est passé mais comme j'étudie pour mon examen de C, j'ai découvert ta faute, cella que personne n'a vue. Tout est correct (à part ta technique de programmation confuse) mais le problème principal c'est que tu as mis FICH entre guillemets; alors, il le prend pour un littéral, ce qui fait que la valeur que tu as lue dans ton fichier (G) qui est en fait le nom du fichier que tu désirais ouvrir n'est pas prise en compte.
JE pense que c'est ça et après tout s'est emmelé dans la discussion.. pas facile d'être compris. J'ai pas testé mais c'est à vvue d'oeil. Si je me trompe ignorez ce message. Ciao! |
peut etre ta oublié l'extension des fichiers à lire(.txt) |
Résultats pour Lire un fichier en C
Résultats pour Lire un fichier en C
Résultats pour Lire un fichier en C
Résultats pour Lire un fichier en C