Aller au contenu

Atlante

Membres
  • Compteur de contenus

    18
  • Inscription

  • Dernière visite

Autres informations

  • Mes langues
    Fr, En

Atlante's Achievements

Junior Member

Junior Member (3/12)

0

Réputation sur la communauté

  1. Atlante

    [C] Problème fichiers

    Je travaille sur XP et accessoirement 2k. J'utilise CodeBlocks J'utilise 2 fichiers en binaire donc pour moi fscanf va lire le contenu binaire du fichier (enfin c'est ce que je pensais). Et pour finir je l'écris dans un txt pour un souci de lisibilité au cas où je déciderais d'ouvrir le fichier "manuellement". De toute facon, le problème doit venir effectivement de fscanf car j'effectue ce "même" traitement quand z vaut 1 et ca fonctionne parfaitement donc je ne pense pas que le souci soit au niveau de l'index des tableaux. (en même temps je ne m'y connais pas assez pour affirmer tout ça) En tout cas, merci de ta patience c'est pas toujours facile
  2. Atlante

    [C] Problème fichiers

    Oui les données sont contenues en "vrac" tel que 7090100120140160180200 Effectivement je vois pas comment fscanf va différencier les différentes valeurs si j'ai pas de séparateur Je vais rajouter un espace entre les données Voici l'intégralité de mon code pour info int ajout_f () { int i, o, p, q, z; int dsu, dchm=20, dchmi=1, tab[9], tabc[9], tabd[9]; FILE *k; printf("1. Utiliser les valeurs theoriques ?\n"); printf("2. Utiliser les valeurs modifiees ?\n"); scanf("%d", &z); if (z == 1) { k = fopen("C:\\test1.bin","r+b"); for (o = 1; o <= 9; o++) { dchm += 20; tabc[o-1] = dchm; } fwrite(tabc, sizeof(int), 9, k); } else if (z == 2) { k = fopen("C:\\test1.bin","r+b"); fscanf(k, "%2d%2d%2d%3d%3d%3d%3d%3d%3d", &tabc[1], &tabc[2], &tabc[3], &tabc[4], &tabc[5], &tabc[6], &tabc[7], &tabc[8], &tabc[9]); } fclose(k); FILE *l; if (z == 1) { l = fopen("C:\\test2.bin","r+b"); for (p = 1; p <= 9; p++) { dchmi += 20; tabd[p-1] = dchmi; } fwrite(tabd, sizeof(int), 9, l); } else if (z == 2) { l = fopen("C:\\test2.bin","r+b"); fscanf(l, "%2d%2d%2d%2d%3d%3d%3d%3d%3d", &tabd[1], &tabd[2], &tabd[3], &tabd[4], &tabd[5], &tabd[6], &tabd[7], &tabd[8], &tabd[9]); fwrite(tabd, sizeof(int), 9, l); } fclose(l); FILE *j; j = fopen("C:\\test3.bin","ab"); for (i = 1; i <= 9; i++) { printf("D %d : ", i); scanf("%d", &dsu); tab[i-1] = dsu; } fwrite(tab, sizeof(int), 9, j); fclose(j); FILE *m; m = fopen("C:\\resultats_f.txt","at"); for (i = 0; i < 9; i++) { if (tab[i] <= tabc[8-i] && tab[i] >= tabd[8-i]) { printf("D %d : %d -> Ok\n", (i+1), tab[i]); } else if (tab[i] >= tabc[8-i]) { printf("D %d : %d -> Supérieur\n", (i+1), tab[i]); } else if (tab[i] <= tabd[8-i]) { printf("D %d : %d -> Inférieur\n", (i+1), tab[i]); } } fclose(m); } Le fread est appelé dans une autre partie du programme Pour test1 et j'ai la même chose pour test2 int lecture_dcf() { FILE *k; int i; int tab2[9]; k = fopen("c:\\test1.bin","rb"); for (i = 1; i <= 9; i++) { fread(&tab2[i], sizeof(int), 9, k); printf("%d ", tab2[i]); } fclose(k); }
  3. Atlante

    [C] Problème fichiers

    Non je n'ai pas de séparateur. Effectivement j'ai souvent des nombres composés de 3 chiffres ou 2 parfois, en faite j'ai deux fichiers où les données sont rangés et quand je les lis avec fread j'obtiens : pour le fichier test1 : (je mets un espace pour plus de lisibilité mais dans le fichier il n'y en a pas) 40 60 80 100 120 140 160 180 200 pour le fichier test2 : 21 41 61 81 101 121 141 161 181 donc dans mon code j'ai mis pour test1 : else if(z == 2){ k = fopen("C:\\test1.bin","r+b"); fscanf(k, "%2d%2d%2d%3d%3d%3d%3d%3d%3d", &tabc[1], &tabc[2], &tabc[3], &tabc[4], &tabc[5], &tabc[6], &tabc[7], &tabc[8], &tabc[9]); } fclose(k); et pour test2 : else if(z == 2){ l = fopen("C:\\test2.bin","r+b"); fscanf(l, "%2d%2d%2d%2d%3d%3d%3d%3d%3d", &tabd[1], &tabd[2], &tabd[3], &tabd[4], &tabd[5], &tabd[6], &tabd[7], &tabd[8], &tabd[9]); } fclose(l); Pour ensuite faire le traitement suivant : for (i=0; i<9; i++){ if (tab[i]<=tabc[8-i] && tab[i]>= tabd[8-i]) printf("D %d : %d -> Ok\n", (i+1), tab[i]); else if (tab[i]>=tabc[8-i]) printf("D %d : %d -> Supérieur\n", (i+1), tab[i]); else if(tab[i]<=tabd[8-i]) printf("D %d : %d -> Inférieur\n", (i+1), tab[i]); } tab étant un tableau contenant des valeurs saisies par l'utilisateur Et au final la comparaison ne se fait pas correctement, ca à l'air de marché pour certains mais pas pour d'autre sans que je vois pourquoi. C'est pourquoi, je pense avoir une erreur au niveau du fscanf. Je vous ai mis tous le code (enfin la partie posant problème) pour que vous ayez une meilleur vision de ce que je veux faire. En espérant que ca parle à quelqu'un
  4. Atlante

    [C] Problème fichiers

    J'ai essayé également avec &tabc mais ca ne fonctionne pas. Je pense que le problème vient du faite que dans mon fichier il n'y a pas d'espace entre les chiffres. J'ai par exemple 221200212 dans mon fichier... que j'affiche avec un espace pour avoir 221 200 212... Et comme j'ai cru comprendre que fscanf nécessitait un espace entre chaque valeur c'est probablement pour ça que ca ne fonctionne pas.
  5. Atlante

    [C] Problème fichiers

    type int je lis avec fread mais je n'ai pas mis cette partie du programme étant donnée quelle fonctionne Je compare comme ca if (tab[i]<=tabc[8-i] && tab[i]>= tabd[8-i]) printf("F %d : %d -> ok\n", (i+1), tab[i]); Je compare tab avec tabc et tabd. Je n'ai marqué que tabc dans mon message car c'est le meme problème pour tabd tabc est défini en int. Concernant fscanf(FILE * restrict stream, const char * restrict format, ...); Juste une petite précision, je ne pratique pas régulièrement le C j'ai donc quelques souci à retenir ou comprendre certains principe du langage. Certes c'est mon problème mais c'est ce qui fait que je bloque. Merci
  6. Bonjour, J'ai un petit souci concernant les fichiers. J'essaye de récuperer le contenu d'un fichier (.bin) qui contient des valeurs tels que 200 122 026 655 822 Mon but serait de venir lire ces données pour les stocker dans un tableau pour ensuite les comparer avec un autre tableau. J'arrive à les lire avec la fonction fread (il les lit correctement). Parcontre lorsque je fais ma comparaison entre les deux tableaux ca me sort des valeurs tels que 0 225144 2325514 etc.. voici le bout de code qui pose problème : else if(z == 2){ k = fopen("C:\\d.bin","r+b"); // for(o=1; o<=9; o++) fscanf(k, "%d %d %d %d %d %d %d %d %d", tabc[1], tabc[2], tabc[3], tabc[4], tabc[5], tabc[6], tabc[7], tabc[8], tabc[9]); // fscanf(k, "%d", &tabc[o-1]); } je souhaite donc, via fscanf ou autre, recuperer le contenu pour le stocker dans un tableau mais je n'y arrive pas. Si quelqu'un serait m'apporter son aide, merci d'avance.
  7. Bonjour, La fonction Sock() est en faite la partie qui crée initialise le socket, le crée etc.. sauf l'envoie et la fermeture et evnoi() c'est le send dans ma fonction socket.
  8. Bonjour, je développe actuellement une application avec Visual C++ et je me sert des MFC. Bref j'ai crée une Edit box dans laquelle je voudrais afficher mon buffer (il recoit des données en boucle). Cependant il n'affiche les données de mon buffer qu'à la fin de la boucle et non durant toute la boucle. Si quelqu'un peut me debloquer.. Merci. void CClientDlg::OnRecept() { // TODO: Add your control notification handler code here* static char buffer[TAILLE]; int test=0; int autori=0; char lettre=0; int i; SOCKET descripteur; sock(&descripteur); for(int j=0;j<10;j++) // Boucle infini pour envoyer les données en continues { for (i=0;i<TAILLE-1;i++) { buffer[i]=lettre = reception(); // Reception des données mise dans un buffer } buffer[i] = '\0'; for (i=0;i<2;i++) reception(); envoi(buffer,descripteur); ctrl_valeur.SetWindowText(buffer+1); ctrl_valeur.UpdateData(TRUE); } } Je début dans les MFC soyez indulgents :] Dans ClassWizard j'ai ajouté une variable de category Control de type CEdit
  9. Atlante

    Problème écran

    Réinstaller l'écran ? Peut on etre un peu plus précis s'il vous plait. Merci.
  10. Atlante

    Problème écran

    Trop facile ça :/ Je veux comprendre la source du problème. Le sav sera le recours ultime
  11. Atlante

    Problème écran

    Bonjour, J'ai beau avoir parcouru les pages de cette section j'ai rien trouvé suceptible de m'aider donc je vais poser ma question j'ai un problème avec mon écran au démmarage et sous windows il est décalé donc j'ai une partie de l'écran qui est noir car l'image sort de la bordure. J'entend par là que c'est un écran tft tout récent, si je fais ajuster automatiquement ca ajuste sur les coté mais pas en hauteur et si je vais dans les paramètres pour régler la hauteur et la largeur ca marche mais ca ne les sauvegardes pas. Si je redémarre l'écran ca sera a nouveau décalé. J'ai ce pb depuis que j'ai mis cette écran sur autre ordi temporairement, pb que je n'avais pas avant sur le pc au quel il appartenait. Puis quand je l'ai remis a nouveau sur le pc au quel il appartient j'ai eu le meme symptome que sur l'autre ordi alors qu'avant ca marchait... je sais pas si je me fais bien comprendre bref ca n'a pas l'air de venir de la carte graphique car avant ca marchait c'est depuis que je l'ai mis temporairement sur un autre que j'ai ce vieux problème qui m'enerve. help ! merci
  12. Atlante

    erreur 680

    Salut ! toi t'es chez ci je parie ? si cest le cas regarde sur le site il te donne la réponse dans assistance.
  13. Atlante

    Problème Routeur

    Possible j'ai pas trop regardé en détail je vais essayer ce midi je verrais ça, merci ! Bon bin j'ai testé. Sans succès. J'ai effectivement une option NAT ou j'y ai mis une nouvelle entrée en mettan ip interne (ip local du pc que je veux atteindre) port 5900 ip externe (ip du routeur) port 5900 tout ça en tcp et meme en udp au cas ou puis dans routage ip j'ai mis destination ( ip du pc à atteindre) passerelle ( ip du routeur) en mode interface internet et en métrique valeur 1 et ca marche pas quand j'essaye depuis le pc de l'extérieur de l'atteindre. Help me ! Elle est où mon erreur ? Merci !
  14. Salut ! Apres une petite recherche je n'ai rien vu suseptible de m'aider ou j'ai mal cherché ce qui est possible aussi Voici ma requête. Je tente d'accéder via un pc distant sur un autre poste fixe connecté au web bien sur, chacun ayant le logiciel installé ( VNC ), un en mode serveur et l'autre en mode client.. Cependant le pc ou je veux prendre la main est derriere un routeur donc je pense qui faut dire au routeur de renvoyer la requête vers le pc en question mais je sais pas comment on fait je sais que avec les modems linksys il faut faire IP Forwarding mais là le routeur c'est un SpeedTouch 570.. Donc si quelqu'un à une idée pour m'aidé.. Merci !
  15. Salut ! il se peut aussi que ce soit un problème hardware j'ai eu ce pb sur un pc du boulot et je me suis apercu que la carte mere ne fonctionnait plus donc regarde si tout fonctionne correctement. J'entend par là ta carte graphique, disques durs ou autres.. sinon tente comme le dit waterploof de réinstaller ton os, si le pb persiste c'est surement du à un pb hardware. Bye.
×
×
  • Créer...