Application permettant de récupérer des fichiers sur un serveur

Jerf Messages postés 7 Date d'inscription vendredi 26 mai 2017 Statut Membre Dernière intervention 14 juin 2017 - 26 mai 2017 à 14:03
KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 - 12 juin 2017 à 18:51
Bonjour à tous. Je suis un nouveau, un débutant en matière de programmation. Je fais un stage actuellement et je suis confronté à une tâche que je trouve un peu difficile pour le niveau que j'ai. Je dois développer une application qui récupérera un fichier sur un serveur et effectuera un traitement sur ce fichier. Je ne sais pas trop quel langage utiliser, j'ai pensé à Java parce que je l'ai fait un peu mais je me sens un peu perdu... Je ne sais vraiment pas par quoi commencer..
Svp, en attendant une réponse favorable, recevez mes sincères salutations.

4 réponses

Jerf Messages postés 7 Date d'inscription vendredi 26 mai 2017 Statut Membre Dernière intervention 14 juin 2017
11 juin 2017 à 02:40
Merci beaucoup. Merciii.. J'ai bien reçu votre réponse en vidéo. Donc le serveur génère des fichiers au format CSV donc excel les ouvre. Ce sont des fichiers qui ont beaucoup de lignes, vraiment beaucoup... Et en quelque sorte, sur chaque ligne, on a un lien ou un site FH (faisceaux hertziens). Et donc les colonnes du fichier sont les différentes caractéristiques de chaque lien ou site FH. Le but de l'appli est de détecter des liens ou sites sur lesquels il y'a congestion, donc en fonction d'un seuil que je connais ou d'un calcul, je pourrai dire s'il y'a congestion ou pas. En tout cas, il faudra trouver un moyen pour dire que sur cette ligne, en fonction du calcul, il y'a congestion ou pas. Pour accéder au serveur, il faut être dans le réseau local de l'entreprise et naturellemnt, le serveur a une adresse IP. C'est un opérateur mobile et je suis à la direction technique. Le système d'exploitation utilisé est windows 7..bon c'est ce qui tourne sur leurs machines.
Encore grand merci pour l'aide
0
KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 127
11 juin 2017 à 06:47
Bonjour,

"des fichiers au format CSV donc excel les ouvre. Ce sont des fichiers qui ont beaucoup de lignes, vraiment beaucoup"
Si Excel arrive à ouvrir le fichier c'est qu'il n'y a pas tant de lignes que ça, les limites d'Excel c'est 1 million de lignes maximum (2^20).

Pour le reste, c'est juste un traitement de fichier, on pourrait le faire avec n'importe quel langage de programmation.

Exemple, ton fichier contient 3 colonnes et le calcul consiste à récupérer les lignes lorsque la somme des colonnes 2 et 3 est supérieure à 10.

input.csv
a;1;2
b;5;6
c;4;5
d;5;5

output.csv
b;11
d;10

En Java 8 cela donne :

package test;

import java.io.*;
import java.nio.file.*;
import java.util.Optional;

public class Test {

    public static Optional<String> compute(String[] columns) {
        double somme = Double.parseDouble(columns[1]) + Double.parseDouble(columns[2]);
        if (somme < 10) {
            return Optional.empty();
        } else {
            return Optional.of(columns[0] + ";" + somme);
        }
    }

    public static void main(String[] args) throws IOException {
        try (PrintWriter output = new PrintWriter(args[1])) {
            Files.lines(Paths.get(args[0]))
                .map(line -> line.split(";"))
                .map(Test::compute)
                .filter(Optional::isPresent).map(Optional::get)
                .collect(() -> output, PrintWriter::println, (a,b) -> {});
        }
    }
}

Ligne de commande pour exécuter :

java test.Test c:\input.csv c:\output.csv
0
Jerf Messages postés 7 Date d'inscription vendredi 26 mai 2017 Statut Membre Dernière intervention 14 juin 2017
11 juin 2017 à 06:54
Bonjour,
Oui c'est vrai, vous avez raison. Finalement, j'ai opté pour PHP comme vous l'avez conseillé. Non les lignes n'atteignent pas le million.
0
KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 127
11 juin 2017 à 07:13
Ce n'est pas moi qui ai posté la vidéo, mais XavLeVrais, et sa réponse était a priori hors sujet puisqu'elle consistait à te faire installer un serveur (d'où le PHP) ce qui est totalement inutile si tu veux juste traiter un fichier...
0
Jerf Messages postés 7 Date d'inscription vendredi 26 mai 2017 Statut Membre Dernière intervention 14 juin 2017 > KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024
11 juin 2017 à 07:24
Oui pas seulement traiter..avant le traitement, il faut récupérer le fichier sur un serveur.
0
KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 127 > Jerf Messages postés 7 Date d'inscription vendredi 26 mai 2017 Statut Membre Dernière intervention 14 juin 2017
11 juin 2017 à 07:36
Pour récupérer le fichier sur un serveur ça ne demande pas grand chose, tout dépend ce qui est mis en place (FTP, SSH... ?) mais dans la plupart des cas une ligne de commande suffit.

D'ailleurs à voir s'il ne serait pas plus pertinent que ton programme soit exécuté directement sur le serveur afin de traiter les fichiers en local, plutôt que faire des allers-retours sur le réseau entre ton application et le serveur.
0
Jerf Messages postés 7 Date d'inscription vendredi 26 mai 2017 Statut Membre Dernière intervention 14 juin 2017 > KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024
11 juin 2017 à 07:43
Vous n'avez pas tort. Je pense que tout se fait en local normalement mais j'aurai confirmation dans quelques heures.
0
Jerf Messages postés 7 Date d'inscription vendredi 26 mai 2017 Statut Membre Dernière intervention 14 juin 2017
12 juin 2017 à 18:46
<?php

//CONNEXION FTP AVEC PHP

//DEFINITION DES VARIABLE DE CONNEXION
$ftp_server = "......";
$ftp_user_name = "......";
$ftp_user_pass = "......";
$conn_id = ftp_connect($ftp_server, 21);
//IDENTIFICATION FTP
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

//VERIFICATION DE LA CONNEXION
if ((!$conn_id) || (!$login_result)) {
        echo "La connexion FTP a échoué !<br>";
        echo "Tentative de connexion au serveur $ftp_server pour l'utilisateur $ftp_user_name";
        exit;
    } else {
        echo "Connexion au serveur $ftp_server, pour l'utilisateur $ftp_user_name<br />";
    }


// Récupération du contenu d'un dossier
$liste_fichiers = ftp_nlist($conn_id, ".....");

// Affichage de $contents
foreach($liste_fichiers as $fichier)
{
    echo $fichier. '<br/>';
}
    


//FERMETURE DE LA CONNEXION
ftp_close($conn_id);
?>


Ceci est déjà le code que j'ai utilisé pour afficher les fichiers mais on m'affiche cette erruer mais je ne sais pas comment la corriger.
J'aimerais avoir un coup de main svp
0
KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 127
12 juin 2017 à 18:51
Tu es dans la section Java et je t'ai répondu parce que je connais Java.
Comme j'ai pu le dire plus haut, faire un serveur PHP ne te servira à rien, si c'est juste du traitement de fichiers texte autant faire un batch, par exemple en Java.
Dans tous les cas si tu veux de l'aide sur un code PHP, poste ta question dans le forum PHP...
0
Rejoignez-nous