IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Web & réseau Delphi Discussion :

[Indy][Débutant] Comment écrire dans un fichier texte sur Internet?


Sujet :

Web & réseau Delphi

  1. #1
    En attente de confirmation mail Avatar de Matt2094
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    295
    Détails du profil
    Informations personnelles :
    Âge : 30
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 295
    Points : 237
    Points
    237
    Par défaut [Indy][Débutant] Comment écrire dans un fichier texte sur Internet?
    Bonjour à tous,

    Je cherche un moyen d'écrire sur un fichier texte présent sur un serveur Internet avec le composant Indy, en donnant l'adresse du fichier, mon pseudo, et mon mot de passe. Je sais que ça doit éxister, mais puisque je n'ai pas d'aide Indy dans Delphi6, je vous demande...

    Merci d'avance.

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    108
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 108
    Points : 89
    Points
    89
    Par défaut
    Salut,

    vla ce que j'utilise:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
     
    procedure TForm2.ConnectionFTP(Sender: TObject);
    //Procedure de connection du serveur FTP
    begin
      if idFTP1.Connected then IdFTP1.Disconnect;
      try
        IdFTP1.Host:=Form1.IpServeur;
        IdFTP1.Port:=21;
        IdFTP1.Username:=Form1.IdClient;
        IdFTP1.Password:=Form1.PwClient;
        IdFTP1.Connect;
      finally ;
      end;
      Application.ProcessMessages;
    end;
     
    Procedure TForm2.RapatrierFichier(NomFichier: string; Sender: TObject);
    var
      FileSize: integer;
    begin
      Memo1.Lines.Add('<<<<<<<<<<>>>>>>>>>>');
      Memo1.lines.Add('Tentative de telechargement du fichier: '+NomFichier);
      try
        IdFTP1.TransferType:=ftBinary;
        FileSize:=IdFTP1.Size(NomFichier);
        try
    //Pour poster un mail (non tester)
    //      IdFTP1.Put(fichierSource, fichierDest: string, Append: Boolean);
    //Pour demander (actifs...)
          IdFTP1.Get(NomFichier, ExpandFileName(Form1.RepertoireData+'\'+NomFichier), true, false);
        Except
          Memo1.lines.Add('Echec lors du transfert du fichier!');
        end;
      finally ;
      end;
    end;
     
    function TForm2.SynchronisationFichiers(Sender: TObject): boolean;
    var
      i: integer;
    begin
      Result:=false;
      try
        ConnectionFTP(Sender);
        //Recuperer le fichier du jour
        RapatrierFichier(FormatDateTime('dd_mm_yyyy',now)+'.mto', Sender);
      finally
        //Deconnection
        IdFTP1.Disconnect;
        //On est a la fin de la procedure de toute facons...
        Result:=true;
      end;
    end;
    Attention c'est du travail d'amateur... Y a surment du taff la dessus (Tout remarque et bienvenu)

  3. #3
    En attente de confirmation mail Avatar de Matt2094
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    295
    Détails du profil
    Informations personnelles :
    Âge : 30
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 295
    Points : 237
    Points
    237
    Par défaut
    Ca fouare dès la connection ... c'est peut-être que c'est pas le composant adapté pour le serveur que j'utilise (Multimania.fr, avec FrontPage') ...

  4. #4
    Membre expérimenté

    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    685
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 685
    Points : 1 608
    Points
    1 608
    Par défaut
    Si tu dois modifier un fichier, la façon la plus simple est de passer par FTP et donc d'utiliser un TIdFTP.

    Assures toi que les paramètres de connexion sont OK. Le champ "Host" doit contenir l'adresse du serveur FTP de ton hébergeur, et les champs "Username" et "Password" le nom d'utilisateur et le mot de passe requis pour accèder à ton compte.
    "It's more fun to compute !"

  5. #5
    En attente de confirmation mail Avatar de Matt2094
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    295
    Détails du profil
    Informations personnelles :
    Âge : 30
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 295
    Points : 237
    Points
    237
    Par défaut
    J'avais mis l'adresse du fichier que je voulais modifier à la place de l'adresse du serveur ... maintenant, ça marche à la connection. Je teste le reste ...

  6. #6
    En attente de confirmation mail Avatar de Matt2094
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    295
    Détails du profil
    Informations personnelles :
    Âge : 30
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 295
    Points : 237
    Points
    237
    Par défaut
    J'ai tout recopier, mais il y a une erreur : "ftBinary" est inconnu ... dans quelle unité elle est ?

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    108
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 108
    Points : 89
    Points
    89
    Par défaut
    v'la le uses qui va avec (je ne sait pas lequel repond a ton problème...):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient,
      IdExplicitTLSClientServerBase, IdFTP, IdFTPCommon;

  8. #8
    En attente de confirmation mail Avatar de Matt2094
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    295
    Détails du profil
    Informations personnelles :
    Âge : 30
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 295
    Points : 237
    Points
    237
    Par défaut
    Bon, c'était "IdFTPCommon" ...
    Je vais maintenant faire une tentative de modification de fichier sur mon site ...

  9. #9
    En attente de confirmation mail Avatar de Matt2094
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    295
    Détails du profil
    Informations personnelles :
    Âge : 30
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 295
    Points : 237
    Points
    237
    Par défaut
    Ca ne marche pas : le prog se bloque pendant le rapatriement du fichier ...
    Une question : la variable "NomFichier", c'est uniquement le nom et l'éxtension, pas l'adresse complète du fichier ? (j'ai penser à la 1ere solution)

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    108
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 108
    Points : 89
    Points
    89
    Par défaut
    NomFichier c'est juste Le nom+extention du fichier (donc sans le chemin d'acces).

    Tu doit pouvoir verifier sur ton serveur que tu y est bien connecter et que tu demande bien le fichier en question...

  11. #11
    En attente de confirmation mail Avatar de Matt2094
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    295
    Détails du profil
    Informations personnelles :
    Âge : 30
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 295
    Points : 237
    Points
    237
    Par défaut
    Ok, c'est bien ce que je pensais pour le nom du fichier ...
    Le fichier éxiste quand j'y accède par Internet Explorer ... ça serait pas parce que j'ai utiliser FrontPage pour le publier, et non le FTP ?

  12. #12
    Membre expérimenté

    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    685
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 685
    Points : 1 608
    Points
    1 608
    Par défaut
    Ca ne marche pas : le prog se bloque pendant le rapatriement du fichier ..
    Le programme, si tu n'utilises pas le threads, doit se bloquer le temps de l'envoi du fichier. C'est normal, Indy est un jeu de socket bloquants.

    Pour ta remarque, je ne sais pas comment fait Front Page, mais à mon avis il utilise FTP pour envoyer les fichiers. Pour avoir eu des sites sur Multimania, je peux te garantir que quand t'ajoutes des fichiers correctement avec un client FTP bien programmé, ca marche :-)
    "It's more fun to compute !"

  13. #13
    En attente de confirmation mail Avatar de Matt2094
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    295
    Détails du profil
    Informations personnelles :
    Âge : 30
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 295
    Points : 237
    Points
    237
    Par défaut
    Citation Envoyé par Reisubar
    Le programme, si tu n'utilises pas le threads, doit se bloquer le temps de l'envoi du fichier. C'est normal, Indy est un jeu de socket bloquants.
    Le fichier fait même pas 1 Ko ! ...

    Bon, on écarte l'hypothèse que ça soit FrontPage qui fasse tout foirré .

  14. #14
    Membre expérimenté

    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    685
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 685
    Points : 1 608
    Points
    1 608
    Par défaut
    Tu as firewall ? Il est ouvert ?
    Teste avec les deux valeurs pour la propriété PassiveMode...
    "It's more fun to compute !"

  15. #15
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    108
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 108
    Points : 89
    Points
    89
    Par défaut
    Pour savoir ce qui se passe dans ton client FTP, tu peut utiliser la procedure suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    procedure TForm2.IdFTP1Status(ASender: TObject; const AStatus: TIdStatus;
      const AStatusText: string);
    //Affiche le status pour debuggage
    begin
      Memo1.Lines.Add('<<<<<<<<<<>>>>>>>>>>');
      Memo1.lines.Add(AStatusText);
    end;
    (cherche la dans les évenements de l'inspecteur d'objet...)

  16. #16
    En attente de confirmation mail Avatar de Matt2094
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    295
    Détails du profil
    Informations personnelles :
    Âge : 30
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 295
    Points : 237
    Points
    237
    Par défaut
    Pour une raison inconnue, ça gèle maintenant dès la connection !

    Citation Envoyé par Reisubar
    Tu as firewall ? Il est ouvert ?
    Oui. Il m'a demander si je voulais bloquer l'appli. la 1ere fois que je l'ai lancé, je lui ai dit de la laisser tranquile ...

    Citation Envoyé par Reisubar
    Teste avec les deux valeurs pour la propriété PassiveMode...
    Ca n'a rien changé.

    Citation Envoyé par cfalcot
    Pour savoir ce qui se passe dans ton client FTP, tu peut utiliser la procedure suivante:

    Code :
    procedure TForm2.IdFTP1Status(ASender: TObject; const AStatus: TIdStatus; const AStatusText: string);//Affiche le status pour debuggagebegin Memo1.Lines.Add('<<<<<<<<<<>>>>>>>>>>'); Memo1.lines.Add(AStatusText);end;

    (cherche la dans les évenements de l'inspecteur d'objet...)
    Merci, je vais ajouter cette fonction.


    Mais je me demandais ; dans cette procédure, FileSize est défini, mais jamais utilisé.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
    Procedure TForm2.RapatrierFichier(NomFichier: string; Sender: TObject);
    var
      FileSize: integer;
    begin
      Memo1.Lines.Add('<<<<<<<<<<>>>>>>>>>>');
      Memo1.lines.Add('Tentative de telechargement du fichier: '+NomFichier);
      try
        IdFTP1.TransferType:=ftBinary;
        FileSize:=IdFTP1.Size(NomFichier);
        try
    //Pour poster un mail (non tester)
    //      IdFTP1.Put(fichierSource, fichierDest: string, Append: Boolean);
    //Pour demander (actifs...)
          IdFTP1.Get(NomFichier, ExpandFileName(Form1.RepertoireData+'\'+NomFichier), true, false);
        Except
          Memo1.lines.Add('Echec lors du transfert du fichier!');
        end;
      finally ;
      end;
    end;

  17. #17
    En attente de confirmation mail Avatar de Matt2094
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    295
    Détails du profil
    Informations personnelles :
    Âge : 30
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 295
    Points : 237
    Points
    237
    Par défaut
    Je ne sais pas pourquoi, mais sans avoir touché le code, l'appli. remarche à la connection ce matin ! ... mais il reste le problème du téléchargement de fichier ...

  18. #18
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    108
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 108
    Points : 89
    Points
    89
    Par défaut
    Sur le serveur il te dit bien que tu est connecter, que tu veux rapatrier un fichier?

    Itout sur le client?

  19. #19
    En attente de confirmation mail Avatar de Matt2094
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    295
    Détails du profil
    Informations personnelles :
    Âge : 30
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 295
    Points : 237
    Points
    237
    Par défaut
    Le dernier msg qu'il affiche est "Starting FTP transfer". Et oui, il dit que je suis bien connecté.

  20. #20
    Membre expérimenté

    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    685
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 685
    Points : 1 608
    Points
    1 608
    Par défaut
    Tu as quelle version exacte de Indy ?
    "It's more fun to compute !"

Discussions similaires

  1. Réponses: 6
    Dernier message: 27/10/2009, 18h05
  2. Comment écrire dans un fichier texte sans sauter les lignes
    Par gogéta91 dans le forum Scripts/Batch
    Réponses: 5
    Dernier message: 29/07/2008, 18h56
  3. Réponses: 1
    Dernier message: 12/06/2008, 09h30
  4. [Flash] [FAQ] Comment écrire dans un fichier texte depuis Flash ?
    Par Demco dans le forum Contribuez
    Réponses: 0
    Dernier message: 08/06/2006, 14h15
  5. [Delphi] Comment écrire dans un fichier texte ?
    Par Mickey.jet dans le forum Débuter
    Réponses: 2
    Dernier message: 01/04/2006, 14h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo