Les Snippets

Connexion

Récupérer la source d'une page dans une variable String par API

Niveau requis pour utiliser/comprendre cette source : 1 ( Débutant )
Créé le 09/06/2008 21:56:44 et initié par PCPT [Liste]
Date de mise à jour : 27/12/2009 19:03:21
Vue : 5649
Catégorie(s) : API, Fichier / Disque, Réseau & Internet, Chaîne de caractères
Langages dispo pour ce code :
- VB6, VBA
- VB6, VBA
- Delphi 5
- VB 2005, VB 2008
- C# 2.x, C# 3.x



Langage : VB6 , VBA
Date ajout : 09/06/2008
Posté par PCPT [Liste]
Private Declare Function DeleteFile Lib "kernel32" Alias "DeleteFileA" (ByVal lpFileName As StringAs Long
Private Declare Function URLDownloadToFile Lib "urlmon" Alias "URLDownloadToFileA" (ByVal pCaller As LongByVal szURL As String, ByVal szFileName As String, ByVal dwReserved As Long, ByVal lpfnCB As Long) As  Long
 
Function GetStringSourceFromOnlineFile(ByVal  sUrl As String) As String
'   récupère un nom de fichier temporaire
    Dim sTempDest As String
    sTempDest = GetUniqueTempFileName '  http://www.codyx.org/snippet_generer-nom-fichier-temporaire-unique_619.aspx#1876
'   télécharge la page
     If URLDownloadToFile(0&, sUrl, sTempDest, 0&, 0&) = 0  Then
'       on lit le  fichier
        Dim FF As Integer
        FF = FreeFile
        Open sTempDest For Input As #FF
            GetStringSourceFromOnlineFile = Input(LOF(FF), 1)
        Close #FF
'       supprime le fichier temp
        Call DeleteFile(sTempDest)
     End If
End Function

Remarque :
Label1.AutoSize = True
Label1.Caption = "Mon IP WAN : " & GetStringSourceFromOnlineFile("http://www.whatismyip.org")



nécessite ce snippet : http://www.codyx.org/snippet_generer-nom-fichier-temporaire-unique_619.aspx#1876
Langage : VB6 , VBA
Date ajout : 12/11/2008
Posté par Charles Racaud [Liste]
Private Declare Function InternetOpen Lib "wininet.dll" Alias "InternetOpenA" (ByVal sAgent As StringByVal lAccessType As LongByVal sProxyName As StringByVal sProxyBypass As StringByVal lFlags As LongAs Long
Private Declare Function InternetOpenUrl Lib "wininet.dll" Alias "InternetOpenUrlA" (ByVal hOpen As LongByVal sUrl As StringByVal sHeaders As StringByVal lLength As LongByVal lFlags As LongByVal lContext As LongAs Long
Private Declare Function InternetReadFile Lib "wininet.dll" (ByVal hFile As LongByVal sBuffer As StringByVal lNumBytesToRead As Long, lNumberOfBytesRead As LongAs Integer
Private Declare Function InternetCloseHandle Lib "wininet.dll" (ByVal hInet As LongAs Integer
Private Const INTERNET_OPEN_TYPE_PRECONFIG As Long = &H0
Private Const INTERNET_FLAG_RELOAD As Long = &H80000000
Public Function DownloadSource(ByVal Url As StringByVal UserAgent As StringAs String
  Dim hOpen As Long
  Dim hOpenUrl As Long
  Dim sReadBuffer As String * 1024
  Dim lNumberOfBytesRead As Long
  Dim sBuffer As String
  hOpen = InternetOpen(UserAgent, INTERNET_OPEN_TYPE_PRECONFIG, vbNullString, vbNullString, 0)
  hOpenUrl = InternetOpenUrl(hOpen, Url, vbNullString, 0, INTERNET_FLAG_RELOAD, 0)
  Do
    sReadBuffer = vbNullString
    Call InternetReadFile(hOpenUrl, sReadBuffer, Len(sReadBuffer), lNumberOfBytesRead)
    sBuffer = sBuffer & Left$(sReadBuffer, lNumberOfBytesRead)
    DoEvents
  Loop While lNumberOfBytesRead > 0
  If Not hOpenUrl = 0 Then Call InternetCloseHandle(hOpenUrl)
  If Not hOpen = 0 Then Call InternetCloseHandle(hOpen)
  DownloadSource = sBuffer
End Function
Remarque :
Méthode sans passer par un fichier temporaire
Langage : Delphi 5
Date ajout : 17/11/2008
Posté par cirec [Liste]

Uses WinINet; 
Function DownloadSourceAsString(Const Url: String): String;  
Var 
  hOpen : HINTERNET;  
  hOpenUrl : HINTERNET; 
  sReadBuffer : Array[0..1023] Of ansichar;  
  lNumberOfBytesRead : Cardinal; 
Begin  
  Result := ''; 
  { Démarre une session Internet } 
  hOpen :=  InternetOpen(PChar(Application.ExeName), INTERNET_OPEN_TYPE_PRECONFIG, '', '', 0); 
  If hOpen =  Nil  Then 
  Begin  
    ShowMessage(SysErrorMessage(GetLastError)); 
    exit;  
  End; 
  Try  
    { se connecte à l'URL }  
    hOpenUrl := InternetOpenUrl(hOpen, PChar(Url), '', 0, INTERNET_FLAG_RELOAD,  0); 
    Try 
      If  hOpenUrl <> Nil  Then 
      Begin  
        { récupère le texte }  
        Repeat 
          sReadBuffer  := ''; 
          InternetReadFile(hOpenUrl,  @sReadBuffer, Length(sReadBuffer), lNumberOfBytesRead); 
          Result :=  Result + String(sReadBuffer);  
        Until lNumberOfBytesRead = 0; 
      End 
      Else  
      Begin  
        ShowMessage(SysErrorMessage(GetLastError));  
        exit; 
      End; 
    Finally 
      If hOpenUrl <> Nil  Then 
        InternetCloseHandle(hOpenUrl);  
    End; 
  Finally 
    InternetCloseHandle(hOpen);  
  End; 
End; 
Procedure  Tfrm_Main.btn_GoClick(Sender: TObject); 
Begin 
  lbl_MyIP.Caption := Format('Mon IP : %s',[DownloadSourceAsString('http://www.whatismyip.org')]); 
  { Fonctionne aussi avec un fichier txt }  
  mmo_Result.Lines.Text := DownloadSourceAsString('http://skin-ogame.hebfree.org/World_Of_Stargate/texte_evolution.txt');  
End; 

Langage : VB 2005 , VB 2008
Date ajout : 03/04/2009
Posté par Charles Racaud [Liste]
DateMAJ : 27/12/2009
'Imports System
'Imports System.Net
Public Function DownloadSource(ByVal address As StringByVal UserAgent As StringAs String
  Dim Result As String
  Using NetC As New WebClient()
    NetC.Headers(HttpRequestHeader.UserAgent) = UserAgent
    Result = NetC.DownloadString(address)
  End Using
  Return Result
End Function
Public Function DownloadSource(ByVal address As Uri, ByVal UserAgent As StringAs String
  Return DownloadSource(address.ToString(), UserAgent)
End Function
Langage : C# 2.x , C# 3.x
Date ajout : 03/04/2009
Posté par Charles Racaud [Liste]
//using System;
//using System.Net;
public static string DownloadSource(string address) {
  string Result = string.Empty;
  using (WebClient NetC = new WebClient()) {
    Result = NetC.DownloadString(address);
  }
  return Result;
}
public static string DownloadSource(Uri address) {
  return DownloadSource(address);
}

Snippets en rapport avec : Chaine, Source, Télécharger, Page, Récupérer



Codes sources en rapport avec : Chaine, Source, Télécharger, Page, Récupérer

{ASP / ASP.NET} LIRE LA SOURCE D'UNE PAGE
Voila une fonction qui permet de lire le code source d'une page Internet...

{Visual Basic, VB6, VB.NET, VB 2005} CONCEPTMONITOR - UN EXTRACTEUR DE D'INFORMATIONS PROVENANT DE PAGES HTML
Cette source est un extracteur d'informations (crawler) ayant plusieurs buts. C'est en premier un cl...

{JAVA / J2EE} WEBSOURCEASPIRO - ASPIRATEUR DE CODE SOURCE DE PAGE INTERNET
C'est un petit programme simple. On rentre une URL, on appuie sur le bouton et ca charge la page dan...

{Visual Basic, VB6, VB.NET, VB 2005} AFFICHER LA SOURCE D'UNE PAGE INTERNET
Cette source permet d'afficher la source d'une page présente sur le net ou en local ... Si vous ...

{Visual Basic, VB6, VB.NET, VB 2005} AFFICHER LA SOURCE D'UNE PAGE HTML D'UN SITE
C'est très , mais alors très simple à comprendre. Il n'y a que 3 lignes à taper, donc vraiment pas b...

{C / C++ / C++.NET} FONCTION : CHAR * AJUSTERTAILLECHAINE()
Cette fonction permet de retirer une partie de chaine de caractère ou d'espacer la chaine a partir d...

{JAVA / J2EE} NOMBRE D'OCCURENCE D'UNE CHAINE DE CARACTÈRE DANS TOUS LES FICHIERS AVEC LES ENTÊTES SPÉCIFIÉS CONTENU DANS UN DOSSIER
Le titre est assez explicite. Il s'agit d'un petit bout de code renvoyant le nombre de fois qu'une c...

{C# / C#.NET} GESTION DES LANGUES, COUNTRIES, CHAÎNES DE CARACTÈRE SIMPLE
Gérer les langues dans un programme peut devenir vite fastidieux. Vous pouvez utilisez le gestionnai...

{Javascript / DHTML} PAGES EFFET MOBILE TACTILE...
J'ai l'opportunité d'avoir dans ma vie des mobile tactile notament des WindowsPhone, sur les navigat...

{C# / C#.NET} TEAM FOUNDATION SERVER - EXPLOITER LA PARTIE CLIENTE.
Il s'agit d'une source sortie du placard et remise à jour que je vous présente. Cette source montre...