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 :

[D7 Perso] Récupérer contenu fichier dat sur serveur


Sujet :

Web & réseau Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert
    Avatar de Droïde Système7
    Homme Profil pro
    Inscrit en
    Septembre 2003
    Messages
    2 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 2 288
    Par défaut [D7 Perso] Récupérer contenu fichier dat sur serveur
    Bonjour,

    Je suis sur un code qui doit aller chercher le contenu texte sur un fichier dat contenu sur serveur en https afin de traiter des infos pour gestion de mise à jour éventuelle de programmes.

    Cela fait déjà pas mal de temps que j'utilise des méthodes (SANS compo spécial) comme par exemple :

    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
    function GetPageContent(URL: string): string;
    var
      MyFile: file;
      Buf: array[0..14] of Char;
      Filename: string;
      MyResult: integer;
    begin
      Result := '';
      Filename := ExtractFilePath(ParamStr(0)) + 'temp.txt';
      UrlDownloadToFile(nil, PChar(URL), PChar(Filename), 0, nil);
      AssignFile(MyFile, Filename);
      {$i-}
      if Fileexists(Filename) then
        Reset(MyFile)
      else
        ReWrite(MyFile);
      {$I+}
      if IOResult = 0 then
        BlockRead(MyFile, Buf, SizeOf(Buf), MyResult);
      CloseFile(MyFile);
      DeleteFile(Filename);
      Result := Buf;
    end;
    Tout allait bien, mais dernièrement j'avais changé ma suite de sécurité KIS pour prendre Internet Security de Norton.

    Là, je ne vous dit pas le pugilat !!!

    Son moteur heuristique saute sur mes exe et les efface presque directo, et dernièrement sans rien me demander

    Si bien que même si je clique sur l'exe non compilé dans mon environnement de développement, hé bien ça ne répond même plus.

    Bref, je me dis que mon cas est personnel, oui mais si des utilisateurs possèdent également cette suite de sécurité, ils risquent de fortement serrer les fesses et ensuite ne plus revenir

    Ce message pour vous demander ce qu'à ma place vous feriez.

    Puisque mon Delphi 7 est un version perso, je n'ai aucun compo Web.

    Sauf peut-être en biblio JVCL qui est installée. Mais je ne sais même pas à quoi correspond tout ce tas de compos.

    En ce forum j'avais trouvé un petit code sympa me disant que finalement j'allais m'en tirer :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    function GetUrlContent(const AURL: string): string;
    var // <a href="https://stackoverflow.com/questions/301546/whats-the-simplest-way-to-call-http-get-url-using-delphi" target="_blank">https://stackoverflow.com/questions/...l-using-delphi</a>
      HttpClient: THttpClient;
      HttpResponse: IHttpResponse;
    begin
      HttpClient := THttpClient.Create;
      try
        HttpResponse := HttpClient.Get(AURL);
        Result       := HttpResponse.ContentAsString();
        // ShowMessage(Result + ' GetUrlContent');  sleep(10000)
      finally
        HttpClient.Free;
      end;
    end;
    Mais non... doit logiquement me manquer un composant puisque version perso...

    Merci d'avance de tout éclairage

    DS7

  2. #2
    Membre Expert
    Avatar de pprem
    Homme Profil pro
    MVP Embarcadero - formateur&développeur Delphi, PHP et JS
    Inscrit en
    Juin 2013
    Messages
    1 876
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : MVP Embarcadero - formateur&développeur Delphi, PHP et JS
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 876
    Par défaut
    Bonsoir

    Le THTTPClient est relativement récent dans la RTL, ça doit dater d'une version XE.

    Etant sur une version perso, si ça reste une utilisation personnelle, tu peux aussi basculer sur les versions Community Edition qui est maintenant une 10.4.2 Sydney. Sa licence (usage personnel ou commercial limité) propose globalement les mêmes fonctionnalités que la professional et intègre ce qu'il faut pour les accès web.

    Sinon tu peux regarder du côté des composants Indy qui te fourniront de quoi accéder à des ressources en ligne.

    Concernant l'antivirus, à part ajouter des exceptions et leur signaler les faux positifs en leur transmettant tes programmes, tu ne peux pas faire grand chose. Les faux positifs arrivent relativement souvent dès qu'on fait des choses liées aux fichiers ou au réseau.

    Si tu passes à une version récente tu pourras utiliser cette unité pour faire le rapatriement de ton fichier en local depuis une URL :
    https://github.com/DeveloppeurPascal...u_download.pas

    Par contre attention : le passage de Delphi 7 à une récente implique de faire la migration des chaînes de caractères (ou au moins s'assurer qu'on n'a pas bidouiller des tableaux de caractères) pour cause d'Unicode partout et virer le BDE si on s'en sert (même s'il est toujours téléchargeable depuis my.embarcadero.com)

  3. #3
    Membre Expert
    Avatar de Droïde Système7
    Homme Profil pro
    Inscrit en
    Septembre 2003
    Messages
    2 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 2 288
    Par défaut
    pprem

    Hé oui je ne migre pas (pour l'instant) pour justement éviter les prises de tête aux diverses modifs/adaptations

    Tout ça est si facile en PHP !

    Merci de ta réponse très détaillée.

    Je vais dans un premier temps creuser vers Indy.

    Oui l'autre fois j'allais becter mon mulot et de rage m'apprêtais à lancer un message fumant à Norton.

    Mais à croire que c'est par période, car le mois dernier presque toutes les maquettes que je reprenais, conduisaient Norton à voir rouge, même très rouge !

    M'en fout s'il me déglingue un à un mes exe, car je peux recompiler, mais les utilisateurs...

    Si seulement son moteur heuristique était plus performant... Facile de passer la sulfateuse sur tout ce qui bouge...

    DS7

  4. #4
    Membre Expert
    Avatar de Droïde Système7
    Homme Profil pro
    Inscrit en
    Septembre 2003
    Messages
    2 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 2 288
    Par défaut
    Re,

    Les faux positifs arrivent relativement souvent dès qu'on fait des choses liées aux fichiers ou au réseau.
    Je le pensais aussi, mais ça devient pas rigolo du tout

    Car là, en recherchant un bout de code sur un ancien programme comportant simplement une sorte de gestion d'affectation entre Edits et absolument rien lié de près ou de loin au réseau.

    Si des développeurs passent et utilisent aussi Norton, merci de vos feedbacks.

    DS7

    Edit : Là c'est la pompon ; j'avais l'erreur d'élévation et je connais pour une appli, mais jamais encore pour une bidouille au moment de compiler j'ai même droit en prime au cadenas sur l'exe : jamais vu ça

    Je confirme que je n'ai aucun manifest dans les parages.
    Images attachées Images attachées   

  5. #5
    Membre Expert
    Avatar de pprem
    Homme Profil pro
    MVP Embarcadero - formateur&développeur Delphi, PHP et JS
    Inscrit en
    Juin 2013
    Messages
    1 876
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : MVP Embarcadero - formateur&développeur Delphi, PHP et JS
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 876
    Par défaut
    Dans certains cas, les faux positifs à la compilation plantent l'IDE lorsque ça se produit au lancement du DEBUG.

    Les compilations sans infos de débogage ont tendance à mieux passer, mais bien sûr ça dépend de ce que contiennent les programmes et de l'humeur des antivirus.

    En tout cas fais un tour sur https://support.norton.com/sp/en/us/...100222230832EN pour leur signaler qu'ils merdouillent.

    Il y a des outils en ligne qui testent les exécutables avec un certain nombre d'antivirus. C'est pas forcément fiable à 100% mais ça donne idée de ce qui peut arriver avec nos projets avant de les diffuser :
    https://virusscan.jotti.org/fr-FR/scan-file

  6. #6
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 089
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 14 089
    Par défaut
    Une autre fonction de téléchargement (conçu en XE2 donc attention au retour en ANSI des fonctions de WinInet.pas )

    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
    procedure GetInternetFile(const AServerName: string; const AURL: string; AStream: TStream);
    const
      BufferSize = 1024;
      accept: packed array[0..1] of LPWSTR = (PChar('text/*'), nil); // PCTSTR rgpszAcceptTypes[] = {_T(“text/*”), NULL};
    var
      hSession, hHTTP, hReq : HINTERNET;
      Buffer: array[1..BufferSize] of Byte;
      BufferLen: DWORD;
      sAppName: string;
    begin
      AStream.Size := 0;
      sAppName := ExtractFileName(Application.ExeName);
     
      hSession := InternetOpen(PChar(sAppName), INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0);
      try
        hHTTP := InternetConnect(hSession, PChar(AServerName), INTERNET_DEFAULT_HTTP_PORT, nil, nil, INTERNET_SERVICE_HTTP, 0, 1);
        try
          hReq := HttpOpenRequest(hHTTP, PChar('GET'), PChar(AURL), nil, nil, @accept, 0, 1);
          try
            if HttpSendRequest(hReq, nil, 0, nil, 0) then
            begin
              BufferLen := 0;
              repeat
                if InternetReadFile(hReq, @Buffer, BufferSize, BufferLen) then
                  AStream.WriteBuffer(Buffer, BufferLen);
     
              until BufferLen = 0;
            end
            else
              raise Exception.Create('HttpOpenRequest failed. ' + SysErrorMessage(GetLastError));
          finally
            InternetCloseHandle(hReq);
          end;
        finally
          InternetCloseHandle(hHTTP);
        end;
      finally
        InternetCloseHandle(hSession);
      end;
    end;


    Si j'ai connu aussi ce problème en D7, même XE2 avec un composant AutoUpgrade que j'ai réécrit via le lancement d'un fichier BAT qui effectue la mise à jour en réseau local d'entreprise (et non pas en mode FTP ou HTTP)
    Cela ajouté à UPX, Kasperchier mettait les programmes en quarantaine.


    Sinon D7 à D10.4.2 c'est comme passé de PHP3 à PHP8, les deux ne doivent pas être aisés.
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  7. #7
    Membre Expert
    Avatar de Droïde Système7
    Homme Profil pro
    Inscrit en
    Septembre 2003
    Messages
    2 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 2 288
    Par défaut
    Citation Envoyé par pprem Voir le message
    Dans certains cas, les faux positifs à la compilation plantent l'IDE lorsque ça se produit au lancement du DEBUG.

    Les compilations sans infos de débogage ont tendance à mieux passer, mais bien sûr ça dépend de ce que contiennent les programmes et de l'humeur des antivirus.

    En tout cas fais un tour sur https://support.norton.com/sp/en/us/...100222230832EN pour leur signaler qu'ils merdouillent.

    Il y a des outils en ligne qui testent les exécutables avec un certain nombre d'antivirus. C'est pas forcément fiable à 100% mais ça donne idée de ce qui peut arriver avec nos projets avant de les diffuser :
    https://virusscan.jotti.org/fr-FR/scan-file
    Hello Pprem

    Merci également à toi de tous ces conseils et info. Crois-bien que je vais lire et relire tout ça et ensuite petit à petit me rendre à l'évidence de migrer comme tu me l'avais conseillé en amont.

    Je viens de remarquer une chose forte intéressante au niveau de la "contamination" de tout exe compilé dans le dossier collectionnant les cadenas :

    Puisque n'importe quel code est affligé d'office d'une élévation de droits, même sans aucun code dedans : suffit de renommer l'exe soit en changeant le nom hors EDI et roule ma poule .

  8. #8
    Membre Expert
    Avatar de Droïde Système7
    Homme Profil pro
    Inscrit en
    Septembre 2003
    Messages
    2 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 2 288
    Par défaut
    Pprem disait :

    .../...

    Etant sur une version perso, si ça reste une utilisation personnelle, tu peux aussi basculer sur les versions Community Edition qui est maintenant une 10.4.2 Sydney. Sa licence (usage personnel ou commercial limité) propose globalement les mêmes fonctionnalités que la professional et intègre ce qu'il faut pour les accès web.

    .../...
    Bonjour,

    Pprem

    Bon... je migre...

    Je prépare mon tout neuf Windows 10 et je souhaite suivant ton conseil changer également mon Delphi 7.

    Or tu me conseillais la Sydney.

    Quelle différence avec celle-ci :
    https://www.embarcadero.com/fr/products/delphi/starter

    Merci de toute lumière,

    DS7

  9. #9
    Membre Expert
    Avatar de pprem
    Homme Profil pro
    MVP Embarcadero - formateur&développeur Delphi, PHP et JS
    Inscrit en
    Juin 2013
    Messages
    1 876
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : MVP Embarcadero - formateur&développeur Delphi, PHP et JS
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 876
    Par défaut
    Delphi Community Edition est depuis juillet une version 10.4.2 Sydney.

    Les versions payantes sont des 11 Alexandria.

    Dans ton cas, pour des projets perso, c'est de toute façon la Community Edition qui semble la bonne. Vérifie que ton usage coincide à la licence avant de la télécharger et ce sera bon.

  10. #10
    Membre Expert
    Avatar de Droïde Système7
    Homme Profil pro
    Inscrit en
    Septembre 2003
    Messages
    2 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 2 288
    Par défaut
    Bon, là je sais désormais quel chemin prendre

    Merci sincèrement pour tous tes/les conseils, car j'étais un peu paumé.

    DS7

  11. #11
    Membre Expert
    Avatar de Droïde Système7
    Homme Profil pro
    Inscrit en
    Septembre 2003
    Messages
    2 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 2 288
    Par défaut


    Les nouvelles : j'ai donc téléchargé à cette URL :
    https://www.embarcadero.com/fr/products/delphi/starter

    Je pensais avoir une version Sydney, mais au début de l'install (STOPPÈE volontairement) je me retrouve avec une version Rad Strudio 10.4 :

    Là je nage totalement dans la semoule

    Mon souhait est d'obtenir un produit qui remplace mon Delphi7 tout simplement.


    Merci d'avance de tout éclaircissement,

    DS7
    Images attachées Images attachées  

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2016] Récupérer le nom complet d'un fichier stocké sur serveur
    Par Sites dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 09/07/2020, 16h20
  2. [XL-2016] Récupérer fichier .csv sur serveur ftp
    Par melange dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 26/09/2017, 16h22
  3. Récupérer contenu fichier sur un FTP
    Par CliffeCSTL dans le forum Général Java
    Réponses: 5
    Dernier message: 26/06/2015, 16h34
  4. Récupérer automatiquement un fichier .csv sur serveur FTP
    Par oagi_jaheim dans le forum Général Conception Web
    Réponses: 1
    Dernier message: 13/09/2009, 18h19
  5. tester les fichiers perl sur serveur
    Par delaune dans le forum Langage
    Réponses: 6
    Dernier message: 19/11/2005, 16h50

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