Contenu | Rechercher | Menus

Annonce

DVD, clés USB et t-shirts Ubuntu-fr disponibles sur la boutique En Vente Libre

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#76 Le 17/12/2010, à 20:23

xapantu

Re : /* Topic des codeurs couche-tard [3] */

smile

Hors ligne

#77 Le 17/12/2010, à 21:02

grim7reaper

Re : /* Topic des codeurs couche-tard [3] */

http://www.haskell.org/
WTF !

Ça n'arrange pas mes affaires ça hmm

Édit : Bon j'ai réussi à choper les IP des serveurs, mais ils semblent en mode It Works !

Dernière modification par grim7reaper (Le 17/12/2010, à 21:11)

Hors ligne

#78 Le 17/12/2010, à 21:16

Elzen

Re : /* Topic des codeurs couche-tard [3] */

grim7reaper a écrit :

Oui, fscanf (comme fgets) s'arrête lorsqu'il rencontre une fin de ligne.
Il faut utiliser une boucle pour lire ligne à ligne.
D'ailleurs, je te conseille fgets ici (pas de formatage particulier, tu veux juste lire tout le fichier).

Ouais, je comprends même pas comment ce fscanf est arrivé dans mon code yikes
Pour la boucle, je suppose que j'suis censé passer pour chaque fgets quelque chose comme result+strl(result), et ce jusqu'à ce que strlen(result) valle (ou vale ? Le dico d'Iceweasel n'en connaît aucun des deux hmm) le  ftell(yyout) que j'ai récupéré juste au dessus ?

grim7reaper a écrit :

Pour l'histoire du double, je regarde mais je ne te promets rien.
C'est quoi le code qui affiche les variables en GUI (vu que l'affichage en console fonctionne, je suppose que la lecture est correcte et que c'est le rendu graphique qui merdoie) ?

Nop, c'est ça qui est bizarre (et c'est pour ça que je ne vous ai passé que ces extraits de code-là) : quand je fais un printf de result juste avant l'affichage dans la popup, ça m'affiche 2,0000 aussi.

Mais bon, au cas où :

…
    dialog = gtk_message_dialog_new(win,
        GTK_DIALOG_DESTROY_WITH_PARENT,
        GTK_MESSAGE_OTHER, GTK_BUTTONS_OK,
        "%s", result
    );
    g_signal_connect(dialog, "response", G_CALLBACK(close_dialog), NULL);
    gtk_window_set_title((GtkWindow*) dialog, "Résultat");
    gtk_window_set_icon((GtkWindow*) dialog, gtk_icon_theme_load_icon(
        gtk_icon_theme_get_default(), "gcalctool",
        48, GTK_ICON_LOOKUP_USE_BUILTIN, NULL
    ));
    gtk_dialog_run((GtkDialog*) dialog);
    
    g_free(text);
    free(result);
}

(avec close_dialog qui fait juste un destroy)

@tshirtman : tu sors. Vite et loin.

Hors ligne

#79 Le 17/12/2010, à 21:24

Kanor

Re : /* Topic des codeurs couche-tard [3] */

Au sujet du projet je me pose la question suivante on fait comment pour utiliser des fichiers se nommant 0 ! ? ..
je pense qu'on devrait mettre les function au début (comme proposé par pylade si je me trompe pas)

Hors ligne

#80 Le 17/12/2010, à 21:24

grim7reaper

Re : /* Topic des codeurs couche-tard [3] */

ArkSeth a écrit :
grim7reaper a écrit :

Oui, fscanf (comme fgets) s'arrête lorsqu'il rencontre une fin de ligne.
Il faut utiliser une boucle pour lire ligne à ligne.
D'ailleurs, je te conseille fgets ici (pas de formatage particulier, tu veux juste lire tout le fichier).

Ouais, je comprends même pas comment ce fscanf est arrivé dans mon code yikes
Pour la boucle, je suppose que j'suis censé passer pour chaque fgets quelque chose comme result+strl(result), et ce jusqu'à ce que strlen(result) valle (ou vale ? Le dico d'Iceweasel n'en connaît aucun des deux hmm) le  ftell(yyout) que j'ai récupéré juste au dessus ?

Si j'ai bien compris ce que tu as dis : oui, c'est quelque chose dans ce genre.
Sinon, je crois que c'est vale, mais à vérifier…

J'ai peut-être une idée pour le bug : tu utilises les locales ?
Dans ton fichier, c'est quoi le séparateur décimal ?

Édit : C'est bien ce que je pensais smile.
Après tests, il semblerait que faire appel à gtk_init() oblige à tenir compte de la locale (il fait sûrement les appels de fonction qui vont bien).
Comme je suppose que tu bosses sur un système localisé FR (donc virgule en séparateur) et que ton séparateur décimal dans tes fichiers est le point tu as une « incompatibilité » et donc une troncature (strtod est une fonction qui tient compte de la locale pour définir les séparateurs).
Une des solutions possible c'est de faire un chercher-remplacer du point par une virgule dans ta chaîne avant l'appel à strtod.

Dernière modification par grim7reaper (Le 17/12/2010, à 21:57)

Hors ligne

#81 Le 17/12/2010, à 21:55

Elzen

Re : /* Topic des codeurs couche-tard [3] */

Kanor a écrit :

Au sujet du projet je me pose la question suivante on fait comment pour utiliser des fichiers se nommant 0 ! ? ..

On en a déjà parlé tongue
J'ai supprimé (sur une remarque de ce genre de grim7reaper) la fonctionnalité « fichier1 fichier2 » sans rien derrière, donc maintenant, toute ambiguïté est levée : le premier mot est systématiquement un nom de fichier, et le second en est un si et seulement si il y a trois mots sur la commande.

Kanor a écrit :

je pense qu'on devrait mettre les function au début (comme proposé par pylade si je me trompe pas)

Je n'avais pas répondu parce que j'attendais les avis des autres, mais personne d'autre n'a réagit… en ce qui me concerne, je ne vois pas l'intérêt, mais si vous tenez à développer ça en plus, je n'y vois pas d'inconvénient.
Simplement, sémantiquement parlant, il s'agit uniquement de faire du traitement sur des fichiers. Donc il me semble beaucoup plus logique d'utiliser les noms de fichiers comme « commandes », et de préciser ensuite en paramètre le traitement à effectuer (d'ailleurs, « fichier » tout seul n'est après tout qu'une simplification de « fichier 0 » pour faciliter l'écriture).

grim7reaper a écrit :

J'ai peut-être une idée pour le bug : tu utilises les locales ?
Dans ton fichier, c'est quoi le séparateur décimal ?

J'utilise pas de fichiers, pour l'instant, ce sont les lignes générées depuis les boutons de la gui. Et utiliser les locales, c'est-à-dire ?

(Sinon, je crois me souvenir qu'on avait eu exactement le même bug au premier TP sur Yacc, qu'on avait résolu en mettant simplement un

int main() {
    yyparse();
}

au bas du fichier plutôt que de laisser yacc l'autogénérer)

Edit en réponse à l'édit : hmm, oui… 'faut voir…

Dernière modification par ArkSeth (Le 17/12/2010, à 21:56)

Hors ligne

#82 Le 17/12/2010, à 22:04

helly

Re : /* Topic des codeurs couche-tard [3] */

BN à 1 point.


Archlinux-wmii-dwb.
Un problème résolu ? Faites le savoir en mettant [résolu] à côté du titre de votre topic.
Un problème non résolu ? Faites le savoir en insultant ceux qui cherchent à vous aider.
Un site bleu super remasterised©, un wiki cherchant des volontaires pour traduire un site.

Hors ligne

#83 Le 17/12/2010, à 22:08

tshirtman

Re : /* Topic des codeurs couche-tard [3] */

grim7reaper a écrit :

http://www.haskell.org/
WTF !

Ça n'arrange pas mes affaires ça hmm

Édit : Bon j'ai réussi à choper les IP des serveurs, mais ils semblent en mode It Works !

ça à l'air de marcher là.

Hors ligne

#84 Le 17/12/2010, à 22:10

grim7reaper

Re : /* Topic des codeurs couche-tard [3] */

J'ai rien moi hmm (peut-être un problème de DNS…)

Dernière modification par grim7reaper (Le 17/12/2010, à 22:12)

Hors ligne

#85 Le 17/12/2010, à 22:40

Elzen

Re : /* Topic des codeurs couche-tard [3] */

grim7reaper a écrit :

Une des solutions possible c'est de faire un chercher-remplacer du point par une virgule dans ta chaîne avant l'appel à strtod.

Ouais, mais y a un soucis : c'est la même fonction flex pour la version en ligne de commande (sans locale) et pour la version graphique (avec). Et puis si jamais un jour je change de locale, 'faudrait que je change le code, c'est moche yikes Y a pas plutôt moyen de fixer quel caractère est à utiliser comme locale ? Genre un #define…

Hors ligne

#86 Le 17/12/2010, à 22:49

grim7reaper

Re : /* Topic des codeurs couche-tard [3] */

J'ai peut-être une idée, je teste et si c'est OK je poste pour que tu testes dans ton programme smile

Hors ligne

#87 Le 17/12/2010, à 22:53

Kanor

Re : /* Topic des codeurs couche-tard [3] */

tyrus@tyrus-carthage:~$ host haskell.org
haskell.org has address 78.46.100.180

si ça peut d'aider

ArkSeth ouai mais on va avoir des probléme avec les fichiers avec des espaces

Hors ligne

#88 Le 17/12/2010, à 23:02

grim7reaper

Re : /* Topic des codeurs couche-tard [3] */

@ArkSeth : c'est bon, mon idée semble fonctionner.
Il suffit d'utiliser la locale C (pas besoin de modifier LC_ALL, LC_NUMERIC devrait suffire), ensuite tu appelles strtod et enfin tu remets la locale qu'il y avait avant.
Un truc du style

[…]
setlocale(LC_NUMERIC, "C");
num = strtod(chaine, NULL);
setlocale(LC_NUMERIC, "");
[…]

@Kanor : merci, j'avais aussi réussi à trouver cette IP après quelques recherches sur le web (voir mon post d'en haut), mais je tombe sur une page avec juste un It works!.

Sinon pour les fichiers, ça sera comme pour un shell : il faudra les mettre entre quote je pense.

Dernière modification par grim7reaper (Le 17/12/2010, à 23:12)

Hors ligne

#90 Le 17/12/2010, à 23:08

grim7reaper

Re : /* Topic des codeurs couche-tard [3] */

Nan mais le problème vient de chez moi c'est sûr. Depuis quelques jours, parfois je ne peux pas accèder au forum en kubuntu-fr, juste celui en ubuntu-fr sans aucune raison apparente…
Par contre, je ne vois pas d'où ça peut venir hmm

Édit : Ha ben là c'est reviendu (kubuntu et Haskell)…

Dernière modification par grim7reaper (Le 17/12/2010, à 23:11)

Hors ligne

#91 Le 17/12/2010, à 23:16

Elzen

Re : /* Topic des codeurs couche-tard [3] */

Kanor a écrit :

ArkSeth ouai mais on va avoir des probléme avec les fichiers avec des espaces

Sinon pour les fichiers, ça sera comme pour un shell : il faudra les mettre entre quote je pense.

Ç'mon avis aussi.
Entre quotes et/ou avec antislashs, au choix du développeur.

grim7reaper a écrit :

@ArkSeth : c'est bon, mon idée semble fonctionner.

Chuper, merci ^^

Je teste ça et j'vous tiens au courant.

Hors ligne

#92 Le 17/12/2010, à 23:22

compte supprimé

Re : /* Topic des codeurs couche-tard [3] */

Bn;

#93 Le 17/12/2010, à 23:34

tshirtman

Re : /* Topic des codeurs couche-tard [3] */

ArkSeth a écrit :

@tshirtman : tu sors. Vite et loin.

lol je viens seulement de voir lol

Hors ligne

#94 Le 18/12/2010, à 00:56

The Uploader

Re : /* Topic des codeurs couche-tard [3] */

Ça fait plein de trucs sans te le dire… au un utilisant les bons outils, on sait exactement ce qui est fait et quand c'est fait.

T'inquiète pas va, je sais ce qu'il fait :
-quand il compile : appelle à g++ (projet cpp en ce moment) avec les paramètres que je lui ai donné...
-quand je debug : appelle à gdb

-trucs qu'il fait sans me dire : scanner le code pour enrichir la complétion... et c'est tout. smile

Ben, quand tu distribues ton code, comment les gens font pour le compiler ? Ils installent ton IDE et utilisent le fichier de projet spécialement pour ? Tu ne va pas te faire que des amis…

Nan, j'ai un joli makefile... smile

PS : on a vu gcc, makefile à la main, gdb, et le codage "à l'ancienne" en cours d'unix, hein... Mais au bout d'un moment 4 terminaux ouverts à la fois c'est plus gérable, c'est tout. tongue
PPS : Code::Blocks un bon IDE, laisse moi rire... Même VS fait mieux, et pourtant pour compiler un truc écrit avec ça, faut le fichier du projet, et clicker partout... mad

Dernière modification par The Uploader (Le 18/12/2010, à 01:00)


- Oldies PC : Intel Pentium 3 @ 800 Mhz sur CM ASUS P2B-F, GeForce 4 Ti4800 SE, Disque Dur Hitachi 160 Go, 512 Mo de RAM, 3DFX Voodoo 2, Sound Blaster 16 ISA PnP, Windows 98 SE / XP)
- Desktop : Intel Core i7 6700K @ 4 GHz sur CM ASUS Z170-P, GeForce GTX 1070, SSD Samsung 850 EVO 1 To, 16 Go de RAM, Disque Dur Seagate Barracuda 3 To, Windows 10

Hors ligne

#95 Le 18/12/2010, à 01:01

grim7reaper

Re : /* Topic des codeurs couche-tard [3] */

Oui Code::Blocks est connu pour sa mauvaise interopérabilité.
Par contre, au niveau clicodrome je crois que VS se défend bien aussi (avec sa tétrachié de menu).
Bon, mon avis n'est pas super pertinent non plus vu que je n'ai eu qu'un seul contact avec lui et que ça ne c'est pas vraiment bien passé…
Mais c'est la première impression qu'il m'a faite.

Dernière modification par grim7reaper (Le 18/12/2010, à 01:03)

Hors ligne

#96 Le 18/12/2010, à 01:47

gnuuat

Re : /* Topic des codeurs couche-tard [3] */

#!/usr/bin/env python
from past import future

print past.future.present()

Plop.

Dernière modification par gnuuat (Le 18/12/2010, à 02:06)


Bisouland : embrassez les tous !
Volez les points d'amour de vos adversaires en les embrassant, dans ce jeu gratuit par navigateur !

Hors ligne

#97 Le 18/12/2010, à 02:43

nesthib

Re : /* Topic des codeurs couche-tard [3] */

<?php
if (LANGUAGE == "PHP") {
    print("La syntaxe de ".LANGUAGE." saynul")
}
?>

GUL Bordeaux : GirollServices libres : TdCT.org
Hide in your shell, scripts & astuces :  applications dans un tunnelsmart wgettrouver des pdfinstall. auto de paquetssauvegarde auto♥ awk
  ⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn

Hors ligne

#98 Le 18/12/2010, à 02:44

grim7reaper

Re : /* Topic des codeurs couche-tard [3] */

Bon, j'ai un peu avancé.
Premier jet complet (et fonctionnel, du moins plus que mes précédents essais ^_^) de la fonction qui essaye de traduire l'entrée de l'utilisateur en commande abstraite.

decodeCmd :: [String] -> Maybe Command
decodeCmd (file1:file2:op:_)
    | op == "+" = Just (Cp "" file1 file1)
    | op == "-" = Just (Mv "" file1 file1)
    | op == "<" = Just (Ln "--symbolic" file1 file2)
    | op == "*" = Just (Ln "--physical" file1 file2)

decodeCmd ("!verbose":_)     = Just Verbose
decodeCmd ("!quit":_)        = Just Quit
decodeCmd ("!help":_)        = Just Help
decodeCmd ("./":_)           = Just (Ls "./")
decodeCmd (".":_)            = Just (Ls ".")
decodeCmd (file:[])          = Just (Cd file) -- It's not a bug, it's a feature ;-)
decodeCmd (file:"?":_)       = Just (Stat file)
decodeCmd (file:"-":_)       = Just (Rm "" file)
decodeCmd (file:"!":_)       = if last file == '/'
                                  then Just (Mkdir file)
                                  else Just (Touch file)
decodeCmd (file:arg:_)
    | null (reads arg :: [(Int, String)]) = if head arg == '#'
                                               then Just (Chmod arg file)
                                               else Nothing
    | otherwise                           = if n >= 0
                                               then Just (OpenWith "vim" "" file)
                                               else Nothing
                                            where n = read arg :: Int
decodeCmd _ = Nothing

Bon, en attendant de gérer le fichier de conf' avec les types mime j'ai mis Vim par défaut (histoire de pouvoir faire quelque tests quand même).

Dernière modification par grim7reaper (Le 18/12/2010, à 02:58)

Hors ligne

#99 Le 18/12/2010, à 02:56

Rolinh

Re : /* Topic des codeurs couche-tard [3] */

Bn

Hors ligne

#100 Le 18/12/2010, à 03:02

Rolinh

Re : /* Topic des codeurs couche-tard [3] */

The Uploader a écrit :

on a vu gcc, makefile à la main, gdb, et le codage "à l'ancienne" en cours d'unix, hein... Mais au bout d'un moment 4 terminaux ouverts à la fois c'est plus gérable, c'est tout. tongue

Ben on te dit qu'avec les bons outils: oui wink
Un joli environnement tiling qui se pilote tout à la main, il n'y a rien de tel smile

Hors ligne