Partage
  • Partager sur Facebook
  • Partager sur Twitter

Ouvrir un fichier .txt oui mais sur internet !

Comment faire faire ?

    30 août 2007 à 13:02:00

    Bnojour amis zerOs !!!
    Je voudrais savoir si on peut ouvrir un fichier .txt mais qui ne se trouve pas sur l'ordinateur ou se trouve l'éxécutable ?

    En l'occurence je voudrais ouvir un fichier .txt heberger sur le net.

    Ets-ce possible ou si oui comment le réaliser en C ?

    PS: Pas forcer d'etre portable, sur windows sa me suffit ^^ ).

    Merci d'avance !
    • Partager sur Facebook
    • Partager sur Twitter
      30 août 2007 à 13:04:09

      Essaie de faire :

      fopen("http://www.ton_url.com/tonfichiertexte.txt","r");

      Il est possible que ça marche...
      • Partager sur Facebook
      • Partager sur Twitter

      Recueil de code C et C++  http://fvirtman.free.fr/recueil/index.html

        30 août 2007 à 13:05:14

        OK bah je vais test et je vous dit quoi ^^ .

        edit: negatif, ça ne marche pas !!! Y'a une autre solution ?
        • Partager sur Facebook
        • Partager sur Twitter
          30 août 2007 à 14:24:37

          Si tu preferes, j'ai fait un programme en C qui télécharge n'importe quel fichier depuis Internet (un html, une image, ou meme un fichier texte)

          En le modifiant un peu, tu recuperes ton fichier texte, et tu en fais ce que tu en veux.

          cf mon tuto (ma signature) §J.2.
          Par contre, ce n'est pas évident a comprendre si tu débutes.
          • Partager sur Facebook
          • Partager sur Twitter

          Recueil de code C et C++  http://fvirtman.free.fr/recueil/index.html

            30 août 2007 à 14:27:28

            Sous GNU/Linux avec KDE, tu peux te servir des kio-slaves. Mais sinon, je pense que tu vas devoir télécharger le fichier texte, le modifier comme tu veux, puis le renvoyer au serveur quand tu as fini.
            • Partager sur Facebook
            • Partager sur Twitter
            J'ai déménagé sur Zeste de savoir — Ex-manager des modérateurs.
              30 août 2007 à 14:32:55

              Citation : Fvirtman

              Essaie de faire :

              fopen("http://www.ton_url.com/tonfichiertexte.txt","r");

              Il est possible que ça marche...


              Dans tes rêves...
              • Partager sur Facebook
              • Partager sur Twitter
              Music only !
                30 août 2007 à 15:38:30

                Jte remercie Fvirtman, je vais voir ton tuto et je verai si jmen sort ou pas ^^ .

                Edit: Je ne trouve pas le tuto pour ton prog qui telecharge les fichiers.

                double edit: J'ai trouvé ^^ . Par contre le prog est en c++ et je n'ai pas encore apris le c++ !
                • Partager sur Facebook
                • Partager sur Twitter
                  30 août 2007 à 16:41:13

                  Citation : gaarnik

                  Jte remercie Fvirtman, je vais voir ton tuto et je verai si jmen sort ou pas ^^ .

                  Edit: Je ne trouve pas le tuto pour ton prog qui telecharge les fichiers.

                  double edit: J'ai trouvé ^^ . Par contre le prog est en c++ et je n'ai pas encore apris le c++ !



                  Non, c'est du C.
                  • Partager sur Facebook
                  • Partager sur Twitter
                    30 août 2007 à 16:48:50

                    ce tuto la (le J.2 , c'est du C pure :)

                    j'ai appelé mon tuto "tuto C++" car j'aime bien caser, de temps en temps, quelques concepts du C++, comme le passage par référence, et que j'utilise souvent cout au lieu de printf.
                    Mais a part ce genre de petites différences, mon tuto peut etre compris par des programmeurs C.

                    Je n'utilise pas beaucoup de classes dans mes tutos (programmes court, avec souvent qu'une fonction ou deux), sauf dans le chapitre C ou je parle de classes, et quelques petits exemples.
                    • Partager sur Facebook
                    • Partager sur Twitter

                    Recueil de code C et C++  http://fvirtman.free.fr/recueil/index.html

                      30 août 2007 à 17:42:32

                      OK, je vais donc reparcourir ton code !

                      edit:

                      J'ai telecharger ton code (fichier .cpp soit dit en passant ^^ ) et j'ai essayé de le compiler mais s'a me mets un message d'erreur que je n'ai jamais vu !!! En fait sa n'en mets pas vraiment mais le statue final est 1 et je n'ai pas l'éxécutable final. Enfin voici le code pour mieux comprendre:

                      1. Project   : Console application
                      2. Compiler  : GNU GCC Compiler (called directly)
                      3. Directory : J:\C et C++\recherche de fichier net\
                      4. --------------------------------------------------------------------------------
                      5. Switching to target: default
                      6. Compiling: J_02_http.cpp
                      7. Linking console executable: J:\C et C++\recherche de fichier net\console.exe
                      8. .objs\J_02_http.o:J_02_http.cpp:(.text+0x28): undefined reference to `gethostbyname@4'
                      9. .objs\J_02_http.o:J_02_http.cpp:(.text+0x86): undefined reference to `htons@4'
                      10. .objs\J_02_http.o:J_02_http.cpp:(.text+0xaf): undefined reference to `socket@12'
                      11. .objs\J_02_http.o:J_02_http.cpp:(.text+0xea): undefined reference to `connect@12'
                      12. .objs\J_02_http.o:J_02_http.cpp:(.text+0x176): undefined reference to `send@16'
                      13. .objs\J_02_http.o:J_02_http.cpp:(.text+0x1b7): undefined reference to `recv@16'
                      14. .objs\J_02_http.o:J_02_http.cpp:(.text+0x2fe): undefined reference to `WSAStartup@8'
                      15. .objs\J_02_http.o:J_02_http.cpp:(.text+0x35b): undefined reference to `shutdown@8'
                      16. .objs\J_02_http.o:J_02_http.cpp:(.text+0x369): undefined reference to `closesocket@4'
                      17. .objs\J_02_http.o:J_02_http.cpp:(.text+0x371): undefined reference to `WSACleanup@0'
                      18. collect2: ld returned 1 exit status
                      19. Process terminated with status 1 (0 minutes, 1 seconds)
                      20. 0 errors, 0 warnings
                      • Partager sur Facebook
                      • Partager sur Twitter
                        30 août 2007 à 18:02:50

                        Tu es sous Windows ? (sous Linux, y'aura quelques petites modifs a faire, tel qu'inclure socket.h) Quel IDE ?
                        Si tu es sous Visual 2005 Express, vérifie que tu as la SDK de Windows.

                        Amusant, tes erreurs sont comme si tu n'avais pas inclus
                        winsock2.h

                        tu as inclus winsock2.h ?

                        Regarde ton repertoire, peut etre que dans ton cas, il faut inclure socket.h ou winsock.h

                        Essaie.
                        • Partager sur Facebook
                        • Partager sur Twitter

                        Recueil de code C et C++  http://fvirtman.free.fr/recueil/index.html

                          30 août 2007 à 18:05:27

                          Pour ouvrir une page web a partir de l'executbale :

                          1. system("start url_du_site_ou_ e_ rouve_ ton_fichier");

                          et normalement sa ouvre ton truc :-°

                          par exemple si tu veux ouvrir le site du zéro :
                          1. system("start http://siteduzero.com");

                          et voila la page du site du zero est ouverte!
                          • Partager sur Facebook
                          • Partager sur Twitter
                            30 août 2007 à 18:09:51

                            Citation : Fvirtman

                            Amusant, tes erreurs sont comme si tu n'avais pas inclus
                            winsock2.h


                            Bah, non. Les erreurs indiquées sont des erreurs de linker. Il manque ws2_32.lib (ou libws2_32.a).
                            • Partager sur Facebook
                            • Partager sur Twitter
                            Music only !
                              30 août 2007 à 18:11:02

                              Ah oui, en effet, des erreurs de linker ! J'avais mal regardé.

                              Tu n'as en effet pas linké la lib qui va avec (cf post de -ed- )
                              • Partager sur Facebook
                              • Partager sur Twitter

                              Recueil de code C et C++  http://fvirtman.free.fr/recueil/index.html

                                30 août 2007 à 18:37:23

                                Utilise libcurl.
                                C'est simple à utiliser.
                                Je l'ai déja utilisé pour télécharger des images et des fichiers textes et sa fonctionne super bien.

                                Bien amicalement.

                                Gp2mv3
                                • Partager sur Facebook
                                • Partager sur Twitter
                                  30 août 2007 à 19:38:47

                                  Citation : jossde9

                                  1. system("start url_du_site_ou_ e_ rouve_ ton_fichier");


                                  et normalement sa ouvre ton truc :-°

                                  par exemple si tu veux ouvrir le site du zéro :

                                  1. system("start http://siteduzero.com");


                                  Me dit pas que tu penses à un truc du genre:
                                  1. char copie[1000];
                                  2. copie = system("start url_du_site_ou_ e_ rouve_ ton_fichier");


                                  Parce que là je suis sûr qu'en plus de pas marcher tu vas te faire tuer xDDD
                                  Car je suppose qu'il veut copier son contenu et pas juste l'ouvrir :)
                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                    30 août 2007 à 20:05:52

                                    Citation : Gambit2099

                                    Citation : jossde9

                                    1. system("start url_du_site_ou_ e_ rouve_ ton_fichier");


                                    et normalement sa ouvre ton truc :-°

                                    par exemple si tu veux ouvrir le site du zéro :

                                    1. system("start http://siteduzero.com");



                                    Me dit pas que tu penses à un truc du genre:

                                    1. char copie[1000];
                                    2. copie = system("start url_du_site_ou_ e_ rouve_ ton_fichier");



                                    Parce que là je suis sûr qu'en plus de pas marcher tu vas te faire tuer xDDD
                                    Car je suppose qu'il veut copier son contenu et pas juste l'ouvrir :)



                                    Vu que system renvoie un int, ça risque pas de marcher en effet.
                                    • Partager sur Facebook
                                    • Partager sur Twitter
                                      30 août 2007 à 20:17:12

                                      Bon, tout d'abord merci de vous y mettre un peu tous ^^ .
                                      Je suis sous windows et j'ai code blocks mais vous avez raison pour mes erreurs, j'ai pas linker les libs ^^ . Et comme le dit Gambit2099, je veux copier le contenu du fichier .txt ^^ .

                                      Par contre j'ai une petite question, les librairies que vous me ditent d'utiliser sont - elles standart ? Ou il faut les installées ?
                                      • Partager sur Facebook
                                      • Partager sur Twitter
                                        30 août 2007 à 20:20:22

                                        Citation : -ed-

                                        Citation : Fvirtman

                                        Essaie de faire :

                                        fopen("http://www.ton_url.com/tonfichiertexte.txt","r");

                                        Il est possible que ça marche...


                                        Dans tes rêves...


                                        Mort de rire ! :lol:

                                        Ca marche que en PHP ça =)

                                        En C faut faire se connecter etc.
                                        Sockets, POSIX ou Winsock(2), ... C'est moins marrant ^^"
                                        • Partager sur Facebook
                                        • Partager sur Twitter
                                          30 août 2007 à 21:34:28

                                          Citation : gaarnik

                                          Bon, tout d'abord merci de vous y mettre un peu tous ^^ .
                                          Je suis sous windows et j'ai code blocks mais vous avez raison pour mes erreurs, j'ai pas linker les libs ^^ . Et comme le dit Gambit2099, je veux copier le contenu du fichier .txt ^^ .

                                          Par contre j'ai une petite question, les librairies que vous me ditent d'utiliser sont - elles standart ? Ou il faut les installées ?


                                          Si tu parles de Winsock2, c'est pas standard, mais c'est livré avec ton environnement de développement (sauf Visual Express: charger le SDK).

                                          Si tu parles de libcurl, c'est pas standard, c'est portable et il faut l'installer (C'est un DevPak pour MinGW). Pour Visual Express, je ne sais pas, voir sur le site.

                                          Enfin, il faut savoir que Windows a des fonctions (déclarées dans <wininet.h>) qui permettent en une ligne de récupérer un fichier sur les web(http, ftp etc.). MSDN est ton amie (wininet).

                                          • Partager sur Facebook
                                          • Partager sur Twitter
                                          Music only !
                                            31 août 2007 à 3:47:51

                                            Jte remercie -ed- , j'vais potasser tout ça ^^ .

                                            edit: le prob c'est que le site de MSDN est en anglais ^^ . J'arrive pas trop a trouver dans tout ce bazrd du fait que y'a pas mal de fonctions mais jpense avoir trouvé: ftpopenfile . Mais je suis pas sur ^^ .
                                            • Partager sur Facebook
                                            • Partager sur Twitter
                                              31 août 2007 à 8:45:09

                                              Citation : gaarnik

                                              Jte remercie -ed- , j'vais potasser tout ça ^^ .

                                              edit: le prob c'est que le site de MSDN est en anglais<...>


                                              Pas de programmation possible si tu ne maitrises pas la lecture de l'anglais.

                                              Apprendre à naviguer dans MSDN est indispensable pour faire de la programmation Windows.
                                              • Partager sur Facebook
                                              • Partager sur Twitter
                                              Music only !
                                                31 août 2007 à 17:54:16

                                                1. #include <stdio.h>
                                                2. #include <urlmon.h>
                                                3. // Url du fichier distant a recuperer
                                                4. #define URL "http://www.site.fr/fichier.txt"
                                                5. // Nom du fichier local qui sera cree
                                                6. #define LOC "c:\\toto.txt"
                                                7. int main(void)
                                                8. {
                                                9.   printf("\nTelechargement de: %s ...", URL);
                                                10.   if(URLDownloadToFile(0, URL, LOC, 0, 0))
                                                11.   {
                                                12.     printf("\nEchec URLDownloadToFile() !\n");
                                                13.     return 1;
                                                14.   }
                                                15.   printf("\nLe fichier a ete copie ici: %s\n", LOC);
                                                16.   return 0;
                                                17. }
                                                • Partager sur Facebook
                                                • Partager sur Twitter
                                                  31 août 2007 à 17:57:18

                                                  Jte remercie beaucoup magma et les autres aussi d'ailleurs ^^ .
                                                  • Partager sur Facebook
                                                  • Partager sur Twitter
                                                    31 août 2007 à 18:07:31

                                                    @ magma >> Faut aussi dire que j'ai pris 2 heures pour trouver la librarie urlmon.h & le .a :-°
                                                    • Partager sur Facebook
                                                    • Partager sur Twitter
                                                      31 août 2007 à 18:17:15

                                                      PianoPâriss , tu peux me dire ou tu l'as eu la librairie stp ?
                                                      • Partager sur Facebook
                                                      • Partager sur Twitter
                                                        31 août 2007 à 19:08:22

                                                        Citation : PianoPariss

                                                        Faut aussi dire que j'ai pris 2 heures pour trouver la librarie urlmon.h & le .a



                                                        Tu peux t'en passer...

                                                        1. #include <windows.h>
                                                        2. #include <stdio.h>
                                                        3. // Url du fichier distant a recuperer
                                                        4. #define URL "http://www.site.fr/fichier.txt"
                                                        5. // Nom du fichier local qui sera cree
                                                        6. #define LOC "c:\\toto.txt"
                                                        7. // Type pointeur sur fonction 'URLDownloadToFile()'
                                                        8. typedef HRESULT (WINAPI *DF)(LPVOID,LPCSTR,LPCSTR,DWORD,LPVOID);
                                                        9. int main(void)
                                                        10. {
                                                        11.   DF df;
                                                        12.   HMODULE hUrl;
                                                        13.   if(!(hUrl = LoadLibrary("urlmon.dll")))
                                                        14.   {
                                                        15.     printf("\nEchec LoadLibrary() !\n");
                                                        16.     return 1;
                                                        17.   }
                                                        18.   if(!(df = (DF)GetProcAddress(hUrl, "URLDownloadToFileA")))
                                                        19.   {
                                                        20.     printf("\nEchec GetProcAddress() !\n");  
                                                        21.     FreeLibrary(hUrl);
                                                        22.     return 2;
                                                        23.   }
                                                        24.   printf("\nTelechargement de %s ...", URL);
                                                        25.   if(df(0, URL, LOC, 0, 0))
                                                        26.   {
                                                        27.     printf("\nEchec URLDownloadToFile() !\n");  
                                                        28.     FreeLibrary(hUrl);
                                                        29.     return 3;
                                                        30.   }
                                                        31.   printf("\nLe fichier a ete copie ici: %s\n", LOC);      
                                                        32.   FreeLibrary(hUrl);  
                                                        33.   return 0;
                                                        34. }


                                                        • Partager sur Facebook
                                                        • Partager sur Twitter
                                                          31 août 2007 à 19:28:03

                                                          Citation : magma

                                                          Citation : PianoPariss

                                                          Faut aussi dire que j'ai pris 2 heures pour trouver la librarie urlmon.h & le .a


                                                          Tu peux t'en passer...



                                                          Je sais bien... mais c'est quand même vachement plus pratique ! ;)

                                                          @ gaarnik >> sur Google ^^ , voila un zip: http://dl.free.fr/ab9MnbnCC/Urlmon.zip
                                                          • Partager sur Facebook
                                                          • Partager sur Twitter
                                                            31 août 2007 à 19:36:58

                                                            Merci PianoPâriss pour le zip ^^ .
                                                            • Partager sur Facebook
                                                            • Partager sur Twitter

                                                            Ouvrir un fichier .txt oui mais sur internet !

                                                            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                                                            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                                                            • Editeur
                                                            • Markdown