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

Delphi Discussion :

[IdFTP]Problème transfert fichier


Sujet :

Delphi

  1. #1
    Membre régulier Avatar de Isa31
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    267
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 267
    Points : 109
    Points
    109
    Par défaut [IdFTP]Problème transfert fichier
    Bonjour,

    J'ai un problème de transfert de fichier avec le composant IdFTP. J'utilise Delphi 7.

    En fait j'ai un fichier qui est assez gros entre 2 et 3 Go et mon transfert, fait a l'aide d'un "Get", plante en plein milieu à 2 147 483 647 octets. Je n'arrive pas a faire des transferts plus important.

    Comment faire pour pouvoir transférer la totalité de mon fichier???

    Merci d'avance.

    Isa

  2. #2
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 840
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 840
    Points : 15 263
    Points
    15 263
    Par défaut
    'Soir !
    2 147 483 647 octets
    Ça, c'est la limite haute d'un integer.
    Je ne connais pas les composants Indy, mais s'ils sont limités à cette valeur, te reste plus qu'à "splitter" ton fichier.
    Ou y a p'têt d'autres moyens ? Mais j'les connais point !

    Mes 2 cts,
    --
    jp
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  3. #3
    Membre émérite Avatar de edam
    Homme Profil pro
    Développeur Delphi/c++/Omnis
    Inscrit en
    Décembre 2003
    Messages
    1 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Delphi/c++/Omnis
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 894
    Points : 2 770
    Points
    2 770
    Par défaut
    les données reçu, où tu met les??
    PAS DE DESTIN, C'EST CE QUE NOUS FAISONS

  4. #4
    Membre expert
    Avatar de LadyWasky
    Femme Profil pro
    Inscrit en
    Juin 2004
    Messages
    2 932
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 53
    Localisation : France, Hauts de Seine (Île de France)

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 932
    Points : 3 565
    Points
    3 565
    Par défaut
    - Soit tu utilises autre chose que TIdFTP (un autre composant, la SDK d'un logiciel FTP)
    - Soit tu te bidouilles un descendant de TIdFTP qui utilise un Cardinal et non un integer pour comptabiliser la taille des fichiers
    - Soit tu coupes tes fichiers en morceau,
    - soit tu les charges par morceaux (à la manière des downloaders)

    Sinon, je sêche
    Bidouilleuse Delphi

  5. #5
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 840
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 840
    Points : 15 263
    Points
    15 263
    Par défaut
    Yop !
    Soit tu te bidouilles un descendant de TIdFTP qui utilise un Cardinal et non un integer
    et tu seras limitée par le cardinal, presque 4,3 gig, mais au train où vont les choses et la taille des fichiers...

    Mes 2 cts,
    --
    jp
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  6. #6
    Membre expert
    Avatar de LadyWasky
    Femme Profil pro
    Inscrit en
    Juin 2004
    Messages
    2 932
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 53
    Localisation : France, Hauts de Seine (Île de France)

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 932
    Points : 3 565
    Points
    3 565
    Par défaut
    Citation Envoyé par Jipété
    Yop !
    et tu seras limitée par le cardinal, presque 4,3 gig, mais au train où vont les choses et la taille des fichiers...

    Mes 2 cts,
    --
    jp
    bah, c'est toujours mieux que deux gigs non ?
    Bidouilleuse Delphi

  7. #7
    Membre régulier Avatar de Isa31
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    267
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 267
    Points : 109
    Points
    109
    Par défaut
    4.3 G ca me va.
    Couper le fichier ca ne me sert a rien.
    En fait je fais une copie d'un fichier de sauvegarde d'un serveur AIX sur un serveur W2000.
    Comment je peux faire pour passer par un cardinal ou pour la SDK???

    Merci d'avance.

  8. #8
    Membre émérite Avatar de edam
    Homme Profil pro
    Développeur Delphi/c++/Omnis
    Inscrit en
    Décembre 2003
    Messages
    1 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Delphi/c++/Omnis
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 894
    Points : 2 770
    Points
    2 770
    Par défaut
    Citation Envoyé par edam
    les données reçu, où tu met les??
    qu'on tu commence la réception tu met les bloc reçu où???
    en memoir ou directement dans un fichier???
    PAS DE DESTIN, C'EST CE QUE NOUS FAISONS

  9. #9
    Membre expert
    Avatar de LadyWasky
    Femme Profil pro
    Inscrit en
    Juin 2004
    Messages
    2 932
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 53
    Localisation : France, Hauts de Seine (Île de France)

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 932
    Points : 3 565
    Points
    3 565
    Par défaut
    Avec ce bout de code, tu devrais pouvoir t'affranchir des 2 Go :
    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
    uses Wininet;
     
    function GetInetFile
    (const fileURL, FileName: String): boolean;
    const BufferSize = 1024;
    var
      hSession, hURL: HInternet;
      Buffer: array[1..BufferSize] of Byte;
      BufferLen: DWORD;
      f: File;
      sAppName: string;
    begin
     Result:=False;
     sAppName := ExtractFileName(Application.ExeName);
     hSession := InternetOpen(PChar(sAppName),
                    INTERNET_OPEN_TYPE_PRECONFIG,
                   nil, nil, 0);
     try
      hURL := InternetOpenURL(hSession,
                PChar(fileURL),
                nil,0,0,0);
      try
       AssignFile(f, FileName);
       Rewrite(f,1);
       repeat
        InternetReadFile(hURL, @Buffer,
                         SizeOf(Buffer), BufferLen);
        BlockWrite(f, Buffer, BufferLen)
       until BufferLen = 0;
       CloseFile(f);
       Result:=True;
      finally
       InternetCloseHandle(hURL)
      end
     finally
      InternetCloseHandle(hSession)
     end
    end;
    Bidouilleuse Delphi

  10. #10
    Membre régulier Avatar de Isa31
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    267
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 267
    Points : 109
    Points
    109
    Par défaut
    Bon alors là j'ai un autre problème avec le code j'ai une erreur a la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    BlockWrite(f, Buffer, BufferLen)
    avec le message suivant
    Erreur lors de l'emission de fichier. Erreur E/S 1784.
    Ca peut venir d'ou??

  11. #11
    Membre expert
    Avatar de LadyWasky
    Femme Profil pro
    Inscrit en
    Juin 2004
    Messages
    2 932
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 53
    Localisation : France, Hauts de Seine (Île de France)

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 932
    Points : 3 565
    Points
    3 565
    Par défaut
    Citation Envoyé par Isa31
    Bon alors là j'ai un autre problème avec le code j'ai une erreur a la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    BlockWrite(f, Buffer, BufferLen)
    avec le message suivant

    Ca peut venir d'ou??
    Je ne sais pas , du firewall peut-être ?
    Edit : Non, c'est pas ça...
    Bidouilleuse Delphi

  12. #12
    Expert éminent sénior
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Points : 10 008
    Points
    10 008
    Par défaut
    Salut

    L'aide de Delphi précise ceci:
    Syntaxe Delphi :

    procedureBlockWrite(varf:File;varBuf;Count:Integer [;varAmtTransferred:Integer]);

    Description
    [...]
    Si AmtTransferred est omis,une erreur d'E/S se produit si le nombre d'enregistrements écrits n'est pas égal à Count. [...]
    Je réécrirais le code ainsi:
    Nota: J'ai renommé ta variable BufferLen en NumRead que ce soit plus explicite à la lecture du code, et ajouté la variable NumWritten (Integer) à BlockWrite

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     repeat
        InternetReadFile(hURL, @Buffer,
                         SizeOf(Buffer), NumRead);
        BlockWrite(f, Buffer, NumRead, NumWritten);
     until (BufferLen = 0) or (NumRead <> NumWritten);
    @+ Claudius

  13. #13
    Membre régulier Avatar de Isa31
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    267
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 267
    Points : 109
    Points
    109
    Par défaut
    C'est la même chose...

  14. #14
    Expert éminent sénior
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Points : 10 008
    Points
    10 008
    Par défaut
    Toujours l'Erreur E/S 1784 ?

    ERROR_INVALID_USER_BUFFER
    The supplied user buffer is not valid for the requested operation.
    Ben j'vois plus trop

    @+ Claudius

  15. #15
    Membre régulier Avatar de Isa31
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    267
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 267
    Points : 109
    Points
    109
    Par défaut
    Sinon ce n'est pas possible que je récupère mon fichier en utilisant un shell???

    Si oui, comment puis-je le faire?

    Merci d'avance.

  16. #16
    Membre expert
    Avatar de LadyWasky
    Femme Profil pro
    Inscrit en
    Juin 2004
    Messages
    2 932
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 53
    Localisation : France, Hauts de Seine (Île de France)

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 932
    Points : 3 565
    Points
    3 565
    Par défaut
    Solution garantie par Waskol --> les fichiers jusqu'à 4Go n'ont qu'a bien se tenir !!!


    D'abord la fonction magique
    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
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    uses Wininet;
    function FtpDownloadFile(strHost, strUser, strPwd: string;
      Port: Integer; ftpDir, ftpFile, TargetFile: string;
      ProxyUser,ProxyPassword:string;
      ALabel:TLabel=nil;AProgressBar: TProgressBar=nil): Boolean;
     
      function FmtFileSize(Size: cardinal): string;
      begin
        if Size >= $3B9ACA00 then
          Result := Format('%.2f', [Size / $3B9ACA00]) + ' Go'
        else
        if Size >= $F4240 then
          Result := Format('%.2f', [Size / $F4240]) + ' Mo'
        else
        if Size < 1000 then
          Result := IntToStr(Size) + ' bytes'
        else
          Result := Format('%.2f', [Size / 1000]) + ' Ko';
      end;
     
    const
      READ_BUFFERSIZE = 4096;  // ou 256, 512, ...
    var
      hNet, hFTP, hFile: HINTERNET;
      buffer: array[0..READ_BUFFERSIZE - 1] of Char;
      bufsize, dwBytesRead, fileSize: DWORD;
      sRec: TWin32FindData;
      strStatus: string;
      LocalFile: file;
      bSuccess: Boolean;
      PC:integer; //PourCentage de téléchargement
      UnFichier:TFileStream;
    begin
      Result := False;
     
      { Ouvre une session internet }
      hNet := InternetOpen('Nom du programme', // Agent
                            INTERNET_OPEN_TYPE_PRECONFIG, // AccessType
                            PChar(ProxyUser),  // Nom utilisateur pour le Proxy
                            PChar(ProxyPassword), // Mot de passe Proxy
                            0); // ou INTERNET_FLAG_ASYNC / INTERNET_FLAG_OFFLINE
     
      {
        l'Agent contient le nom de l'application ou de
        l'entité appelant les fonctions Internet
      }
     
     
      { See if connection handle is valid }
      if hNet = nil then
      begin
        ShowMessage('Impossible d''accéder à WinInet.Dll');
        Exit;
      end;
     
      { Connect to the FTP Server }
      hFTP := InternetConnect(hNet, // Handle from InternetOpen
                              PChar(strHost), // FTP server
                              port,//ou bien (INTERNET_DEFAULT_FTP_PORT),
                              PChar(StrUser), // username
                              PChar(strPwd),  // password
                              INTERNET_SERVICE_FTP, // FTP, HTTP, or Gopher?
                              INTERNET_FLAG_PASSIVE, // flag: 0 or INTERNET_FLAG_PASSIVE
                              0);// Nombre défini par l'utilisateur pour un callback
     
      if hFTP = nil then
      begin
        InternetCloseHandle(hNet);
        ShowMessage(Format('L''Hôte "%s" n''est pas disponible',[strHost]));
        Exit;
      end;
     
      { Changer de répertoire }
      bSuccess := FtpSetCurrentDirectory(hFTP, PChar(ftpDir));
     
      if not bSuccess then
      begin
        InternetCloseHandle(hFTP);
        InternetCloseHandle(hNet);
        ShowMessage(Format('Ne peut accéder au répertoire %s.',[ftpDir]));
        Exit;
      end;
     
      { Lecture de la taille du fichier }
      if FtpFindFirstFile(hFTP, PChar(ftpFile), sRec, 0, 0) <> nil then
      begin
        fileSize := sRec.nFileSizeLow;
      end else
      begin
        InternetCloseHandle(hFTP);
        InternetCloseHandle(hNet);
        ShowMessage(Format('Cannot find file ',[ftpFile]));
        Exit;
      end;
     
      { Ouvre le fichier }
      hFile := FtpOpenFile(hFTP, // Handle d'une session ftp
                           PChar(ftpFile), // Nom du fichier
                           GENERIC_READ, // dwAccess
                           FTP_TRANSFER_TYPE_BINARY, // dwFlags
                           0); // Ceci est le contexte utiliser pour les Callback.
     
      if hFile = nil then
      begin
        InternetCloseHandle(hFTP);
        InternetCloseHandle(hNet);
        Exit;
      end;
     
      { Créer un nouveau fichier local }
      if FileExists(TargetFile) then DeleteFile(TargetFile);
      UnFichier:=TFileStream.Create(TargetFile,fmCreate);
      try
     
      dwBytesRead := 0;
      bufsize := READ_BUFFERSIZE;
     
      while (bufsize > 0) do
      begin
        Application.ProcessMessages;
     
        if not InternetReadFile(hFile,
                                @buffer, // addresse d'un buffer qui reçoit les données
                                READ_BUFFERSIZE, // Nombre d'octets à lire et à placer dans le buffer
                                bufsize)  // Nombre d'octets effectivement lus
           then Break; //On a fini de recevoir quelque chose
        if (bufsize > 0) and (bufsize <= READ_BUFFERSIZE)
        then bufsize:=UnFichier.Write(buffer, bufsize);
     
        dwBytesRead := dwBytesRead + bufsize;
     
        { Montrer Progression }
        PC:=Round(dwBytesRead * 100 / fileSize);
        if Assigned(AProgressBar)
        then AProgressBar.Position :=PC;
        if Assigned(ALabel)
        then ALabel.Caption := Format('%s of %s / %d %%',[FmtFileSize(dwBytesRead),FmtFileSize(fileSize) ,PC]);
      end;
        Result := True;
      finally
        UnFichier.Free;
        InternetCloseHandle(hFile);
        InternetCloseHandle(hFTP);
        InternetCloseHandle(hNet);
      end;
     
    end;

    et un exemple d'utilisation. J'ai mis une TProgressBar et un TLabel dans ma fiche et codé le OnClick d'un TButton comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    procedure TForm1.Button1Click(Sender: TObject);
    var TargetFile:string;
    begin
      TargetFile:=ExtractFilePath(Application.ExeName)+'fftw-3.1.2-dll.zip';
      FtpDownloadFile('ftp.fftw.org','','', //Serveur ftp / Nom d'utilisateur sur le ftp / Mot de passe sur le ftp
                      21,'/pub/fftw','fftw-3.1.2-dll.zip', //Numéro de port FTP/ répertoire dans lequel se trouve le fichier / le fichier à télécharger
                      TargetFile, //La destination du fichier
                      '','', //Nom d'utilisateur et mot de passe Proxy éventuel
                      Label1,ProgressBar1); //Un Label et une ProgressBar (facultatifs)
      ShowMessage('Téléchargement terminé');
    end;
    Bon dev
    Bidouilleuse Delphi

  17. #17
    Expert éminent sénior
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Points : 10 008
    Points
    10 008
    Par défaut
    HiHaaa !! Waskol a encore frappé !

    Merci. Je garde ce code sous le coude.
    @+

  18. #18
    Membre régulier Avatar de Isa31
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    267
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 267
    Points : 109
    Points
    109
    Par défaut


    Merci beaucoup, ca marche!!!



    Citation Envoyé par waskol
    Solution garantie par Waskol --> les fichiers jusqu'à 4Go n'ont qu'a bien se tenir !!!
    Euuh contre la taille des fichiers est réellement limitée a 4G, en fait je risque de pas tarder a les dépasser...

    Merci d'avance.

  19. #19
    Membre expert
    Avatar de LadyWasky
    Femme Profil pro
    Inscrit en
    Juin 2004
    Messages
    2 932
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 53
    Localisation : France, Hauts de Seine (Île de France)

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 932
    Points : 3 565
    Points
    3 565
    Par défaut
    Citation Envoyé par Isa31


    Merci beaucoup, ca marche!!!





    Euuh contre la taille des fichiers est réellement limitée a 4G, en fait je risque de pas tarder a les dépasser...

    Merci d'avance.
    Bon allez, on va essayer d'aller jusqu'au Tera-octet (c'est parce que c'est toi)

    Donc, à la place de ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    bufsize, dwBytesRead, fileSize: DWORD;
    on va mettre ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    bufsize, dwBytesRead: DWORD;
     fileSize:Int64
    et à la place de ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    function FmtFileSize(Size: cardinal): string;
    on va mettre ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    function FmtFileSize(Size: Int64): string;
    théoriquement, ça devrait le faire jusqu'à : 2^63 octets-1 (t'as pas assez sur ton disque dur )
    Bidouilleuse Delphi

  20. #20
    Membre expert
    Avatar de LadyWasky
    Femme Profil pro
    Inscrit en
    Juin 2004
    Messages
    2 932
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 53
    Localisation : France, Hauts de Seine (Île de France)

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 932
    Points : 3 565
    Points
    3 565
    Par défaut
    Pour info personnelle : pourquoi des fichiers si gros ???
    Bidouilleuse Delphi

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 3 123 DernièreDernière

Discussions similaires

  1. Problème transfert fichier texte fichier .csv
    Par stansoad0108 dans le forum Langage
    Réponses: 14
    Dernier message: 09/03/2012, 10h30
  2. Réponses: 4
    Dernier message: 31/01/2012, 21h24
  3. Problème transfert fichier Serveur-Client
    Par ramdamriddim dans le forum Plateformes (Java EE, Jakarta EE, Spring) et Serveurs
    Réponses: 0
    Dernier message: 22/12/2009, 12h20
  4. Réponses: 4
    Dernier message: 23/11/2008, 02h05
  5. Réponses: 5
    Dernier message: 21/06/2008, 18h41

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