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 :

connaître la position d'un caractère


Sujet :

avec Java

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mai 2014
    Messages : 180
    Points : 64
    Points
    64
    Par défaut connaître la position d'un caractère
    Bonjour,

    alors voilà j'ai un petit soucis avec mon code! j'arrive pas a créer mon code source qui me permettra de savoir la position de mes caractères..
    En effet j'ai un texte ci-dessous :

    Code csh : 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
    #!/bin/csh -xv
    #BSUB -J calmod_POGO_2CU fichie.txt
    #BSUB -o calmod_POGO_2CU.o%J
    #BSUB -L /bin/csh
     
    umask 002
     
    #----------------------------------------------------------------------
    set dir_listing = jdfgjkdfnbjkdfnbjnfdbndfjbndfbndfkb
    jnfjkg
    $gdfgdfg
    dfgdfgdfg74654654fdg
    fdgdfg
    fgdf
    set toto = tata
    fgfg
    fg;hmfh
    set toto = tutu2
    dfdsfgdfg
    set nono = ueueue777
    set khjkhjkhkj 8787687657
    titi = tutu
    set a = titi
    set b = $toto
    set c = 7 + $toto
    set d = $toto + 9
    set e = $nono + $toto 
    set k = $jhgjgh + {k}

    et j'ai mon code :

    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
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
    232
    233
    234
    235
    236
    237
    238
    239
    240
    241
    242
    243
    244
    245
    246
    247
    248
    249
    250
    251
    252
    253
    254
    255
    256
    257
    258
    259
    260
    261
    262
    263
    264
    265
    266
    267
    268
    269
    270
    271
    272
    273
    274
    275
    276
    277
    278
    279
    280
    281
    282
    283
    284
    import java.awt.List;
    import java.io.BufferedReader;
    import java.io.BufferedWriter;
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.FileWriter;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.InputStreamReader;
    import java.util.ArrayList;
    import java.util.Iterator;
    import java.util.regex.Matcher;
    import java.util.regex.Pattern;
    /**
     * Elle recup ligne de forme : set ... = ... sans le $(...) 
     * @author ksmaili
     *return : 1 fichier xml + le fichier texte de type CSH que l'on veux
     */
    public class RecupLineWithoutSymboleTest {
     
    	private static String[] testVar;
     
    	private static ArrayList<String> indexes = new ArrayList<>();
    	private static ArrayList<String> Liste1 = new ArrayList<String>();
     
     
    	public static void main(String[] args) throws IOException {
     
    		final String fichier = "C:\\Users\\ksmaili\\workspace\\fichiertxtP2CSH.txt";
    		String xmlFileName = "C:\\Users\\ksmaili\\workspace\\XMLpartie2.xml";
    		Classement cl = new Classement();
     
    		// lit le fichier ligne par ligne
    		try {
    			// lire un fichier
    			final InputStream ips = new FileInputStream(fichier);
    			final InputStreamReader ipsr = new InputStreamReader(ips);
    			final BufferedReader br = new BufferedReader(ipsr);
    			// lire ligne par ligne
    			String ligne;
    			while ((ligne = br.readLine()) != null) {
    				// System.out.println(ligne);
    				// je splite pour avoir la clé et la valeur pour une comparaison prochaine
    				testVar = ligne.split("=");
     
    				if (ligne.matches("^set.*=.*") && !ligne.contains("$")) {
    					// je ne fais rien car la ligne est correcte et correspond par exemple a set blabla = 12
    				} else if (ligne.matches("^set.*=.*") && ligne.contains("$")) {
     
    					// parcourir la liste de la methode lineDollar()
    					ArrayList<String> listVal = lineDollar(ligne);
    					Iterator it = listVal.iterator();
    					while(it.hasNext() ) {
     
    					//System.out.println(it.next());	
     
    					}
     
     
    					// Vérifier la position avant ou apres du $...
     
     
    					/*
    						if (it.next() > 1){
     
    						if (){
     
    						}
     
    					}*/
     
     
     
     
    					// Si la ligne est du style set blabla = $asd + 34 alors il me faut supprimer $asd et le signe  +
    					ligne = count(ligne);
    				} else {
    					// dans le cas contraire exemple eewewewewewewewew  ou esd = wwewe alors je mettre la ligne vide
    					ligne = "";
    				}
     
    				// Si la ligne n´est pas vide
    				if (ligne.length() > 0) {
    					// je verifie si son index peut etre creer et sauvegarder dans la liste d´indexes ou pas 
     
    					if (creerIndex(testVar[0])) {
     
    						//System.out.println("On récupère : " + ligne);
    						Pattern p=Pattern.compile("^set(.*)=(.*)");
    						Matcher m=p.matcher(ligne);
    						while(m.find()) {
    							//System.out.println(m.group(1)); // affiche les clés 
    							//System.out.println(m.group(2)); // affiche les valeurs des clés
     
     
    							// Maintenant je vérifie si la clé est déjà présente dans la map
    							boolean cle = cl.verif(m.group(1));
    							boolean valeur = cl.verif(m.group(2));
     
    							// Si elle n'est pas présente, on l'ajoute dans la map 
    							if (cle != true && valeur != true ){
    								cl.add(m.group(1), m.group(2));
    								//System.out.println(cle); 
    							}
    						}
    					}
     
    				}
    				else
    				{
    					// stoker testvar dans une liste afin de pouvoir l'écrire plus tard
    					Liste1.add(testVar[0]);
     
    				}
    			}
    			br.close(); // On ferme le flux
     
    			// ecrire le xml
    			cl.ecrire(xmlFileName);
     
    			//ouvrir un fichier en ecriture
     
    			try {
    				BufferedWriter buf = new BufferedWriter(new FileWriter(new File("C:\\Users\\ksmaili\\workspace\\nouveaufichier.txt")));
     
    			// boucler sur  les 6 er lignes de la liste de lignes sans traitement 
    			int i;
    			int fin = 5;
     
    			for (i=0; i<fin; i++){
    				buf.write(Liste1.get(i)+"\n");
    			}
     
    			// ecrire la partie qui dépend du dico
    			buf.write("#>"+ "\n");
     
    			// cree iterator pour parcourir cl.recup() 	
    			Iterator<String> iterat = cl.recup().iterator();
     
    			while (iterat.hasNext() ){
    				 Object element = iterat.next().trim();
    		         //System.out.print(element + " ");
     
    		         buf.write("set " + element +" =" + " {"+element+"}" +"\n");
     
    			}
     
    			buf.write("#<"+ "\n");
     
     
    			//ecrire les lignes suivantes de la liste de lignes sans traitement
     
    			for (i=fin; i<Liste1.size(); i++){
    				buf.write(Liste1.get(i)+"\n");
    			}
     
    			buf.close();
     
    		} catch (final Exception e) {
    			System.out.println(e.toString());
     
    		}
    			finally{
     
    			}
     
    		// if(!ligne.contains("$")){
     
    	}		
    		catch (final Exception e) {
    		System.out.println(e.toString());
     
    	}finally{
     
    	}
     
    	}
     
    	private static boolean creerIndex(String[] testVar2) {
    		// TODO Auto-generated method stub
    		return false;
    	}
     
    	/**
             *  suppimes tout les mots commencant par $ ainsi que les +
             * @param text
             * @return String depourvu de $ et + exemple set a = 8
             */
    	public static String count(String text) {
    		String a = "";
    		String var2 = text;
    		for (int i = 0; i < text.length(); i++) {
    			if (text.charAt(i) == '$') {
    				final int pos2 = countAt(text, i, ' ');
    				if (pos2 > 0) {
    					a = text.substring(i, pos2);
    					if (a.length() > 0) {
    						var2 = var2.replace(a, "");
    					}
    				} else {
    					a = text.substring(i, text.length());
    					if (a.length() > 0) {
    						var2 = var2.replace(a, "");
    					}
    				}
    			}
    		}
    		testVar = var2.split("=");
    		if (testVar[1].trim().equals("+") || testVar[1].trim().isEmpty()) {
    			var2 = "";
    		} else {
    			testVar[1] = testVar[1].replace("+", "");
    			var2 = testVar[0] + "= " + (testVar[1].trim());
     
    		}
    		return var2;
    	}
     
    	/**
             * Récupère le morceau de ligne avec le $
             * @param text
             * @return String avec $[et ce qui suit avec] 
             */
    	public static ArrayList<String> lineDollar(String text) {
    		String a = "";
    		ArrayList<String> po = new ArrayList<String>();
    		//String var2 = text;
    		for (int i = 0; i < text.length(); i++) {
    			if (text.charAt(i) == '$') {
    				final int pos2 = countAt(text, i, ' ');
    				if (pos2 > 0) {
    					a = text.substring(i, pos2);
    					po.add(a);
    				} else {
    					a = text.substring(i, text.length());
    					po.add(a);
    					}
    				}
    			}
     
    		return po;
     
    	}
     
     
    	/**
             * cherches a partir d´un text donné, et a partir d´une position donnée, la prochaine position du caractere a chercher
             * @param text
             * @param pos
             * @param cara
             *@return position du caractere s´il y en a  , -1 s´il ny en a pas.
             */
    	public static int countAt(String text, int pos, char cara) {
    		for (int i = pos; i < text.length(); i++) {
    			if (text.charAt(i) == cara) {
    				return i;
    			}
    		}
    		return -1;
    	}
     
     
     
     
    	/**
             * verifies si l´index est deja present ou pas dans la list d´indexes,  s´il n´est pas present alors on le sauvegarde
             * @param indexStr
             * @return  si l´index existe deja, alors false sinon true
             */
    	public static boolean creerIndex(String indexStr) {
    		final String[] indexVar = indexStr.split(" ");
    		boolean isCreated = true;
    		if (indexVar.length > 1) {
    			if (!indexes.contains(indexVar[1])) {
    				indexes.add(indexVar[1]);
    			} else {
    				isCreated = false;
    			}
    		}
     
    		return isCreated;
    	}
    }
    en faite j'aimerai que mon code me dise si mes caractères :
    $toto
    $toto
    $toto
    $nono
    $toto
    $jhgjgh

    se trouvent avant ou après
    exemple :
    set d = $toto + 9 => pour cette ligne j'aimerai que mon code me dise que $toto se trouve avant le " + 9 "
    et pour set c = 7 + $toto => j'aimerai que mon code me dise que $toto se trouve après

    help me s'il vous plaît

  2. #2
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Salut,

    Il te faut déjà séparer la partie à gauche et à droite du égal, soit avec un split, soit en modifiant ton expression régulière pour avoir des groupes de capture.

    Ensuite, si tu fais un split de l'expression à droite, par rapport aux espaces (à supposer que l'espace est bien séparateur obligatoire, donc qu'on ne peux pas avoir $toto+9), tu peux facilement situer la variable dans l'expression.


    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
    String[] split = expression.split(" ");
     
    if ( split.length>0 ) { 
       final int fin = split.length-1;
       for(int index=0; index<split.length;index++){
         String varname = split[index];
         if ( varname.startsWith("$") ) {
             if(index==0) {
                 System.out.println(varname +" au début");
            }
            else if (index==fin) {
                 System.out.println(varname +" à la fin");
    	}
    	else {
                 System.out.println(varname +" entre " + split[index-1] + " et " + split[index+1]);
            }
        }
    }
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  3. #3
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mai 2014
    Messages : 180
    Points : 64
    Points
    64
    Par défaut
    merci joel

    quand j'execute le code, je n'ai pas de résultat du coup je sais pas les positions de mes caractères :

    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
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
    232
    233
    234
    235
    236
    237
    238
    239
    240
    241
    242
    243
    244
    245
    246
    247
    248
    249
    250
    251
    252
    253
    254
    255
    256
    257
    258
    259
    260
    261
    262
    263
    264
    265
    266
    267
    268
    269
    270
    271
    272
    273
    274
    275
    276
    277
    278
    279
    280
    281
    282
    283
    284
    285
    286
    287
    288
    289
    290
    291
    292
    293
    294
    295
    296
    297
    298
    import java.awt.List;
    import java.io.BufferedReader;
    import java.io.BufferedWriter;
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.FileWriter;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.InputStreamReader;
    import java.util.ArrayList;
    import java.util.Iterator;
    import java.util.regex.Matcher;
    import java.util.regex.Pattern;
    /**
     * Elle recup ligne de forme : set ... = ... sans le $(...) 
     * @author ksmaili
     *return : 1 fichier xml + le fichier texte de type CSH que l'on veux
     */
    public class RecupLineWithoutSymboleTest {
     
    	private static String[] testVar;
     
    	private static ArrayList<String> indexes = new ArrayList<>();
    	private static ArrayList<String> Liste1 = new ArrayList<String>();
     
     
    	public static void main(String[] args) throws IOException {
     
    		final String fichier = "C:\\Users\\ksmaili\\workspace\\fichiertxtP2CSH.txt";
    		String xmlFileName = "C:\\Users\\ksmaili\\workspace\\XMLpartie2.xml";
    		Classement cl = new Classement();
     
    		// lit le fichier ligne par ligne
    		try {
    			// lire un fichier
    			final InputStream ips = new FileInputStream(fichier);
    			final InputStreamReader ipsr = new InputStreamReader(ips);
    			final BufferedReader br = new BufferedReader(ipsr);
    			// lire ligne par ligne
    			String ligne;
    			while ((ligne = br.readLine()) != null) {
    				// System.out.println(ligne);
    				// je splite pour avoir la clé et la valeur pour une comparaison prochaine
    				testVar = ligne.split("=");
     
    				System.out.println(testVar[0]);
    				if (ligne.matches("^set.*=.*") && !ligne.contains("$")) {
    					// je ne fais rien car la ligne est correcte et correspond par exemple a set blabla = 12
    				} else if (ligne.matches("^set.*=.*") && ligne.contains("$")) {
     
    					// parcourir la liste de la methode lineDollar()
    					ArrayList<String> listVal = lineDollar(ligne);
    					Iterator it = listVal.iterator();
    					while(it.hasNext() ) {
     
    							//System.out.println(it.next());	
     
    					}
     
     
    					// Vérifier la position avant ou apres du $...
     
    					String[] split = ligne.split(" ");
     
    					if ( split.length>0 ) { 
    					   final int fin = split.length-1;
    					   for(int index=0; index<split.length;index++){
    					     String varname = split[index];
    					     if ( varname.startsWith("$") ) {
    					         if(index==0) {
    					             System.out.println(varname +" au début");
    					        }
    					        else if (index==fin) {
    					             System.out.println(varname +" à la fin");
    						}
    						else {
    					             System.out.println(varname +" entre " + split[index-1] + " et " + split[index+1]);
    					        }
    					    }
    					}
     
     
     
     
     
     
    					// Si la ligne est du style set blabla = $asd + 34 alors il me faut supprimer $asd et le signe  +
    					ligne = count(ligne);
    				} else {
    					// dans le cas contraire exemple eewewewewewewewew  ou esd = wwewe alors je mettre la ligne vide
    					ligne = "";
    				}
     
    				// Si la ligne n´est pas vide
    				if (ligne.length() > 0) {
    					// je verifie si son index peut etre creer et sauvegarder dans la liste d´indexes ou pas 
     
    					if (creerIndex(testVar[0])) {
     
    						//System.out.println("On récupère : " + ligne);
    						Pattern p=Pattern.compile("^set(.*)=(.*)");
    						Matcher m=p.matcher(ligne);
    						while(m.find()) {
    							//System.out.println(m.group(1)); // affiche les clés 
    							//System.out.println(m.group(2)); // affiche les valeurs des clés
     
     
    							// Maintenant je vérifie si la clé est déjà présente dans la map
    							boolean cle = cl.verif(m.group(1));
    							boolean valeur = cl.verif(m.group(2));
     
    							// Si elle n'est pas présente, on l'ajoute dans la map 
    							if (cle != true && valeur != true ){
    								cl.add(m.group(1), m.group(2));
    								//System.out.println(cle); 
    							}
    						}
    					}
     
    				}
    				else
    				{
    					// stoker testvar dans une liste afin de pouvoir l'écrire plus tard
    					Liste1.add(testVar[0]);
     
    				}
    			}
    			br.close(); // On ferme le flux
     
    			// ecrire le xml
    			cl.ecrire(xmlFileName);
     
    			//ouvrir un fichier en ecriture
     
    			try {
    				BufferedWriter buf = new BufferedWriter(new FileWriter(new File("C:\\Users\\ksmaili\\workspace\\nouveaufichier.txt")));
     
    			// boucler sur  les 6 er lignes de la liste de lignes sans traitement 
    			int i;
    			int fin = 5;
     
    			for (i=0; i<fin; i++){
    				buf.write(Liste1.get(i)+"\n");
    			}
     
    			// ecrire la partie qui dépend du dico
    			buf.write("#>"+ "\n");
     
    			// cree iterator pour parcourir cl.recup() 	
    			Iterator<String> iterat = cl.recup().iterator();
     
    			while (iterat.hasNext() ){
    				 Object element = iterat.next().trim();
    		         //System.out.print(element + " ");
     
    		         buf.write("set " + element +" =" + " {"+element+"}" +"\n");
     
    			}
     
    			buf.write("#<"+ "\n");
     
     
    			//ecrire les lignes suivantes de la liste de lignes sans traitement
     
    			for (i=fin; i<Liste1.size(); i++){
    				buf.write(Liste1.get(i)+"\n");
    			}
     
    			buf.close();
     
    		} catch (final Exception e) {
    			System.out.println(e.toString());
     
    		}
    			finally{
     
    			}
     
    		// if(!ligne.contains("$")){
     
    	}
    		}
     
    		catch (final Exception e) {
    		System.out.println(e.toString());
     
    	}finally{
     
    	}
     
    	}
     
    	private static boolean creerIndex(String[] testVar2) {
    		// TODO Auto-generated method stub
    		return false;
    	}
     
    	/**
             *  suppimes tout les mots commencant par $ ainsi que les +
             * @param text
             * @return String depourvu de $ et + exemple set a = 8
             */
    	public static String count(String text) {
    		String a = "";
    		String var2 = text;
    		for (int i = 0; i < text.length(); i++) {
    			if (text.charAt(i) == '$') {
    				final int pos2 = countAt(text, i, ' ');
    				if (pos2 > 0) {
    					a = text.substring(i, pos2);
    					if (a.length() > 0) {
    						var2 = var2.replace(a, "");
    					}
    				} else {
    					a = text.substring(i, text.length());
    					if (a.length() > 0) {
    						var2 = var2.replace(a, "");
    					}
    				}
    			}
    		}
    		testVar = var2.split("=");
    		if (testVar[1].trim().equals("+") || testVar[1].trim().isEmpty()) {
    			var2 = "";
    		} else {
    			testVar[1] = testVar[1].replace("+", "");
    			var2 = testVar[0] + "= " + (testVar[1].trim());
     
    		}
    		return var2;
    	}
     
    	/**
             * Récupère le morceau de ligne avec le $
             * @param text
             * @return String avec $[et ce qui suit avec] 
             */
    	public static ArrayList<String> lineDollar(String text) {
    		String a = "";
    		ArrayList<String> po = new ArrayList<String>();
    		//String var2 = text;
    		for (int i = 0; i < text.length(); i++) {
    			if (text.charAt(i) == '$') {
    				final int pos2 = countAt(text, i, ' ');
    				if (pos2 > 0) {
    					a = text.substring(i, pos2);
    					po.add(a);
    				} else {
    					a = text.substring(i, text.length());
    					po.add(a);
    					}
    				}
    			}
     
    		return po;
     
    	}
     
     
    	/**
             * cherches a partir d´un text donné, et a partir d´une position donnée, la prochaine position du caractere a chercher
             * @param text
             * @param pos
             * @param cara
             *@return position du caractere s´il y en a  , -1 s´il ny en a pas.
             */
    	public static int countAt(String text, int pos, char cara) {
    		for (int i = pos; i < text.length(); i++) {
    			if (text.charAt(i) == cara) {
    				return i;
    			}
    		}
    		return -1;
    	}
     
     
     
     
    	/**
             * verifies si l´index est deja present ou pas dans la list d´indexes,  s´il n´est pas present alors on le sauvegarde
             * @param indexStr
             * @return  si l´index existe deja, alors false sinon true
             */
    	public static boolean creerIndex(String indexStr) {
    		final String[] indexVar = indexStr.split(" ");
    		boolean isCreated = true;
    		if (indexVar.length > 1) {
    			if (!indexes.contains(indexVar[1])) {
    				indexes.add(indexVar[1]);
    			} else {
    				isCreated = false;
    			}
    		}
     
    		return isCreated;
    	}
    }

  4. #4
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Tu as surtout une boucle infinie là :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    while(it.hasNext() ) {
     
    							//System.out.println(it.next());	
     
    					}
    Sauf si listVal est vide...
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  5. #5
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mai 2014
    Messages : 180
    Points : 64
    Points
    64
    Par défaut
    Citation Envoyé par joel.drigo Voir le message
    Tu as surtout une boucle infinie là :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    while(it.hasNext() ) {
     
    							//System.out.println(it.next());	
     
    					}
    Sauf si listVal est vide...
    non listVal n'est pas vide

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    System.out.println(listVal);
    me donne :

    [$toto]
    [$toto]
    [$toto]
    [$nono, $toto]
    [$jhgjgh]

  6. #6
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Et donc, ton programme boucle indéfiniment avant d'afficher quoique ce soit...

    (C'est une sacré usine à gaz lineDolllar pour obtenir ça)
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  7. #7
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mai 2014
    Messages : 180
    Points : 64
    Points
    64
    Par défaut
    Citation Envoyé par joel.drigo Voir le message
    Et donc, ton programme boucle indéfiniment avant d'afficher quoique ce soit...

    (C'est une sacré usine à gaz lineDolllar pour obtenir ça)
    A en faire lagué mon programme même ...

  8. #8
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mai 2014
    Messages : 180
    Points : 64
    Points
    64
    Par défaut
    Je viens d'alléger le programme :

    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
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    import java.awt.List;
    import java.io.BufferedReader;
    import java.io.BufferedWriter;
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.FileWriter;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.InputStreamReader;
    import java.util.ArrayList;
    import java.util.Iterator;
    import java.util.regex.Matcher;
    import java.util.regex.Pattern;
    /**
     * Elle recup ligne de forme : set ... = ... sans le $(...) 
     * @author ksmaili
     *return : 1 fichier xml + le fichier texte de type CSH que l'on veux
     */
    public class RecupLineWithoutSymboleTest {
     
    	private static String[] testVar;
    	private static ArrayList<String> indexes = new ArrayList<>();
    	private static ArrayList<String> Liste1 = new ArrayList<String>();
     
     
    	public static void main(String[] args) throws IOException {
     
    		final String fichier = "C:\\Users\\ksmaili\\workspace\\fichiertxtP2CSH.txt";
    		String xmlFileName = "C:\\Users\\ksmaili\\workspace\\XMLpartie2.xml";
    		Classement cl = new Classement();
     
    		// lit le fichier ligne par ligne
    		try {
    			// lire un fichier
    			final InputStream ips = new FileInputStream(fichier);
    			final InputStreamReader ipsr = new InputStreamReader(ips);
    			final BufferedReader br = new BufferedReader(ipsr);
    			// lire ligne par ligne
    			String ligne;
    			while ((ligne = br.readLine()) != null) {
    				// System.out.println(ligne);
    				// je splite pour avoir la clé et la valeur pour une comparaison prochaine
    				testVar = ligne.split("=");
     
     
    				if (ligne.matches("^set.*=.*") && !ligne.contains("$")) {
    					// je ne fais rien car la ligne est correcte et correspond par exemple a set blabla = 12
    				} else if (ligne.matches("^set.*=.*") && ligne.contains("$")) {
     
    					// parcourir la liste de la methode lineDollar()
     
    					ArrayList<String> listVal = lineDollar(ligne);
    					Iterator it = listVal.iterator();
     
    					// Vérifier la position avant ou apres du $...
     
     
     
     
    					// Si la ligne est du style set blabla = $asd + 34 alors il me faut supprimer $asd et le signe  +
    					ligne = count(ligne);
    				} else {
    					// dans le cas contraire exemple eewewewewewewewew  ou esd = wwewe alors je mettre la ligne vide
    					ligne = "";
    				}
     
    				// Si la ligne n´est pas vide
    				if (ligne.length() > 0) {
    					// je verifie si son index peut etre creer et sauvegarder dans la liste d´indexes ou pas 
     
    					if (creerIndex(testVar[0])) {
     
    						//System.out.println("On récupère : " + ligne);
    						Pattern p=Pattern.compile("^set(.*)=(.*)");
    						Matcher m=p.matcher(ligne);
    						while(m.find()) {
    							//System.out.println(m.group(1)); // affiche les clés 
    							//System.out.println(m.group(2)); // affiche les valeurs des clés
     
     
    							// Maintenant je vérifie si la clé est déjà présente dans la map
    							boolean cle = cl.verif(m.group(1));
    							boolean valeur = cl.verif(m.group(2));
     
    							// Si elle n'est pas présente, on l'ajoute dans la map 
    							if (cle != true && valeur != true ){
    								cl.add(m.group(1), m.group(2));
    								//System.out.println(cle); 
    							}
    						}
    					}
     
    				}
    				else
    				{
    					// stoker testvar dans une liste afin de pouvoir l'écrire plus tard
    					Liste1.add(testVar[0]);
     
    				}
    			}
    			br.close(); // On ferme le flux
     
    			// ecrire le xml
    			cl.ecrire(xmlFileName);
     
    			//ouvrir un fichier en ecriture
     
    			try {
    				BufferedWriter buf = new BufferedWriter(new FileWriter(new File("C:\\Users\\ksmaili\\workspace\\nouveaufichier.txt")));
     
    			// boucler sur  les 6 er lignes de la liste de lignes sans traitement 
    			int i;
    			int fin = 5;
     
    			for (i=0; i<fin; i++){
    				buf.write(Liste1.get(i)+"\n");
    			}
     
    			// ecrire la partie qui dépend du dico
    			buf.write("#>"+ "\n");
     
    			// cree iterator pour parcourir cl.recup() 	
    			Iterator<String> iterat = cl.recup().iterator();
     
    			while (iterat.hasNext() ){
    				 Object element = iterat.next().trim();
    		         //System.out.print(element + " ");
     
    		         buf.write("set " + element +" =" + " {"+element+"}" +"\n");
     
    			}
     
    			buf.write("#<"+ "\n");
     
     
    			//ecrire les lignes suivantes de la liste de lignes sans traitement
     
    			for (i=fin; i<Liste1.size(); i++){
    				buf.write(Liste1.get(i)+"\n");
    			}
     
    			buf.close();
     
    		} catch (final Exception e) {
    			System.out.println(e.toString());
     
    		}
    			finally{
     
    			}
     
    		// if(!ligne.contains("$")){
     
     
    		}
     
     
    		catch (final Exception e) {
    		System.out.println(e.toString());
     
    	}finally{
     
    	}
     
    	}
     
    	private static boolean creerIndex(String string) {
    		// TODO Auto-generated method stub
    		return false;
    	}
     
    	private static String count(String ligne) {
    		// TODO Auto-generated method stub
    		return null;
    	}
     
    	private static ArrayList<String> lineDollar(String ligne) {
    		// TODO Auto-generated method stub
    		return null;
    	}
    [ATTACH]183504[/ATTACH]
    	private static boolean creerIndex(String[] testVar2) {
    		// TODO Auto-generated method stub
    		return false;
    	}
     
     
     
    }
    les méthodes se trouve dans une autre classe nommée Finally, j'ai mi le lien en pièce jointe

  9. #9
    Membre chevronné
    Avatar de eulbobo
    Homme Profil pro
    Développeur Java
    Inscrit en
    Novembre 2003
    Messages
    786
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Novembre 2003
    Messages : 786
    Points : 1 993
    Points
    1 993
    Par défaut
    Il y a trop de trucs qui me choquent pour en faire une liste, donc je vais faire comme je fais d'habitude quand j'ai l'impression que ça n'avance pas : revenir aux sources.

    C'est quoi la problématique initiale que tu essayes de résoudre?
    C'est quoi les éléments DE BASE avant ton intervention et ce vers quoi tu veux aller?
    Je ne suis pas mort, j'ai du travail !

  10. #10
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mai 2014
    Messages : 180
    Points : 64
    Points
    64
    Par défaut
    Citation Envoyé par eulbobo Voir le message
    Il y a trop de trucs qui me choquent pour en faire une liste, donc je vais faire comme je fais d'habitude quand j'ai l'impression que ça n'avance pas : revenir aux sources.

    C'est quoi la problématique initiale que tu essayes de résoudre?
    C'est quoi les éléments DE BASE avant ton intervention et ce vers quoi tu veux aller?
    Bah en faite j'aimerai connaitre la position de tout mes caractères suivi de "$" :
    c'est a dire : $toto , $nono, $jhgjgh
    en fonction du texte ci-dessous :

    Code csh : 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
    #!/bin/csh -xv
    #BSUB -J calmod_POGO_2CU fichie.txt
    #BSUB -o calmod_POGO_2CU.o%J
    #BSUB -L /bin/csh
     
    umask 002
     
    #----------------------------------------------------------------------
    set dir_listing = jdfgjkdfnbjkdfnbjnfdbndfjbndfbndfkb
    jnfjkg
    $gdfgdfg
    dfgdfgdfg74654654fdg
    fdgdfg
    fgdf
    set toto = tata
    fgfg
    fg;hmfh
    set toto = tutu2
    dfdsfgdfg
    set nono = ueueue777
    set khjkhjkhkj 8787687657
    titi = tutu
    set a = titi
    set b = $toto
    set c = 7 + $toto
    set d = $toto + 9
    set e = $nono + $toto 
    set k = $jhgjgh + {k}

  11. #11
    Membre chevronné
    Avatar de eulbobo
    Homme Profil pro
    Développeur Java
    Inscrit en
    Novembre 2003
    Messages
    786
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Novembre 2003
    Messages : 786
    Points : 1 993
    Points
    1 993
    Par défaut
    Ma question est de savoir d'où sort de fichier et qu'est ce que tu veux en faire au final...

    Qui l'a créé ce fichier? C'est quoi sa finalité? Quel but cherches-tu à atteindre par le biais de ce fichier?
    Je ne suis pas mort, j'ai du travail !

  12. #12
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mai 2014
    Messages : 180
    Points : 64
    Points
    64
    Par défaut
    Citation Envoyé par eulbobo Voir le message
    Ma question est de savoir d'où sort de fichier et qu'est ce que tu veux en faire au final...

    Qui l'a créé ce fichier? C'est quoi sa finalité? Quel but cherches-tu à atteindre par le biais de ce fichier?
    C'est un fichier que m'as passer mon tuteur. C'est sur ce fichier là que je suis entrain de developper mon programme.
    Le but ? c'est de transformer ce fichier la pour qu'il puisse être lu par une IHM et donc pour qu'il puisse être traiter.

    C'est pour cela que j'ai des étapes a faire d'ou celle de savoir le positionnement avant ou après de mes caractères $toto, $nono ....
    set k = $jhgjgh + {k} => le $jhgjgh est avant le + {k}
    set c = 7 + $toto => le $toto est apres le " 7 + "

    et l'as j'ai un peu de mal ..

  13. #13
    Membre chevronné
    Avatar de eulbobo
    Homme Profil pro
    Développeur Java
    Inscrit en
    Novembre 2003
    Messages
    786
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Novembre 2003
    Messages : 786
    Points : 1 993
    Points
    1 993
    Par défaut
    Citation Envoyé par khalous91 Voir le message
    Le but ? c'est de transformer ce fichier la pour qu'il puisse être lu par une IHM et donc pour qu'il puisse être traiter.
    C'est quoi le traitement désiré par ton IHM?
    Faire la liste des différentes variables présentes dans le fichier pour permettre leur remplacement automatiquement?


    Reprenons, pour l'instant, on a :
    1 - Un fichier d'un format très discutable qui est fourni avec des variables précédées par un $
    2 - Le fichier doit être lu par une IHM (pourquoi pas)
    3 - {Quel est le traitement effectué?}
    Je ne suis pas mort, j'ai du travail !

  14. #14
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mai 2014
    Messages : 180
    Points : 64
    Points
    64
    Par défaut
    Citation Envoyé par eulbobo Voir le message
    C'est quoi le traitement désiré par ton IHM?
    Faire la liste des différentes variables présentes dans le fichier pour permettre leur remplacement automatiquement?


    Reprenons, pour l'instant, on a :
    1 - Un fichier d'un format très discutable qui est fourni avec des variables précédées par un $
    2 - Le fichier doit être lu par une IHM (pourquoi pas)
    3 - {Quel est le traitement effectué?}
    En gros j'ai ce texte :

    Code csh : 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
    #!/bin/csh -xv
    #BSUB -J calmod_POGO_2CU fichie.txt
    #BSUB -o calmod_POGO_2CU.o%J
    #BSUB -L /bin/csh
     
    umask 002
     
    #----------------------------------------------------------------------
    set dir_listing = jdfgjkdfnbjkdfnbjnfdbndfjbndfbndfkb
    jnfjkg
    $gdfgdfg
    dfgdfgdfg74654654fdg
    fdgdfg
    fgdf
    set toto = tata
    fgfg
    fg;hmfh
    set toto = tutu2
    dfdsfgdfg
    set nono = ueueue777
    set khjkhjkhkj 8787687657
    titi = tutu
    set a = titi
    set b = $toto
    set c = 7 + $toto
    set d = $toto + 9
    set e = $nono + $toto 
    set k = $jhgjgh + {k}

    et je dois le transformé de cette manière là :

    Code csh : 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
    #!/bin/csh -xv
    #BSUB -J calmod_POGO_2CU 
    #BSUB -o calmod_POGO_2CU.o%J
    #BSUB -L /bin/csh
     
    umask 002
     
    #>
    set dir_listing = {dir_listing}
    set toto = {toto}
    set nono = {nono}
    set  a = {a}
    set c = {c} + $toto 
    set d = $toto + {d}
    set k = $jhgjgh + {k}
    #<
     
    jnfjkg
    $gdfgdfg
    dfgdfgdfg74654654fdg
    fdgdfg
    fgdf
    fgfg
    fg;hmfh
    set toto = tutu2  
    dfdsfgdfg
    set khjkhjkhkj 8787687657
    titi = tutu
    set e = $nono + $toto
    set b = $popopopopo + $55555

    afin qu'il puisse être traiter par l'IHM

    qui prends comme paramètre :

    #>
    #<
    {
    }
    et qui traite la zone entre #> et #<

    mais là en occurence je dois resoudre le problème avec le cas des $
    c'est pour ça que je procède etape par étape

  15. #15
    Membre chevronné
    Avatar de eulbobo
    Homme Profil pro
    Développeur Java
    Inscrit en
    Novembre 2003
    Messages
    786
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Novembre 2003
    Messages : 786
    Points : 1 993
    Points
    1 993
    Par défaut
    Le résultat est exactement ce que tu dois obtenir?

    Parce que la ligne set dir_listing n'a pas de paramètres, set toto = {toto} alors qu'on n'a nulle part de $toto, il reste les lignes set e = $nono + $toto et set b = $popopopopo + $55555 en bas...

    Bref, le résultat annoncé ne m'a pas l'air cohérent par rapport à ce que tu demandes. Peux-tu nous dire avec précision quel est le résultat attendu pour ce fichier ? (celui que tu as posté plus haut) pour qu'on puisse correctement t'orienter vers une solution (parce que je ne vois pas comment retrouver la position d'une des variables pourra t'aider à faire ça)

    Code csh : 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
    #!/bin/csh -xv
    #BSUB -J calmod_POGO_2CU fichie.txt
    #BSUB -o calmod_POGO_2CU.o%J
    #BSUB -L /bin/csh
     
    umask 002
     
    #----------------------------------------------------------------------
    set dir_listing = jdfgjkdfnbjkdfnbjnfdbndfjbndfbndfkb
    jnfjkg
    $gdfgdfg
    dfgdfgdfg74654654fdg
    fdgdfg
    fgdf
    set toto = tata
    fgfg
    fg;hmfh
    set toto = tutu2
    dfdsfgdfg
    set nono = ueueue777
    set khjkhjkhkj 8787687657
    titi = tutu
    set a = titi
    set b = $toto
    set c = 7 + $toto
    set d = $toto + 9
    set e = $nono + $toto 
    set k = $jhgjgh + {k}
    Je ne suis pas mort, j'ai du travail !

Discussions similaires

  1. Syntaxe de recherche de position d'un caractère ???
    Par toyyo dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 01/07/2011, 09h30
  2. Réponses: 2
    Dernier message: 29/07/2007, 21h56
  3. Comment connaître sa position dans un memo ?
    Par boisbaudry dans le forum VBA Access
    Réponses: 3
    Dernier message: 25/07/2007, 08h14
  4. Connaître la position/taille dans l'écran de fenêtres modales?
    Par PsychoGun dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 03/01/2007, 17h48
  5. Réponses: 6
    Dernier message: 20/02/2006, 22h13

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