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

Jerf 7 Messages postés vendredi 26 mai 2017Date d'inscription 14 juin 2017 Dernière intervention - 26 mai 2017 à 14:03 - Dernière réponse : KX 15096 Messages postés samedi 31 mai 2008Date d'inscriptionModérateurStatut 15 décembre 2017 Dernière intervention
- 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.
Afficher la suite 

9 réponses

Répondre au sujet
Jerf 7 Messages postés vendredi 26 mai 2017Date d'inscription 14 juin 2017 Dernière intervention - 11 juin 2017 à 02:40
0
Utile
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
Commenter la réponse de Jerf
KX 15096 Messages postés samedi 31 mai 2008Date d'inscriptionModérateurStatut 15 décembre 2017 Dernière intervention - 11 juin 2017 à 06:47
0
Utile
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
Commenter la réponse de KX
Jerf 7 Messages postés vendredi 26 mai 2017Date d'inscription 14 juin 2017 Dernière intervention - 11 juin 2017 à 06:54
0
Utile
4
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.
KX 15096 Messages postés samedi 31 mai 2008Date d'inscriptionModérateurStatut 15 décembre 2017 Dernière intervention - 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...
Jerf 7 Messages postés vendredi 26 mai 2017Date d'inscription 14 juin 2017 Dernière intervention > KX 15096 Messages postés samedi 31 mai 2008Date d'inscriptionModérateurStatut 15 décembre 2017 Dernière intervention - 11 juin 2017 à 07:24
Oui pas seulement traiter..avant le traitement, il faut récupérer le fichier sur un serveur.
KX 15096 Messages postés samedi 31 mai 2008Date d'inscriptionModérateurStatut 15 décembre 2017 Dernière intervention > Jerf 7 Messages postés vendredi 26 mai 2017Date d'inscription 14 juin 2017 Dernière intervention - 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.
Jerf 7 Messages postés vendredi 26 mai 2017Date d'inscription 14 juin 2017 Dernière intervention > KX 15096 Messages postés samedi 31 mai 2008Date d'inscriptionModérateurStatut 15 décembre 2017 Dernière intervention - 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.
Commenter la réponse de Jerf
Jerf 7 Messages postés vendredi 26 mai 2017Date d'inscription 14 juin 2017 Dernière intervention - 12 juin 2017 à 18:46
0
Utile
1
<?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
KX 15096 Messages postés samedi 31 mai 2008Date d'inscriptionModérateurStatut 15 décembre 2017 Dernière intervention - 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...
Commenter la réponse de Jerf

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.