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

avec Java Discussion :

Comparaison d'une partie de ligne


Sujet :

avec Java

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 68
    Points : 39
    Points
    39
    Par défaut Comparaison d'une partie de ligne
    Bonjour,

    J'ai comme objectif de récupérer le contenu d'un fichier texte et de le convertir en pdf avec iText. Cependant toutes les lignes ne sont pas à prendre en compte et seulement le début de ligne permet de les différencier (OBJET=CONTROL).
    J'aimerai donc savoir comment récupérer seulement ces lignes avec mon code actuel, il les identifie toutes comme différentes...

    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
    import java.io.*;
    import java.io.IOException;
     
    import com.itextpdf.text.*;
    import com.itextpdf.text.pdf.PdfWriter;
     
     
    public class ParserDef {
    	/**
             * Nom du document PDF généré non signé
             */
    	static String fname  = "/home/simedia/Bureau/Stage Clément/Projet Java/TestParserDef.pdf" ;
    	static String chemin = "/home/simedia/Bureau/Stage Clément/Projet Java/DDL001.def";
    	/**
             * Création d'un simple document PDF "Hello World"
             */
    	public static void ConvertDef() {
     
    		// Creation du document
    		Document document = new Document();
     
    		try 
    		{
    			// Creation du "writer" vers le doc
    			// directement vers un fichier
    			PdfWriter.getInstance(document, new FileOutputStream(fname));
    			// Ouverture du document
    			//document.open();
     
    			// Ecriture des données du fichier texte en pdf
    			try 
    			{
    				// Création du flux bufférisé sur un FileReader, immédiatement suivi par un 
    				// try/finally, ce qui permet de ne fermer le flux QUE s'il le reader
    				// est correctement instancié (évite les NullPointerException)
    				BufferedReader buff = new BufferedReader(new FileReader(chemin));
    				//Récupère le nombre de ligne du fichier
     
    				try 
    				{
    					String ligne;
    					// Lecture du fichier ligne par ligne. Cette boucle se termine
    					// quand la méthode retourne la valeur null.
    					while ((ligne = buff.readLine()) != null) 
    					{
    						if (buff.readLine().equals("OBJET=CONTROL")) 
    						{
    							System.out.println(ligne);
    							document.add(new Paragraph(ligne));
    						}
    						else 
    						{
    							System.out.println(ligne +" FAUX");
    						}
    					}
    					//System.out.println(ligne);
     
    					//faites ici votre traitement
    				} 
    				finally 
    				{
    				// dans tous les cas, on ferme nos flux
    				buff.close();
    				}
    				}
    			catch (IOException ioe) {
    				// erreur de fermeture des flux
    				System.out.println("Erreur --" + ioe.toString());
    			}
     
    		} 
    		catch (DocumentException de)
    		{
    			System.err.println(de.getMessage());
    		}
    		catch (IOException ioe)
    		{
    			System.err.println(ioe.getMessage());
    		}
     
    		//Fermeture du document
    		//document.close();
    	}
    }
    Cordialement,
    Clément G.

  2. #2
    Expert éminent sénior Avatar de Uther
    Homme Profil pro
    Tourneur Fraiseur
    Inscrit en
    Avril 2002
    Messages
    4 570
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Tourneur Fraiseur

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 570
    Points : 15 533
    Points
    15 533
    Par défaut
    Il devrait suffire d'utiliser startWith() au lieu de equals().

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 68
    Points : 39
    Points
    39
    Par défaut
    Merci beaucoup

    Par contre, il ne m'affiche qu'une ligne sur deux...Serait-ce à cause du buff.readLine() que je fais dans la boucle while et dans la condition if ?

    Si oui comment évitez cela ?

  4. #4
    Membre confirmé
    Inscrit en
    Juillet 2006
    Messages
    534
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 534
    Points : 562
    Points
    562
    Par défaut
    Par contre, il ne m'affiche qu'une ligne sur deux...Serait-ce à cause du buff.readLine() que je fais dans la boucle while et dans la condition if ?
    Comme tu l'as dit il faut changer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if (buff.readLine().equals("OBJET=CONTROL"))
    Par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if (line.startWith("OBJET=CONTROL"))

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 68
    Points : 39
    Points
    39
    Par défaut
    Merci bien

  6. #6
    Membre chevronné
    Avatar de professeur shadoko
    Homme Profil pro
    retraité nostalgique Java SE
    Inscrit en
    Juillet 2006
    Messages
    1 257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : retraité nostalgique Java SE

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 257
    Points : 1 855
    Points
    1 855
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    while ((ligne = buff.readLine()) != null) {
    	if (ligne.startsWith("OBJET=CONTROL"))  {
    tu lisais deux fois en invoquant deux fois readLine
    edit: grilled !
    J'ai des principes: je peux toujours trouver une bonne raison pour les contredire .... mais j'ai des principes!
    (mon excellent bouquin sur Java : https://eska-publishing.com/fr/livre...822407076.html)

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

Discussions similaires

  1. distinct sur une partie de ligne
    Par igorzup dans le forum Langage SQL
    Réponses: 3
    Dernier message: 28/03/2007, 00h08
  2. Limiter les droits à une partie des lignes d'une table
    Par Nabu dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 20/08/2006, 00h04
  3. Réponses: 3
    Dernier message: 07/04/2006, 10h40
  4. probleme comparaison d une partie d une chaine
    Par sneb5757 dans le forum PostgreSQL
    Réponses: 12
    Dernier message: 03/01/2006, 09h08
  5. comparaison d une partie de la chaine de caractere
    Par sneb5757 dans le forum Langage SQL
    Réponses: 4
    Dernier message: 26/12/2005, 15h50

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